From d6e82db1f97eb9c7e13c030f5b31ca56d28ccf3e Mon Sep 17 00:00:00 2001 From: Mike Kucera Date: Fri, 22 Feb 2008 20:14:33 +0000 Subject: [PATCH] content assist kinda works for C++ --- .../grammar/cpp/CPPGrammar.g | 34 +- .../dom/lrparser/BaseExtensibleLanguage.java | 26 +- .../core/dom/lrparser/LPGTokenAdapter.java | 2 +- .../lrparser/action/BuildASTParserAction.java | 6 + .../action/cpp/CPPBuildASTParserAction.java | 3 +- .../core/dom/lrparser/util/ASTPrinter.java | 18 +- .../cpp/CPPExpressionStatementParser.java | 1237 +++-- .../cpp/CPPExpressionStatementParserprs.java | 4117 ++++++++-------- .../cpp/CPPExpressionStatementParsersym.java | 258 +- .../cpp/CPPNoCastExpressionParser.java | 1233 +++-- .../cpp/CPPNoCastExpressionParserprs.java | 4344 +++++++++-------- .../cpp/CPPNoCastExpressionParsersym.java | 258 +- .../core/dom/lrparser/cpp/CPPParser.java | 1234 +++-- .../core/dom/lrparser/cpp/CPPParserprs.java | 4233 ++++++++-------- .../core/dom/lrparser/cpp/CPPParsersym.java | 254 +- 15 files changed, 8789 insertions(+), 8468 deletions(-) diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g index 39d44fbb1cf..12d835f714a 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g @@ -320,16 +320,16 @@ $Rules ']' ::=? 'RightBracket' - --| 'EndOfCompletion' + | 'EndOfCompletion' ')' ::=? 'RightParen' - --| 'EndOfCompletion' + | 'EndOfCompletion' '}' ::=? 'RightBrace' - --| 'EndOfCompletion' + | 'EndOfCompletion' ';' ::=? 'SemiColon' - --| 'EndOfCompletion' + | 'EndOfCompletion' @@ -363,6 +363,11 @@ external_declaration -- Expressions ------------------------------------------------------------------------------------------ +identifier_token + ::= 'identifier' + | 'Completion' + + literal ::= 'integer' /. $Build consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); $EndBuild ./ @@ -411,7 +416,7 @@ unqualified_id_name -- wrap an identifier in a name node identifier_name - ::= 'identifier' + ::= identifier_token /. $Build consumeIdentifierName(); $EndBuild ./ @@ -885,7 +890,7 @@ jump_statement /. $Build consumeStatementReturn(true); $EndBuild ./ | 'return' ';' /. $Build consumeStatementReturn(false); $EndBuild ./ - | 'goto' 'identifier' ';' + | 'goto' identifier_token ';' /. $Build consumeStatementGoto(); $EndBuild ./ @@ -1034,7 +1039,7 @@ function_specifier typedef_name - ::= 'identifier' + ::= identifier_token --type_specifier @@ -1103,13 +1108,13 @@ elaborated_type_specifier enum_name - ::= 'identifier' + ::= identifier_token enum_specifier ::= 'enum' '{' enumerator_list_opt '}' /. $Build consumeTypeSpecifierEnumeration(false); $EndBuild ./ - | 'enum' 'identifier' '{' enumerator_list_opt '}' + | 'enum' identifier_token '{' enumerator_list_opt '}' /. $Build consumeTypeSpecifierEnumeration(true); $EndBuild ./ @@ -1131,7 +1136,7 @@ enumerator_definition enumerator - ::= 'identifier' + ::= identifier_token namespace_name @@ -1169,11 +1174,11 @@ unnamed_namespace_definition namespace_alias - ::= 'identifier' + ::= identifier_token namespace_alias_definition - ::= 'namespace' 'identifier' '=' dcolon_opt nested_name_specifier_opt namespace_name ';' + ::= 'namespace' identifier_token '=' dcolon_opt nested_name_specifier_opt namespace_name ';' /. $Build consumeNamespaceAliasDefinition(); $EndBuild ./ @@ -1478,11 +1483,6 @@ class_head -- done /. $Build consumeClassHead(true); $EndBuild ./ -identifier_opt - ::= 'identifier' - | $empty - - identifier_name_opt ::= identifier_name | $empty diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java index bbbe10e5f62..cac0d152c5c 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java @@ -45,8 +45,8 @@ import org.eclipse.core.runtime.CoreException; public abstract class BaseExtensibleLanguage extends AbstractLanguage implements ILanguage, ICLanguageKeywords { - private static final boolean DEBUG_PRINT_GCC_AST = false; - private static final boolean DEBUG_PRINT_AST = false; + private static final boolean DEBUG_PRINT_GCC_AST = true; + private static final boolean DEBUG_PRINT_AST = true; /** * Retrieve the parser (runs after the preprocessor runs). @@ -148,7 +148,19 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements public IASTCompletionNode getCompletionNode(CodeReader reader, IScannerInfo scanInfo, ICodeReaderFactory fileCreator, - IIndex index, IParserLogService log, int offset) { + IIndex index, IParserLogService log, int offset) throws CoreException { + + + if(DEBUG_PRINT_GCC_AST) { + ILanguage gppLanguage = GPPLanguage.getDefault(); + IASTCompletionNode cn = gppLanguage.getCompletionNode(reader, scanInfo, fileCreator, index, log, offset); + + System.out.println(); + System.out.println("********************************************************"); + System.out.println("GPP AST:"); + DebugUtil.printAST(cn.getTranslationUnit()); + System.out.println(); + } // TODO temporary IScannerExtensionConfiguration config = new GCCScannerExtensionConfiguration(); @@ -164,6 +176,14 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements // the parser will fill in the rest of the AST IASTCompletionNode completionNode = parser.parse(tu); + + if(DEBUG_PRINT_AST) { + System.out.println("Base Extensible Language AST:"); + DebugUtil.printAST(tu); + System.out.println(); + System.out.println("Completion Node: " + completionNode); + } + return completionNode; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LPGTokenAdapter.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LPGTokenAdapter.java index 1cb84efc6a6..762a9e981be 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LPGTokenAdapter.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LPGTokenAdapter.java @@ -117,7 +117,7 @@ public class LPGTokenAdapter implements lpg.lpgjavaruntime.IToken { this.tokenIndex = tokenIndex; } - @Override + @Override public String toString() { return token.toString(); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java index 2f2734a45ff..62fe966e147 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java @@ -68,7 +68,9 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression; import org.eclipse.cdt.core.dom.lrparser.IParser; import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import static org.eclipse.cdt.core.dom.lrparser.util.CollectionUtils.matchTokens; import org.eclipse.cdt.core.dom.lrparser.util.DebugUtil; +import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym; import org.eclipse.cdt.internal.core.dom.parser.ASTNode; @@ -992,6 +994,10 @@ public abstract class BuildASTParserAction { List declarators = (hasDeclaratorList) ? astStack.closeScope() : Collections.emptyList(); IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop(); // may be null + // do not generate nodes for extra EOC tokens + if(matchTokens(parser.getRuleTokens(), CPPParsersym.TK_EndOfCompletion)) + return; + if(declSpecifier == null) { // can happen if implicit int is used declSpecifier = nodeFactory.newSimpleDeclSpecifier(); setOffsetAndLength(declSpecifier, parser.getLeftIToken().getStartOffset(), 0); diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java index badc0c00680..3e0c5243b58 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java @@ -122,8 +122,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { @Override protected boolean isCompletionToken(IToken token) { - // TODO Auto-generated method stub - return false; + return token.getKind() == CPPParsersym.TK_Completion; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/util/ASTPrinter.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/util/ASTPrinter.java index 78ea7c70835..d6191baf98c 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/util/ASTPrinter.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/util/ASTPrinter.java @@ -56,6 +56,8 @@ import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer; class ASTPrinter { + private static boolean PRINT_PARENT_PROPERTIES = false; + private static boolean RESOLVE_BINDINGS = false; /** * Prints the AST to the given PrintStream. @@ -144,7 +146,8 @@ class ASTPrinter { if(node.getParent() == null && !(node instanceof IASTTranslationUnit)) { out.print("PARENT IS NULL "); } - out.print(node.getPropertyInParent()); + if(PRINT_PARENT_PROPERTIES) + out.print(node.getPropertyInParent()); } if(n instanceof ICArrayType) { @@ -379,13 +382,14 @@ class ASTPrinter { @Override public int visit(IASTName name) { print(name); - try { - IBinding binding = name.resolveBinding(); - print(binding); - } catch(Exception e) { - System.out.println("Exception while resolving binding: " + name); + if(RESOLVE_BINDINGS) { + try { + IBinding binding = name.resolveBinding(); + print(binding); + } catch(Exception e) { + System.out.println("Exception while resolving binding: " + name); + } } - indentLevel++; return super.visit(name); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java index 437a479ee14..4027dc0a21a 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java @@ -272,1787 +272,1780 @@ public CPPExpressionStatementParser(String[] mapFrom) { // constructor } // - // Rule 4: ::= $Empty + // Rule 2: ::= $Empty // - case 4: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 5: ::= $Empty - // - case 5: { action.builder. + case 2: { action.builder. consumeEmpty(); break; } // - // Rule 10: translation_unit ::= external_declaration_list - // - case 10: { action.builder. - consumeTranslationUnit(); break; - } - - // - // Rule 11: translation_unit ::= $Empty + // Rule 11: translation_unit ::= external_declaration_list // case 11: { action.builder. consumeTranslationUnit(); break; } // - // Rule 15: external_declaration ::= ERROR_TOKEN + // Rule 12: translation_unit ::= $Empty // - case 15: { action.builder. + case 12: { action.builder. + consumeTranslationUnit(); break; + } + + // + // Rule 16: external_declaration ::= ERROR_TOKEN + // + case 16: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 16: literal ::= integer + // Rule 19: literal ::= integer // - case 16: { action.builder. + case 19: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 17: literal ::= 0 + // Rule 20: literal ::= 0 // - case 17: { action.builder. + case 20: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 18: literal ::= floating + // Rule 21: literal ::= floating // - case 18: { action.builder. + case 21: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } // - // Rule 19: literal ::= charconst + // Rule 22: literal ::= charconst // - case 19: { action.builder. + case 22: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 20: literal ::= stringlit + // Rule 23: literal ::= stringlit // - case 20: { action.builder. + case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 21: literal ::= true + // Rule 24: literal ::= true // - case 21: { action.builder. + case 24: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 22: literal ::= false + // Rule 25: literal ::= false // - case 22: { action.builder. + case 25: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 23: literal ::= this + // Rule 26: literal ::= this // - case 23: { action.builder. + case 26: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 25: primary_expression ::= ( expression ) + // Rule 28: primary_expression ::= ( expression ) // - case 25: { action.builder. + case 28: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 27: id_expression ::= qualified_or_unqualified_name + // Rule 30: id_expression ::= qualified_or_unqualified_name // - case 27: { action.builder. + case 30: { action.builder. consumeExpressionName(); break; } // - // Rule 34: unqualified_id_name ::= ~ class_name + // Rule 37: unqualified_id_name ::= ~ class_name // - case 34: { action.builder. + case 37: { action.builder. consumeDestructorName(); break; } // - // Rule 35: identifier_name ::= identifier + // Rule 38: identifier_name ::= identifier_token // - case 35: { action.builder. + case 38: { action.builder. consumeIdentifierName(); break; } // - // Rule 36: template_opt ::= template - // - case 36: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 37: template_opt ::= $Empty - // - case 37: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 38: dcolon_opt ::= :: - // - case 38: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 39: dcolon_opt ::= $Empty + // Rule 39: template_opt ::= template // case 39: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 40: template_opt ::= $Empty + // + case 40: { action.builder. consumeEmpty(); break; } // - // Rule 40: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 41: dcolon_opt ::= :: // - case 40: { action.builder. + case 41: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 42: dcolon_opt ::= $Empty + // + case 42: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 43: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 43: { action.builder. consumeQualifiedId(true); break; } // - // Rule 41: qualified_id_name ::= :: identifier_name - // - case 41: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 42: qualified_id_name ::= :: operator_function_id_name - // - case 42: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 43: qualified_id_name ::= :: template_id_name - // - case 43: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 44: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 44: qualified_id_name ::= :: identifier_name // case 44: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 45: nested_name_specifier ::= class_or_namespace_name :: + // Rule 45: qualified_id_name ::= :: operator_function_id_name // case 45: { action.builder. - consumeNestedNameSpecifier(false); break; + consumeGlobalQualifiedId(); break; } // - // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 46: qualified_id_name ::= :: template_id_name // case 46: { action.builder. + consumeGlobalQualifiedId(); break; + } + + // + // Rule 47: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // + case 47: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 47: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: // - case 47: { action.builder. + case 48: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 48: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 49: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 48: { action.builder. + case 49: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // + case 50: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 51: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 51: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 50: nested_name_specifier_opt ::= $Empty + // Rule 53: nested_name_specifier_opt ::= $Empty // - case 50: { action.builder. + case 53: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 54: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 54: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 55: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 55: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 56: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 56: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 57: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // - case 57: { action.builder. + case 60: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 58: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 58: { action.builder. + case 61: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 59: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 59: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 60: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 60: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 61: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 61: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 62: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 62: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 63: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 63: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 64: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 65: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 65: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 66: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 66: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 67: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 67: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 68: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 68: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 69: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 69: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 70: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 70: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 71: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 71: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 72: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 72: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name // - case 73: { action.builder. + case 76: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 74: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name // - case 74: { action.builder. + case 77: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name // - case 75: { action.builder. + case 78: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: unary_expression ::= ++ cast_expression + // Rule 82: unary_expression ::= ++ cast_expression // - case 79: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 80: unary_expression ::= -- cast_expression + // Rule 83: unary_expression ::= -- cast_expression // - case 80: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 81: unary_expression ::= & cast_expression + // Rule 84: unary_expression ::= & cast_expression // - case 81: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 82: unary_expression ::= * cast_expression + // Rule 85: unary_expression ::= * cast_expression // - case 82: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 83: unary_expression ::= + cast_expression + // Rule 86: unary_expression ::= + cast_expression // - case 83: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 84: unary_expression ::= - cast_expression + // Rule 87: unary_expression ::= - cast_expression // - case 84: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 85: unary_expression ::= ~ cast_expression + // Rule 88: unary_expression ::= ~ cast_expression // - case 85: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 86: unary_expression ::= ! cast_expression + // Rule 89: unary_expression ::= ! cast_expression // - case 86: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 87: unary_expression ::= sizeof unary_expression + // Rule 90: unary_expression ::= sizeof unary_expression // - case 87: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 88: unary_expression ::= sizeof ( type_id ) + // Rule 91: unary_expression ::= sizeof ( type_id ) // - case 88: { action.builder. + case 91: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 92: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 89: { action.builder. + case 92: { action.builder. consumeExpressionNew(true); break; } // - // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt + // Rule 93: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt // - case 90: { action.builder. + case 93: { action.builder. consumeExpressionNew(false); break; } // - // Rule 93: new_placement_opt ::= $Empty + // Rule 96: new_placement_opt ::= $Empty // - case 93: { action.builder. + case 96: { action.builder. consumeEmpty(); break; } // - // Rule 94: new_type_id ::= type_specifier_seq + // Rule 97: new_type_id ::= type_specifier_seq // - case 94: { action.builder. + case 97: { action.builder. consumeTypeId(false); break; } // - // Rule 95: new_type_id ::= type_specifier_seq new_declarator + // Rule 98: new_type_id ::= type_specifier_seq new_declarator // - case 95: { action.builder. + case 98: { action.builder. consumeTypeId(true); break; } // - // Rule 96: new_declarator ::= new_pointer_operators + // Rule 99: new_declarator ::= new_pointer_operators // - case 96: { action.builder. + case 99: { action.builder. consumeNewDeclarator(); break; } // - // Rule 105: new_initializer_opt ::= $Empty + // Rule 108: new_initializer_opt ::= $Empty // - case 105: { action.builder. + case 108: { action.builder. consumeEmpty(); break; } // - // Rule 106: delete_expression ::= dcolon_opt delete cast_expression + // Rule 109: delete_expression ::= dcolon_opt delete cast_expression // - case 106: { action.builder. + case 109: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 107: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 110: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 107: { action.builder. + case 110: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 109: cast_expression ::= ( type_id ) cast_expression + // Rule 112: cast_expression ::= ( type_id ) cast_expression // - case 109: { action.builder. + case 112: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 111: pm_expression ::= pm_expression .* cast_expression + // Rule 114: pm_expression ::= pm_expression .* cast_expression // - case 111: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 112: pm_expression ::= pm_expression ->* cast_expression + // Rule 115: pm_expression ::= pm_expression ->* cast_expression // - case 112: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 114: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 117: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 114: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 115: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 115: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 116: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 119: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 116: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 118: additive_expression ::= additive_expression + multiplicative_expression + // Rule 121: additive_expression ::= additive_expression + multiplicative_expression // - case 118: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 119: additive_expression ::= additive_expression - multiplicative_expression + // Rule 122: additive_expression ::= additive_expression - multiplicative_expression // - case 119: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 121: shift_expression ::= shift_expression << additive_expression + // Rule 124: shift_expression ::= shift_expression << additive_expression // - case 121: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 122: shift_expression ::= shift_expression >> additive_expression + // Rule 125: shift_expression ::= shift_expression >> additive_expression // - case 122: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 124: relational_expression ::= relational_expression < shift_expression + // Rule 127: relational_expression ::= relational_expression < shift_expression // - case 124: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 125: relational_expression ::= relational_expression > shift_expression + // Rule 128: relational_expression ::= relational_expression > shift_expression // - case 125: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 126: relational_expression ::= relational_expression <= shift_expression + // Rule 129: relational_expression ::= relational_expression <= shift_expression // - case 126: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 127: relational_expression ::= relational_expression >= shift_expression + // Rule 130: relational_expression ::= relational_expression >= shift_expression // - case 127: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 129: equality_expression ::= equality_expression == relational_expression + // Rule 132: equality_expression ::= equality_expression == relational_expression // - case 129: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 130: equality_expression ::= equality_expression != relational_expression + // Rule 133: equality_expression ::= equality_expression != relational_expression // - case 130: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 132: and_expression ::= and_expression & equality_expression + // Rule 135: and_expression ::= and_expression & equality_expression // - case 132: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 134: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 137: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 134: { action.builder. + case 137: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 136: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 139: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 136: { action.builder. + case 139: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 138: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 141: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 138: { action.builder. + case 141: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 140: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 143: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 140: { action.builder. + case 143: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 142: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 145: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 142: { action.builder. + case 145: { action.builder. consumeExpressionConditional(); break; } // - // Rule 143: throw_expression ::= throw + // Rule 146: throw_expression ::= throw // - case 143: { action.builder. + case 146: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 144: throw_expression ::= throw assignment_expression + // Rule 147: throw_expression ::= throw assignment_expression // - case 144: { action.builder. + case 147: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 147: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression = assignment_expression // - case 147: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 148: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression *= assignment_expression // - case 148: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 149: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression /= assignment_expression // - case 149: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 150: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression %= assignment_expression // - case 150: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 151: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression += assignment_expression // - case 151: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression -= assignment_expression // - case 152: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 153: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 154: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression &= assignment_expression // - case 155: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 156: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression |= assignment_expression // - case 157: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 159: expression ::= ERROR_TOKEN + // Rule 162: expression ::= ERROR_TOKEN // - case 159: { action.builder. + case 162: { action.builder. consumeExpressionProblem(); break; } // - // Rule 160: expression_list ::= expression_list_actual + // Rule 163: expression_list ::= expression_list_actual // - case 160: { action.builder. + case 163: { action.builder. consumeExpressionList(); break; } // - // Rule 164: expression_list_opt ::= $Empty + // Rule 167: expression_list_opt ::= $Empty // - case 164: { action.builder. + case 167: { action.builder. consumeEmpty(); break; } // - // Rule 166: expression_opt ::= $Empty - // - case 166: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 169: constant_expression_opt ::= $Empty + // Rule 169: expression_opt ::= $Empty // case 169: { action.builder. consumeEmpty(); break; } // - // Rule 178: statement ::= ERROR_TOKEN + // Rule 172: constant_expression_opt ::= $Empty // - case 178: { action.builder. + case 172: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 181: statement ::= ERROR_TOKEN + // + case 181: { action.builder. consumeStatementProblem(); break; } // - // Rule 179: labeled_statement ::= identifier : statement + // Rule 182: labeled_statement ::= identifier : statement // - case 179: { action.builder. + case 182: { action.builder. consumeStatementLabeled(); break; } // - // Rule 180: labeled_statement ::= case constant_expression : + // Rule 183: labeled_statement ::= case constant_expression : // - case 180: { action.builder. + case 183: { action.builder. consumeStatementCase(); break; } // - // Rule 181: labeled_statement ::= default : + // Rule 184: labeled_statement ::= default : // - case 181: { action.builder. + case 184: { action.builder. consumeStatementDefault(); break; } // - // Rule 182: expression_statement ::= expression ; + // Rule 185: expression_statement ::= expression ; // - case 182: { action.builder. + case 185: { action.builder. consumeStatementExpression(); break; } // - // Rule 183: expression_statement ::= ; + // Rule 186: expression_statement ::= ; // - case 183: { action.builder. + case 186: { action.builder. consumeStatementNull(); break; } // - // Rule 184: compound_statement ::= { statement_seq } + // Rule 187: compound_statement ::= { statement_seq } // - case 184: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 185: compound_statement ::= { } + // Rule 188: compound_statement ::= { } // - case 185: { action.builder. + case 188: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 188: selection_statement ::= if ( condition ) statement + // Rule 191: selection_statement ::= if ( condition ) statement // - case 188: { action.builder. + case 191: { action.builder. consumeStatementIf(false); break; } // - // Rule 189: selection_statement ::= if ( condition ) statement else statement + // Rule 192: selection_statement ::= if ( condition ) statement else statement // - case 189: { action.builder. + case 192: { action.builder. consumeStatementIf(true); break; } // - // Rule 190: selection_statement ::= switch ( condition ) statement + // Rule 193: selection_statement ::= switch ( condition ) statement // - case 190: { action.builder. + case 193: { action.builder. consumeStatementSwitch(); break; } // - // Rule 192: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression // - case 192: { action.builder. + case 195: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 193: iteration_statement ::= while ( condition ) statement + // Rule 196: iteration_statement ::= while ( condition ) statement // - case 193: { action.builder. + case 196: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 194: iteration_statement ::= do statement while ( expression ) ; + // Rule 197: iteration_statement ::= do statement while ( expression ) ; // - case 194: { action.builder. + case 197: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 195: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 198: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // - case 195: { action.builder. + case 198: { action.builder. consumeStatementForLoop(); break; } // - // Rule 196: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement + // Rule 199: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement // - case 196: { action.builder. + case 199: { action.builder. consumeStatementForLoop(); break; } // - // Rule 197: jump_statement ::= break ; + // Rule 200: jump_statement ::= break ; // - case 197: { action.builder. + case 200: { action.builder. consumeStatementBreak(); break; } // - // Rule 198: jump_statement ::= continue ; + // Rule 201: jump_statement ::= continue ; // - case 198: { action.builder. + case 201: { action.builder. consumeStatementContinue(); break; } // - // Rule 199: jump_statement ::= return expression ; + // Rule 202: jump_statement ::= return expression ; // - case 199: { action.builder. + case 202: { action.builder. consumeStatementReturn(true); break; } // - // Rule 200: jump_statement ::= return ; + // Rule 203: jump_statement ::= return ; // - case 200: { action.builder. + case 203: { action.builder. consumeStatementReturn(false); break; } // - // Rule 201: jump_statement ::= goto identifier ; + // Rule 204: jump_statement ::= goto identifier_token ; // - case 201: { action.builder. + case 204: { action.builder. consumeStatementGoto(); break; } // - // Rule 202: declaration_statement ::= block_declaration + // Rule 205: declaration_statement ::= block_declaration // - case 202: { action.builder. + case 205: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 219: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 219: { action.builder. + case 222: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 220: declaration_specifiers ::= simple_declaration_specifiers + // Rule 223: declaration_specifiers ::= simple_declaration_specifiers // - case 220: { action.builder. + case 223: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 221: declaration_specifiers ::= class_declaration_specifiers - // - case 221: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 222: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 222: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 223: declaration_specifiers ::= enum_declaration_specifiers - // - case 223: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 224: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 224: declaration_specifiers ::= class_declaration_specifiers // case 224: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 225: declaration_specifiers ::= elaborated_declaration_specifiers + // + case 225: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 226: declaration_specifiers ::= enum_declaration_specifiers + // + case 226: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 227: declaration_specifiers ::= type_name_declaration_specifiers + // + case 227: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 226: declaration_specifiers_opt ::= $Empty + // Rule 229: declaration_specifiers_opt ::= $Empty // - case 226: { action.builder. + case 229: { action.builder. consumeEmpty(); break; } // - // Rule 230: no_type_declaration_specifier ::= friend + // Rule 233: no_type_declaration_specifier ::= friend // - case 230: { action.builder. + case 233: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 231: no_type_declaration_specifier ::= typedef + // Rule 234: no_type_declaration_specifier ::= typedef // - case 231: { action.builder. + case 234: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 260: simple_type_specifier ::= simple_type_specifier_token + // Rule 263: simple_type_specifier ::= simple_type_specifier_token // - case 260: { action.builder. + case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 276: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name - // - case 277: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name - // - case 278: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 279: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // + case 280: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 281: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // + case 281: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 282: { action.builder. consumeQualifiedId(true); break; } // - // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 283: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 280: { action.builder. + case 283: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 284: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 281: { action.builder. + case 284: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 282: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 285: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 282: { action.builder. + case 285: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 284: enum_specifier ::= enum { enumerator_list_opt } + // Rule 287: enum_specifier ::= enum { enumerator_list_opt } // - case 284: { action.builder. + case 287: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 285: enum_specifier ::= enum identifier { enumerator_list_opt } + // Rule 288: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 285: { action.builder. + case 288: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 290: enumerator_definition ::= enumerator + // Rule 293: enumerator_definition ::= enumerator // - case 290: { action.builder. + case 293: { action.builder. consumeEnumerator(false); break; } // - // Rule 291: enumerator_definition ::= enumerator = constant_expression + // Rule 294: enumerator_definition ::= enumerator = constant_expression // - case 291: { action.builder. + case 294: { action.builder. consumeEnumerator(true); break; } // - // Rule 300: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } + // Rule 303: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } // - case 300: { action.builder. + case 303: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 301: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // Rule 304: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } // - case 301: { action.builder. + case 304: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 302: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 305: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 302: { action.builder. + case 305: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 304: namespace_alias_definition ::= namespace identifier = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 307: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 304: { action.builder. + case 307: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 305: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 308: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 305: { action.builder. + case 308: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 306: typename_opt ::= typename + // Rule 309: typename_opt ::= typename // - case 306: { action.builder. + case 309: { action.builder. consumePlaceHolder(); break; } // - // Rule 307: typename_opt ::= $Empty + // Rule 310: typename_opt ::= $Empty // - case 307: { action.builder. + case 310: { action.builder. consumeEmpty(); break; } // - // Rule 308: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 311: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 308: { action.builder. + case 311: { action.builder. consumeUsingDirective(); break; } // - // Rule 309: asm_definition ::= asm ( stringlit ) ; + // Rule 312: asm_definition ::= asm ( stringlit ) ; // - case 309: { action.builder. + case 312: { action.builder. consumeDeclarationASM(); break; } // - // Rule 310: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 313: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 310: { action.builder. + case 313: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 311: linkage_specification ::= extern stringlit declaration + // Rule 314: linkage_specification ::= extern stringlit declaration // - case 311: { action.builder. + case 314: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 317: init_declarator ::= declarator initializer + // Rule 320: init_declarator ::= declarator initializer // - case 317: { action.builder. + case 320: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 319: declarator ::= ptr_operator_seq direct_declarator + // Rule 322: declarator ::= ptr_operator_seq direct_declarator // - case 319: { action.builder. + case 322: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 321: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 324: function_declarator ::= ptr_operator_seq direct_declarator // - case 321: { action.builder. + case 324: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 325: basic_direct_declarator ::= declarator_id_name + // Rule 328: basic_direct_declarator ::= declarator_id_name // - case 325: { action.builder. + case 328: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 326: basic_direct_declarator ::= ( declarator ) + // Rule 329: basic_direct_declarator ::= ( declarator ) // - case 326: { action.builder. + case 329: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 327: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 330: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 327: { action.builder. + case 330: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 328: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 331: array_direct_declarator ::= array_direct_declarator array_modifier // - case 328: { action.builder. + case 331: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 329: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 332: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 329: { action.builder. + case 332: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 330: array_modifier ::= [ constant_expression ] + // Rule 333: array_modifier ::= [ constant_expression ] // - case 330: { action.builder. + case 333: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 331: array_modifier ::= [ ] + // Rule 334: array_modifier ::= [ ] // - case 331: { action.builder. + case 334: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 332: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 335: ptr_operator ::= * cv_qualifier_seq_opt // - case 332: { action.builder. + case 335: { action.builder. consumePointer(); break; } // - // Rule 333: ptr_operator ::= & + // Rule 336: ptr_operator ::= & // - case 333: { action.builder. + case 336: { action.builder. consumeReferenceOperator(); break; } // - // Rule 334: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 337: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 334: { action.builder. + case 337: { action.builder. consumePointerToMember(); break; } // - // Rule 340: cv_qualifier ::= const - // - case 340: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 341: cv_qualifier ::= volatile - // - case 341: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 343: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 343: cv_qualifier ::= const // case 343: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 344: cv_qualifier ::= volatile + // + case 344: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 346: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // + case 346: { action.builder. consumeQualifiedId(false); break; } // - // Rule 344: type_id ::= type_specifier_seq + // Rule 347: type_id ::= type_specifier_seq // - case 344: { action.builder. + case 347: { action.builder. consumeTypeId(false); break; } // - // Rule 345: type_id ::= type_specifier_seq abstract_declarator + // Rule 348: type_id ::= type_specifier_seq abstract_declarator // - case 345: { action.builder. + case 348: { action.builder. consumeTypeId(true); break; } // - // Rule 348: abstract_declarator ::= ptr_operator_seq + // Rule 351: abstract_declarator ::= ptr_operator_seq // - case 348: { action.builder. + case 351: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 349: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 352: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 349: { action.builder. + case 352: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 353: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 356: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 353: { action.builder. + case 356: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_modifier + // Rule 357: array_direct_abstract_declarator ::= array_modifier // - case 354: { action.builder. + case 357: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 355: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 358: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 355: { action.builder. + case 358: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 356: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 359: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 356: { action.builder. + case 359: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 360: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 357: { action.builder. + case 360: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 358: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 361: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 358: { action.builder. + case 361: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 362: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 359: { action.builder. + case 362: { action.builder. consumePlaceHolder(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 363: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 360: { action.builder. + case 363: { action.builder. consumeEmpty(); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 364: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 361: { action.builder. + case 364: { action.builder. consumePlaceHolder(); break; } // - // Rule 367: abstract_declarator_opt ::= $Empty + // Rule 370: abstract_declarator_opt ::= $Empty // - case 367: { action.builder. + case 370: { action.builder. consumeEmpty(); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 371: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 368: { action.builder. + case 371: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 369: parameter_declaration ::= declaration_specifiers + // Rule 372: parameter_declaration ::= declaration_specifiers // - case 369: { action.builder. + case 372: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 371: parameter_init_declarator ::= declarator = parameter_initializer - // - case 371: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 373: parameter_init_declarator ::= abstract_declarator = parameter_initializer - // - case 373: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 374: parameter_init_declarator ::= = parameter_initializer + // Rule 374: parameter_init_declarator ::= declarator = parameter_initializer // case 374: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 376: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 376: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 377: parameter_init_declarator ::= = parameter_initializer + // + case 377: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 375: parameter_initializer ::= assignment_expression + // Rule 378: parameter_initializer ::= assignment_expression // - case 375: { action.builder. + case 378: { action.builder. consumeInitializer(); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 379: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 376: { action.builder. + case 379: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 380: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 377: { action.builder. + case 380: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 380: initializer ::= ( expression_list ) + // Rule 383: initializer ::= ( expression_list ) // - case 380: { action.builder. + case 383: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 381: initializer_clause ::= assignment_expression + // Rule 384: initializer_clause ::= assignment_expression // - case 381: { action.builder. + case 384: { action.builder. consumeInitializer(); break; } // - // Rule 382: initializer_clause ::= { initializer_list , } + // Rule 385: initializer_clause ::= { initializer_list , } // - case 382: { action.builder. + case 385: { action.builder. consumeInitializerList(); break; } // - // Rule 383: initializer_clause ::= { initializer_list } + // Rule 386: initializer_clause ::= { initializer_list } // - case 383: { action.builder. + case 386: { action.builder. consumeInitializerList(); break; } // - // Rule 384: initializer_clause ::= { } + // Rule 387: initializer_clause ::= { } // - case 384: { action.builder. + case 387: { action.builder. consumeInitializerList(); break; } // - // Rule 389: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 392: class_specifier ::= class_head { member_declaration_list_opt } // - case 389: { action.builder. + case 392: { action.builder. consumeClassSpecifier(); break; } // - // Rule 390: class_head ::= class_keyword identifier_name_opt base_clause_opt - // - case 390: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 391: class_head ::= class_keyword template_id_name base_clause_opt - // - case 391: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 392: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 393: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 393: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 394: class_head ::= class_keyword template_id_name base_clause_opt + // + case 394: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 395: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // + case 395: { action.builder. consumeClassHead(true); break; } // - // Rule 397: identifier_name_opt ::= $Empty + // Rule 396: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 397: { action.builder. + case 396: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 398: identifier_name_opt ::= $Empty + // + case 398: { action.builder. consumeEmpty(); break; } // - // Rule 401: visibility_label ::= access_specifier_keyword : + // Rule 402: visibility_label ::= access_specifier_keyword : // - case 401: { action.builder. + case 402: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 403: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 402: { action.builder. + case 403: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 403: member_declaration ::= declaration_specifiers_opt ; + // Rule 404: member_declaration ::= declaration_specifiers_opt ; // - case 403: { action.builder. + case 404: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 406: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 406: { action.builder. + case 407: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 410: member_declaration ::= ERROR_TOKEN + // Rule 411: member_declaration ::= ERROR_TOKEN // - case 410: { action.builder. + case 411: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 418: member_declarator ::= declarator constant_initializer + // Rule 419: member_declarator ::= declarator constant_initializer // - case 418: { action.builder. + case 419: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 419: member_declarator ::= bit_field_declarator : constant_expression + // Rule 420: member_declarator ::= bit_field_declarator : constant_expression // - case 419: { action.builder. + case 420: { action.builder. consumeBitField(true); break; } // - // Rule 420: member_declarator ::= : constant_expression + // Rule 421: member_declarator ::= : constant_expression // - case 420: { action.builder. + case 421: { action.builder. consumeBitField(false); break; } // - // Rule 421: bit_field_declarator ::= identifier_name + // Rule 422: bit_field_declarator ::= identifier_name // - case 421: { action.builder. + case 422: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. + case 429: { action.builder. consumeBaseSpecifier(false); break; } // - // Rule 429: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 430: { action.builder. consumeBaseSpecifier(true); break; } // - // Rule 430: virtual_opt ::= virtual + // Rule 431: virtual_opt ::= virtual // - case 430: { action.builder. + case 431: { action.builder. consumePlaceHolder(); break; } // - // Rule 431: virtual_opt ::= $Empty + // Rule 432: virtual_opt ::= $Empty // - case 431: { action.builder. + case 432: { action.builder. consumeEmpty(); break; } // - // Rule 437: conversion_function_id_name ::= operator conversion_type_id + // Rule 438: conversion_function_id_name ::= operator conversion_type_id // - case 437: { action.builder. + case 438: { action.builder. consumeConversionName(); break; } // - // Rule 438: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 438: { action.builder. + case 439: { action.builder. consumeTypeId(true); break; } // - // Rule 439: conversion_type_id ::= type_specifier_seq + // Rule 440: conversion_type_id ::= type_specifier_seq // - case 439: { action.builder. + case 440: { action.builder. consumeTypeId(false); break; } // - // Rule 440: conversion_declarator ::= ptr_operator_seq + // Rule 441: conversion_declarator ::= ptr_operator_seq // - case 440: { action.builder. + case 441: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 446: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 446: { action.builder. + case 447: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 447: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 448: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 447: { action.builder. + case 448: { action.builder. consumeQualifiedId(false); break; } // - // Rule 450: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 451: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 450: { action.builder. + case 451: { action.builder. consumeTemplateId(); break; } // - // Rule 451: operator_id_name ::= operator overloadable_operator + // Rule 452: operator_id_name ::= operator overloadable_operator // - case 451: { action.builder. + case 452: { action.builder. consumeOperatorName(); break; } // - // Rule 494: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 495: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 494: { action.builder. + case 495: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 495: export_opt ::= export + // Rule 496: export_opt ::= export // - case 495: { action.builder. + case 496: { action.builder. consumePlaceHolder(); break; } // - // Rule 496: export_opt ::= $Empty + // Rule 497: export_opt ::= $Empty // - case 496: { action.builder. + case 497: { action.builder. consumeEmpty(); break; } // - // Rule 501: type_parameter ::= class identifier_name_opt - // - case 501: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 502: type_parameter ::= class identifier_name_opt = type_id + // Rule 502: type_parameter ::= class identifier_name_opt // case 502: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 503: type_parameter ::= typename identifier_name_opt - // - case 503: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 504: type_parameter ::= typename identifier_name_opt = type_id + // Rule 503: type_parameter ::= class identifier_name_opt = type_id // - case 504: { action.builder. + case 503: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 505: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 504: type_parameter ::= typename identifier_name_opt + // + case 504: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 505: type_parameter ::= typename identifier_name_opt = type_id // case 505: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // + case 506: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 506: { action.builder. + case 507: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 507: template_id_name ::= template_identifier < template_argument_list_opt > + // Rule 508: template_id_name ::= template_identifier < template_argument_list_opt > // - case 507: { action.builder. + case 508: { action.builder. consumeTemplateId(); break; } // - // Rule 516: explicit_instantiation ::= template declaration + // Rule 517: explicit_instantiation ::= template declaration // - case 516: { action.builder. + case 517: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 517: explicit_specialization ::= template < > declaration + // Rule 518: explicit_specialization ::= template < > declaration // - case 517: { action.builder. + case 518: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 518: try_block ::= try compound_statement handler_seq + // Rule 519: try_block ::= try compound_statement handler_seq // - case 518: { action.builder. + case 519: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 521: handler ::= catch ( exception_declaration ) compound_statement + // Rule 522: handler ::= catch ( exception_declaration ) compound_statement // - case 521: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 522: handler ::= catch ( ... ) compound_statement + // Rule 523: handler ::= catch ( ... ) compound_statement // - case 522: { action.builder. + case 523: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq declarator - // - case 523: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 524: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 524: exception_declaration ::= type_specifier_seq declarator // case 524: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq + // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator // case 525: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 526: exception_declaration ::= type_specifier_seq + // + case 526: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 533: expression_parser_start ::= ERROR_TOKEN + // Rule 534: expression_parser_start ::= ERROR_TOKEN // - case 533: { action.builder. + case 534: { action.builder. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java index 98e4d836370..1fdddddda87 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java @@ -37,507 +37,517 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface BaseCheck { public final static short baseCheck[] = {0, - 0,0,0,0,0,1,1,1,1,1, - 0,1,2,1,1,1,1,1,1,1, - 1,1,1,1,3,1,1,1,1,1, - 1,1,1,2,1,1,0,1,0,4, - 2,2,2,3,2,3,2,2,1,0, - 1,1,1,4,4,4,8,8,3,3, - 4,4,3,3,2,2,7,7,7,7, - 4,4,6,7,4,1,1,1,2,2, - 2,2,2,2,2,2,2,4,7,7, - 3,1,0,1,2,2,1,2,3,4, - 1,0,3,1,0,3,5,1,4,1, - 3,3,1,3,3,3,1,3,3,1, - 3,3,1,3,3,3,3,1,3,3, - 1,3,1,3,1,3,1,3,1,3, - 1,5,1,2,1,1,3,3,3,3, - 3,3,3,3,3,3,3,1,1,2, - 1,3,1,0,1,0,1,1,0,1, - 1,1,1,1,1,1,1,1,3,3, - 2,2,1,4,2,1,2,5,7,5, - 1,4,5,7,9,8,2,2,3,2, - 3,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2,1,0,4,2, - 2,2,2,2,1,0,1,1,1,1, - 1,1,2,1,2,2,2,1,1,2, - 2,1,2,2,1,2,2,1,2,2, + 0,0,1,1,1,1,1,1,1,1, + 1,0,1,2,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3,1,1, + 1,1,1,1,1,1,2,1,1,0, + 1,0,4,2,2,2,3,2,3,2, + 2,1,0,1,1,1,4,4,4,8, + 8,3,3,4,4,3,3,2,2,7, + 7,7,7,4,4,6,7,4,1,1, + 1,2,2,2,2,2,2,2,2,2, + 4,7,7,3,1,0,1,2,2,1, + 2,3,4,1,0,3,1,0,3,5, + 1,4,1,3,3,1,3,3,3,1, + 3,3,1,3,3,1,3,3,3,3, + 1,3,3,1,3,1,3,1,3,1, + 3,1,3,1,5,1,2,1,1,3, + 3,3,3,3,3,3,3,3,3,3, + 1,1,2,1,3,1,0,1,0,1, + 1,0,1,1,1,1,1,1,1,1, + 1,3,3,2,2,1,4,2,1,2, + 5,7,5,1,4,5,7,9,8,2, + 2,3,2,3,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2,1, + 0,4,2,2,2,2,2,1,0,1, + 1,1,1,1,1,2,1,2,2,2, + 1,1,2,2,1,2,2,1,2,2, + 1,2,2,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3,4,4,5,4, - 5,4,1,5,6,1,3,1,0,1, - 3,1,1,1,1,1,1,1,1,6, - 6,5,1,7,6,1,0,6,5,6, - 4,1,3,1,0,1,2,1,3,1, - 3,1,1,1,1,3,9,2,2,3, - 2,3,1,5,1,2,2,1,0,1, - 1,1,3,1,2,1,1,2,3,1, - 1,1,3,1,2,2,9,8,2,1, - 3,1,3,1,0,1,0,2,1,1, - 3,1,3,2,1,5,8,1,2,3, - 1,5,4,3,1,3,1,1,5,4, - 4,5,5,1,0,1,0,1,1,1, - 2,4,2,2,1,5,1,1,1,1, - 1,2,1,0,1,3,1,2,3,2, - 1,2,2,1,0,1,3,3,6,1, - 0,1,1,1,1,0,2,2,1,2, - 2,1,0,1,3,4,3,1,1,5, - 2,1,1,3,3,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,4, + 4,5,4,5,4,1,5,6,1,3, + 1,0,1,3,1,1,1,1,1,1, + 1,1,6,6,5,1,7,6,1,0, + 6,5,6,4,1,3,1,0,1,2, + 1,3,1,3,1,1,1,1,3,9, + 2,2,3,2,3,1,5,1,2,2, + 1,0,1,1,1,3,1,2,1,1, + 2,3,1,1,1,3,1,2,2,9, + 8,2,1,3,1,3,1,0,1,0, + 2,1,1,3,1,3,2,1,5,8, + 1,2,3,1,5,4,3,1,3,1, + 1,5,4,4,5,5,1,0,1,1, + 1,2,4,2,2,1,5,1,1,1, + 1,1,2,1,0,1,3,1,2,3, + 2,1,2,2,1,0,1,3,3,6, + 1,0,1,1,1,1,0,2,2,1, + 2,2,1,0,1,3,4,3,1,1, + 5,2,1,1,3,3,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,2,2,7,1,0,1,3,1,1, - 2,4,2,4,7,9,5,1,1,3, - 1,0,1,1,1,2,4,4,1,2, - 5,5,3,3,1,4,3,1,0,1, - 3,2,1,-64,0,0,0,-342,0,0, + 1,1,2,2,7,1,0,1,3,1, + 1,2,4,2,4,7,9,5,1,1, + 3,1,0,1,1,1,2,4,4,1, + 2,5,5,3,3,1,4,3,1,0, + 1,3,2,1,-64,0,0,0,0,-55, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-12,0,0,0, - 0,0,0,0,0,0,-2,0,0,0, - 0,-398,0,0,0,-126,-74,0,0,0, - 0,0,0,0,0,0,0,0,-181,0, - -80,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-2,0, + 0,0,0,-212,0,0,0,0,0,0, + 0,0,0,0,-5,0,0,-12,-74,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-148,0,0,0, - 0,0,0,0,0,0,0,0,0,-23, - 0,0,0,-5,0,0,0,0,0,0, + 0,-80,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-357,0,-369,0, - 0,0,0,-514,0,0,0,-267,0,0, - 0,0,0,0,0,-6,0,0,0,0, - 0,0,0,0,-118,0,0,0,0,0, + 0,0,0,0,0,-185,0,0,-119,-126, + 0,0,0,0,0,0,-334,-6,0,0, + 0,-21,0,0,0,0,-3,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-344,-515, 0,0,0,0,0,0,0,0,0,0, - 0,0,-185,0,0,0,0,0,0,0, - 0,0,-373,0,0,0,0,-330,0,0, - 0,-291,0,0,0,0,0,-237,0,0, - -135,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-309,0,0,0,0,-51,-7, - 0,0,0,-18,0,0,0,0,0,0, - 0,-85,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-131,0,0,0,0,0, - 0,0,0,0,-226,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-119,0,0, - 0,0,0,-8,0,0,-180,0,0,0, - -66,0,0,0,0,-189,0,0,0,0, - -512,0,0,0,-67,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-9,-10, - 0,0,-95,0,0,0,-149,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-522,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-143,0,0, - 0,0,0,0,0,-140,0,-334,0,0, - 0,0,0,-344,0,0,-151,0,0,0, - -141,0,0,0,0,0,0,0,0,-58, - -468,-233,0,0,0,-4,0,0,0,0, + 0,0,0,-67,0,0,0,-7,0,-8, + 0,0,0,0,0,0,-118,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-292,0,0,0,-239,0,0, - 0,-248,0,0,0,-75,0,0,0,0, - 0,0,0,0,0,0,0,0,-280,0, + -373,0,0,0,0,0,-9,0,0,-148, + 0,0,0,0,-10,0,0,0,0,0, + 0,0,0,-135,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-303,0,0,0,0,0,0,0,-3, - 0,-11,0,0,0,0,0,-13,0,0, - -315,0,0,0,0,0,0,0,0,0, + 0,0,-51,0,0,-11,0,0,0,0, + 0,0,-13,0,0,0,0,-357,0,0, + 0,0,0,0,-89,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-140,0, + 0,0,-398,0,0,-59,-226,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-14,0,0,0,0,0,-355, - 0,0,-316,0,0,0,-54,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-137,0,0,0,0, + -131,0,0,0,0,0,0,0,0,-18, + 0,0,0,0,-249,0,0,0,0,-435, + 0,-14,0,-513,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -15,-363,0,0,0,0,0,-313,-475,0, - 0,0,-208,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-420,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -41,0,0,0,-133,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-17,0,0,0,0,0,0, - 0,0,0,-59,0,0,0,0,0,0, - 0,0,-43,0,0,0,-403,0,0,0, + 0,0,0,0,0,0,0,-54,0,0, + 0,0,0,0,0,0,0,-58,0,0, + 0,0,0,-116,0,0,-22,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -433,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-55,0,-97,0,0, - 0,-218,0,0,0,0,0,0,0,0, + -15,-228,-291,0,0,0,-523,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -262,0,0,0,0,-343,0,0,0,0, - 0,0,0,0,0,-472,-30,0,0,-98, - 0,0,0,-399,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -52,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-151, + 0,0,0,0,-17,0,0,0,0,0, + 0,0,0,0,-30,-61,0,-4,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-31,0,0,0,0,-403,0,0,0, + 0,-32,0,0,0,0,0,0,0,0, + 0,-280,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -33,0,0,0,0,0,0,0,0,0, + -414,0,0,0,-315,0,0,0,0,-62, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-34,0, + 0,0,0,-50,0,0,-232,0,0,0, + 0,0,0,0,-35,0,0,-75,0,0, + 0,0,-66,0,0,0,0,0,0,0, + -110,0,0,0,-36,-316,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-37,0,-38, + 0,0,0,0,-133,0,0,0,-476,0, + 0,0,0,-111,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -134,0,-39,0,0,0,0,0,-117,0, + 0,0,0,-41,0,0,0,0,-355,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-267,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-40,0,0,0,-42,-43,0,0, + 0,0,-141,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-145,0,0,0,0,-156,0,0,0, + -97,0,0,0,0,-150,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-187,0,0,0,0,0, + 0,0,0,0,-143,0,0,0,0,0, + 0,0,0,-98,0,0,0,0,-155,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-208,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-99,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -188,0,0,0,0,0,0,0,-56,0, + -190,0,0,0,0,0,-283,0,0,-100, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-192,0,0,0,0,0,0, + 0,-309,0,-195,0,0,0,0,0,-57, + 0,0,-101,0,0,0,0,-204,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-202,0,0,-60,0,-303,0,0,0, + 0,0,0,0,0,-102,0,0,0,0, + -218,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-206, + 0,0,0,0,0,0,0,-68,0,-211, + 0,0,0,0,0,-69,0,0,-103,0, + 0,0,0,-213,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -70,0,0,0,0,0,0,0,-72,0, + 0,-104,0,0,0,0,-284,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-230,0,0,0,0, + 0,0,0,-73,0,-231,0,0,0,0, + 0,-112,0,0,-105,0,0,0,0,-240, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-235,0, + 0,0,0,0,0,0,0,0,-363,0, + 0,0,0,0,0,0,0,-106,0,0, + 0,0,-247,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-260,0,0,0,0,0,0,0,-264, + 0,-433,0,0,0,0,0,0,0,0, + -107,0,0,0,0,-254,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-113,0,0,0,0,0, + 0,0,-114,0,-461,0,0,0,0,0, + 0,0,0,-138,0,0,0,0,-255,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-279,0,0, + 0,0,0,0,0,-115,0,-122,0,0, + 0,0,0,-129,-219,0,0,0,0,-256, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-420,0, + 0,0,0,-356,0,0,-130,0,-142,0, + 0,0,0,0,0,0,0,-248,-157,-152, + 0,0,0,0,-181,0,0,-508,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-158, + 0,0,0,0,0,0,-419,0,0,0, + -312,0,0,0,0,-262,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-304,0,0,0,0,0, + 0,0,-159,0,-160,0,0,0,0,-326, + 0,0,0,0,-161,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-76,0,0,0,0,0,0, + 0,0,0,-162,0,0,0,0,-154,0, + 0,0,0,-163,0,0,0,0,0,0, + 0,0,0,-164,-340,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-292,0, + 0,0,0,0,0,0,0,0,-165,0, + 0,0,0,-361,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-166,0,0, + 0,0,-372,0,0,-167,0,0,0,0, + 0,0,-330,0,0,0,0,-168,-257,0, + 0,0,0,-180,0,0,0,0,-362,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-289,0,0, + 0,0,-298,0,0,0,0,-406,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-354,0,0,0, + 0,-336,-299,0,0,0,0,-189,0,0, + 0,0,-109,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-301,0,-234,0,0,-319, + 0,-96,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-317,0,0,0,0, + 0,0,0,-327,0,-399,0,-94,0,0, 0,0,-275,0,0,0,0,0,0,0, - -264,0,0,0,0,0,0,-283,-31,0, - 0,-99,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-32,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-33, - -34,0,0,-100,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-270, + 0,-95,0,0,0,0,-320,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-35,0,0,0,0,0, - 0,-284,-36,0,0,-101,0,0,0,-301, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-435,0, - 0,0,0,-37,-38,0,0,-102,0,0, - 0,-319,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-504,0, - -460,0,0,0,0,0,-39,0,0,-103, - 0,0,0,-40,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-311,0,0,0,0,0,0,0, - -336,0,-42,0,0,0,0,-56,-57,0, - 0,-104,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-352,0,-495,0,0,0,0,-60, - -68,0,0,-105,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-505,0,0,0, - 0,0,0,0,-371,0,-69,0,0,0, - 0,-70,-72,0,0,-106,0,0,0,-73, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-478,0, - 0,0,0,0,0,0,-112,0,-113,0, - 0,0,0,0,-114,0,0,-107,0,0, - 0,-232,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-249,0,0,-134,0, - 0,0,0,0,0,-115,-122,0,0,-138, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-129,0,0,0,0,-61,0,0, - -130,0,-142,0,0,0,0,-219,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-295,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -154,0,0,0,-157,0,0,0,0,0, - 0,0,-360,-507,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-158,0,0,0, - 0,0,0,0,-145,0,0,0,0,0, - 0,-159,-160,0,0,-312,0,0,0,-161, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-62,0,0,-162,0,-163,0, - 0,0,0,-326,0,0,0,-408,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-228,0,0,0,0,0,0,0,0, - 0,-354,0,0,0,-164,0,0,0,0, - 0,-152,0,0,0,-246,0,0,0,-340, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-110,0,0, - -165,0,0,0,0,0,0,-361,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-261,0,0,-166,0, - -234,0,0,0,0,0,0,-253,0,0, - 0,-273,0,0,0,-345,0,0,0,-278, - 0,0,0,-362,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-111,0,0,-455,0,0,0,0,0, - 0,-406,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-167, - 0,0,-364,0,-168,0,0,0,0,0, - 0,-290,0,0,0,-169,-416,-170,-171,-389, - 0,0,0,-380,0,0,-270,-109,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-496,0, - -77,0,0,-117,0,-96,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-172,0,0,0,0,0,0, - -94,0,0,0,-271,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-356,0,-53,0,0,0,0,0,-212, - 0,0,-450,0,0,0,0,-238,0,0, - -370,0,-391,0,0,0,-484,0,0,-173, + 0,0,0,0,0,-244,0,0,0,0, + 0,0,0,-53,0,0,0,0,0,0, + 0,0,0,-63,0,-343,0,0,0,0, + -169,0,-198,0,0,0,0,-369,0,0, -91,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-147, + 0,-475,-311,-45,0,0,0,-170,0,-360, + -335,0,0,0,0,-349,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -81,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-484,0,0,0,0,0, + -20,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-171,-172,0, + -352,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-483,0,0,0, - 0,0,-500,0,-150,-174,0,0,0,-22, - 0,0,0,-175,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-176,0,0,0, - 0,-177,0,0,0,0,0,-52,0,0, - -499,0,-187,-178,-155,-179,0,0,0,0, - 0,0,0,0,-92,0,0,0,0,0, + -173,0,-479,0,0,0,0,0,0,0, + 0,0,0,0,0,-92,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-93,0,0,0,0,0,0,0, + 0,0,0,0,-93,0,0,0,0,-174, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -86,0,0,0,-236,0,0,0,0,0, + 0,0,0,-85,0,0,0,0,-175,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-182,0,0,0,-87,0,0, - 0,-183,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-176,0,0, + 0,-86,0,0,0,0,-177,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -184,0,0,0,-88,0,0,0,-300,0, + 0,0,0,0,0,-178,0,0,0,-87, + 0,0,0,0,-179,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-250,0,0, - 0,-242,0,0,0,0,0,0,0,0, - 0,0,0,-89,0,0,0,-417,0,0, + 0,0,0,-182,0,0,0,-88,0,0, + 0,0,-183,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-342,0,0,0,-242,0,0,0,0, + 0,0,0,0,0,0,0,0,-90,0, + 0,0,0,-184,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-193,0,0,-345,0,0,0,0, + -286,0,0,0,0,0,0,0,0,0, + 0,0,0,-323,0,0,0,-331,0,0, + 0,-333,0,-236,0,0,0,0,-313,0, + -23,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-274,0,0,0,0,0,0, + 0,0,0,0,0,0,-245,0,0,-473, + 0,-456,-194,-388,0,0,-233,0,0,0, + 0,-507,0,0,0,0,0,0,0,0, + 0,0,0,0,-239,0,0,0,0,-371, + 0,0,0,0,-370,0,0,-350,0,-81, + 0,0,0,0,-199,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-200,-203,0,0,0, + 0,0,0,0,-364,0,0,0,0,-346, + -149,0,0,0,0,-217,0,0,0,0, + -214,0,-305,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-365, + -16,0,0,0,0,0,0,0,0,0, + -427,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-77,-224,-366, + -459,-120,0,0,0,0,-408,0,0,0, + -225,0,0,0,0,0,0,0,0,0, + -379,-501,0,0,0,0,0,-271,0,0, + 0,0,0,0,0,-227,0,0,-347,0, + 0,0,0,0,0,0,0,0,-241,0, + 0,0,0,0,0,0,-237,0,0,-121, + 0,0,0,0,0,0,0,-137,0,0, + 0,0,-243,0,-422,-383,-474,0,0,0, + 0,0,0,-19,0,0,0,0,0,-288, + 0,0,0,0,0,0,0,0,-416,-252, + 0,-251,0,0,0,0,0,0,0,0, + 0,-265,0,0,0,0,-318,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-250,0,0,0,0,0, + 0,-481,0,0,0,0,0,0,0,0, + 0,0,-386,0,0,0,-266,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -124,0,0,0,0,-276,0,-246,0,0, + 0,0,-277,-281,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-282,-418,0, + -293,0,0,0,0,0,-483,-296,-123,0, + 0,0,0,0,0,0,0,-125,0,-146, + -238,0,0,0,0,0,0,0,0,-496, + 0,0,0,0,0,-297,-302,-132,0,0, + 0,0,-307,0,-389,0,0,0,0,-417, + 0,0,-423,0,-308,-445,0,0,0,0, + 0,0,-49,0,0,0,0,-458,0,0, + 0,-324,0,0,0,0,0,0,-329,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -193,-108,-188,-194,-272,0,0,0,0,0, - -198,0,0,0,-190,-199,0,-200,0,0, - 0,0,-203,0,0,0,-156,-63,-192,0, - 0,0,0,-381,-288,0,0,0,0,0, - 0,0,0,0,-286,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-245,0, - 0,0,0,0,-90,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-424, + 0,0,0,0,0,0,0,-82,0,0, + 0,0,-339,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-458,0,0, - -214,0,0,-224,0,0,0,0,0,-204, - -225,-195,0,0,0,0,0,0,0,-501, - 0,-139,-202,0,-227,0,-124,0,0,0, - -327,0,-519,0,0,-241,0,0,0,0, + 0,-83,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-314,-206, - -243,0,-473,0,0,0,0,0,0,0, - 0,0,-121,0,-213,0,0,0,0,-444, + 0,0,0,0,0,-84,0,0,0,0, + -341,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-322, 0,0,0,0,0,0,0,0,0,0, - 0,-252,-240,-132,0,0,0,0,-388,0, - -265,0,0,0,0,0,0,0,0,-247, - 0,0,0,0,0,0,0,-372,0,0, - 0,0,0,0,0,0,-266,-480,0,0, - 0,0,0,0,-276,0,0,0,0,0, - 0,-277,0,0,-281,0,0,0,0,-254, - 0,0,0,0,0,0,-282,-293,-144,0, - 0,0,0,0,-211,0,0,0,0,-296, - 0,0,-297,0,0,-302,0,0,0,0, - 0,0,0,-20,0,0,0,-230,-350,0, - -274,0,-482,-307,0,0,0,0,-255,-256, - 0,0,0,0,-308,0,-257,-289,0,-120, + 0,0,-391,0,0,0,0,-477,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-324,-287,0,0,0,0,0, - 0,0,0,-1,-329,0,0,0,0,0, - 0,0,0,0,0,0,0,-506,0,0, + -425,-367,-1,-387,-139,0,-108,0,0,0, + -368,0,-374,-376,0,-253,0,0,0,0, + -273,0,0,0,0,-466,0,0,0,0, + 0,0,0,0,0,0,-378,-384,-385,0, + -394,0,0,0,-404,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-298,-337,0,-339, - 0,0,0,0,0,0,0,0,0,-341, - 0,0,0,0,0,-268,0,0,0,0, - 0,0,0,0,0,0,0,-348,-367,0, - 0,0,0,0,0,0,0,0,-231,-368, - 0,0,0,0,0,-235,0,-260,-279,0, - 0,0,0,0,0,-445,0,-305,0,0, - 0,0,0,0,0,0,0,0,0,-374, - -454,0,0,0,0,0,0,0,0,0, - -49,0,0,0,0,-299,-123,-376,0,-469, - -125,-387,-304,0,0,0,0,-306,0,0, + -446,0,-278,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -378,0,-384,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-320,0,0,0, - 0,0,0,-477,-317,0,0,0,0,-116, - 0,0,0,0,0,0,-385,0,0,-349, - -404,0,-394,0,0,0,0,0,-397,0, + 0,0,0,0,0,-290,0,0,0,0, + -397,0,-405,-407,0,0,0,0,0,0, + 0,-409,0,-429,0,0,0,0,0,-449, + 0,-410,0,0,0,-505,0,0,0,0, + 0,0,0,0,-24,0,0,0,0,-411, 0,0,0,0,0,0,0,0,0,0, - 0,-244,0,0,-405,0,0,-407,0,0, - 0,0,0,0,0,0,-147,-347,0,0, - 0,0,-409,-323,0,-410,0,0,-411,0, - 0,0,0,0,0,0,-413,0,-331,-333, - 0,-414,0,0,0,0,-127,-419,0,0, - -421,0,0,0,0,0,0,0,0,-427, + 0,0,0,0,0,0,0,-25,0,0, + 0,0,-413,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-82,0,0,0,-365,0,0,0, + -421,-453,-460,0,-426,0,0,0,-26,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-346,-426,-491,0,0, - 0,-186,0,0,0,0,-474,0,-502,0, - 0,0,0,0,0,0,-366,0,0,0, - 0,-379,0,0,-428,0,-146,0,0,0, - 0,-383,0,-386,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-27,0,0,0,0,-428,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-28,0,0,0,0,-380, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-29,0,0, 0,0,-430,0,0,0,0,0,0,0, - -431,-83,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-418,-432,-434,-436,0, - -84,0,0,0,0,0,0,0,0,0, + -65,0,0,0,0,-431,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-437,-217,0,0,0,-322, + 0,0,0,-78,0,0,0,0,-497,0, 0,0,0,0,0,0,0,0,0,0, - 0,-442,-422,-424,-447,-50,-464,0,-439,0, - 0,-382,0,-456,-463,0,0,-396,0,0, + 0,0,0,0,0,0,-79,0,0,0, + 0,-451,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-128, + 0,0,0,0,-432,0,-434,-436,-437,-485, + 0,0,0,0,-455,-500,0,-328,0,0, + 0,0,-438,-443,0,0,-136,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -510,0,-470,0,0,0,0,-393,-489,-503, - -197,0,0,0,-508,0,0,0,0,0, - 0,-425,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-423,0,-513,0, - -395,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -415,-448,-457,-464,0,0,-209,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-429,-415,0,0,0, - 0,-492,0,-448,-452,0,0,0,0,0, - 0,0,0,0,0,0,0,-229,0,-412, - -457,0,0,0,0,0,0,0,0,0, - 0,0,0,-205,0,0,-518,0,0,0, - 0,0,0,0,0,0,0,0,-465,0, - 0,0,0,0,0,-459,0,0,0,0, - -438,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-153,0,0, - 0,0,-467,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -451,-461,0,0,0,0,0,0,0,0, + -382,0,0,-471,-470,0,-220,0,0,0, + 0,0,-395,0,0,0,-462,0,-490,-504, + 0,0,-468,-472,0,0,0,-127,0,-186, + 0,0,0,0,-509,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-478,0, + 0,0,0,0,0,0,0,0,-261,0, + -502,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-300,0,-492,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-471,0,0,0,0, + 0,0,0,0,0,-412,0,0,0,0, + 0,-221,0,0,0,0,0,0,-506,0, + -486,-197,0,0,0,0,0,-487,0,0, + 0,0,0,0,0,-272,0,-520,-46,0, + 0,0,-258,0,0,0,-439,0,0,-503, 0,0,0,0,0,0,0,0,0,0, - -485,-486,-497,0,0,0,0,0,0,0, - 0,0,0,0,0,-453,-321,0,0,0, - 0,0,-487,-511,-516,-441,0,0,0,0, + 0,0,0,0,0,0,0,0,-498,0, 0,0,0,0,0,0,0,0,0,0, - -521,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-498,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-511,0, + -488,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-447,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -479,0,0,0,0,0,0,0,0,0, - -220,0,0,0,0,0,-16,-19,-45,0, + 0,0,0,0,0,0,-452,0,0,-512, + 0,0,-268,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-381,-499,0, + 0,0,0,0,0,0,-517,-144,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-514,0,0,0,0,0, + 0,0,0,-454,-519,0,0,-522,0,0, + 0,0,0,0,0,0,-314,0,-295,0, + 0,0,0,0,0,0,0,0,0,-287, 0,0,0,0,0,0,0,0,0,0, + 0,0,-205,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-480, + 0,0,0,0,0,0,0,0,-442,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-488, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-207,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -490,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-489,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-207,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-259,0,0,-491, 0,0,0,0,0,0,0,0,0,0, - -76,-494,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-215,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-515,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -495,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -440,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-520,0,0,0,0,0,0, + 0,-516,0,-348,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-441,-393,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-521,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-523,0,0,0,0,0, + 0,0,-465,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-216,0,0,0,0,0,0,0,0, + 0,0,0,-524,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-24,0,0,0,0,0,0, + 0,0,-358,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-25,0,0,0,0, + 0,0,0,0,-306,0,0,0,0,0, + 0,0,0,0,0,0,0,-467,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-26,0,0, + 0,-337,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-359,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-27, + 0,-469,0,0,0,0,0,-222,0,0, 0,0,0,0,0,0,0,0,0,0, + -229,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-28,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-29,0,0,0,0,0,0, + 0,0,0,0,-396,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-65,0,0,0,0, + 0,0,0,-153,0,0,0,0,0,-191, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-78,0,0, + 0,0,0,0,-215,0,0,0,0,0, + -196,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-79, + 0,0,0,0,0,0,0,0,-269,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-128,0,0,0,0,0,0,0,0, + -325,0,0,0,0,0,0,-285,0,0, + 0,0,-201,0,0,0,-390,0,0,-223, 0,0,0,0,0,0,0,0,0,0, - 0,0,-258,0,0,0,0,0,-136,0, + 0,0,-310,0,0,0,0,0,0,0, + -332,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-509,-517,0,0,0,0,-209,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-338, + 0,0,0,0,0,0,0,-375,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-251,0,0,0,0,0, - 0,0,0,0,0,0,0,-446,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-377,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-21,0,0,0, + 0,0,0,0,0,0,-463,0,0,0, + 0,0,0,0,0,-482,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-321, + 0,0,-353,0,0,0,0,0,0,-216, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-259, - -325,0,0,0,0,0,0,0,0,0, - 0,0,-318,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-358, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-476,0,0,0, - 0,0,0,0,0,0,0,0,-466,0, + 0,0,0,0,-263,0,0,0,0,0, + 0,0,-351,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-44, + -71,0,-400,0,0,0,0,0,-392,0, 0,0,0,0,0,0,0,0,0,0, - -390,0,0,0,0,-335,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -444,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-269,0,0, + 0,0,0,-47,0,0,0,0,0,0, + 0,-48,-210,-401,0,0,0,0,0,0, + 0,0,0,-402,0,0,0,0,0,0, + 0,0,0,-450,0,0,0,0,0,0, + 0,-493,0,0,-510,0,0,0,-518,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-221,0,0,0,0,0, - 0,0,-440,0,0,0,0,0,0,0, - -359,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-222,0,0,0,0,0, - 0,0,0,-191,0,0,0,0,0,0, + 0,0,0,0,0,0,-294,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-196,0,0,0,-201,0, + 0,0,0,0,0,0,0,0,-494,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-285,0,0,0,0,0,-310,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-332,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-338,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-375,0,0,0,0, - 0,-377,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-462,0,0,0,0,0,-481,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-263, - 0,0,0,0,0,0,0,0,-353,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-328,0,0,0, - 0,0,0,0,0,-351,0,0,0,0, - 0,0,0,0,0,-44,0,-71,-392,0, - 0,0,0,0,-400,0,-443,0,0,0, - 0,0,0,-46,0,0,0,0,0,0, - 0,0,0,0,0,0,-47,0,-48,0, - 0,0,0,0,0,0,0,-210,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-401,-402,0,0,0, - 0,-449,0,0,0,0,0,0,-223,0, - -294,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-493,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0 + 0,0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -547,538 +557,553 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface BaseAction { public final static char baseAction[] = { - 172,4,193,194,195,136,80,33,65,39, - 196,196,197,197,198,198,15,15,15,15, - 15,15,15,15,16,16,16,14,10,10, - 8,8,8,8,8,1,66,66,5,5, - 11,11,11,11,47,47,137,137,138,62, - 62,45,45,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17, - 17,17,17,139,139,139,18,18,18,18, - 18,18,18,18,18,18,18,18,18,19, - 19,176,173,173,174,174,177,141,141,178, - 178,175,175,142,140,140,20,20,21,21, - 22,22,22,24,24,24,24,25,25,25, - 26,26,26,27,27,27,27,27,29,29, - 29,30,30,32,32,34,34,35,35,36, - 36,37,37,41,41,40,40,40,40,40, - 40,40,40,40,40,40,40,40,38,38, - 28,143,143,103,103,106,106,98,199,199, - 71,71,71,71,71,71,71,71,71,72, - 72,72,73,73,57,57,179,179,74,74, - 74,117,117,75,75,75,75,76,76,76, - 76,76,77,81,81,81,81,81,81,81, - 51,51,51,51,51,108,108,109,109,50, - 23,23,23,23,23,46,46,93,93,93, - 93,93,150,150,145,145,145,145,145,146, + 173,5,137,81,81,34,34,66,66,40, + 40,194,194,195,195,196,196,1,1,16, + 16,16,16,16,16,16,16,17,17,17, + 15,11,11,9,9,9,9,9,2,67, + 67,6,6,12,12,12,12,48,48,138, + 138,139,63,63,46,46,18,18,18,18, + 18,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18,18,140,140,140,19, + 19,19,19,19,19,19,19,19,19,19, + 19,19,20,20,177,174,174,175,175,178, + 142,142,179,179,176,176,143,141,141,21, + 21,22,22,23,23,23,25,25,25,25, + 26,26,26,27,27,27,28,28,28,28, + 28,30,30,30,31,31,33,33,35,35, + 36,36,37,37,38,38,42,42,41,41, + 41,41,41,41,41,41,41,41,41,41, + 41,39,39,29,144,144,104,104,107,107, + 99,197,197,72,72,72,72,72,72,72, + 72,72,73,73,73,74,74,58,58,180, + 180,75,75,75,118,118,76,76,76,76, + 77,77,77,77,77,78,82,82,82,82, + 82,82,82,52,52,52,52,52,109,109, + 110,110,51,24,24,24,24,24,47,47, + 94,94,94,94,94,151,151,146,146,146, 146,146,147,147,147,148,148,148,149,149, - 149,94,94,94,94,94,95,95,95,87, - 12,13,13,13,13,13,13,13,13,13, - 13,13,82,82,82,121,121,121,121,121, - 119,119,119,88,120,120,152,152,151,151, - 123,123,124,43,43,42,86,86,89,89, - 91,92,90,44,53,49,153,153,54,52, - 85,85,154,154,144,144,125,125,79,79, - 155,155,63,63,63,59,59,58,64,64, - 69,69,56,56,56,96,96,105,104,104, - 61,61,60,60,55,55,48,107,107,107, - 99,99,99,100,101,101,101,102,102,110, - 110,110,112,112,111,111,200,200,97,97, - 181,181,181,181,181,127,67,67,157,180, - 180,128,128,128,128,182,182,31,31,118, - 129,129,129,129,201,201,113,113,122,122, - 122,159,160,160,160,160,160,160,160,160, - 160,185,185,183,183,184,184,161,161,161, - 161,162,186,115,114,114,187,187,163,163, - 131,131,130,130,130,202,202,9,188,188, - 189,164,156,156,165,165,166,167,167,6, - 6,7,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,68,70,70,170,170,132, - 132,133,133,133,133,133,133,2,3,171, - 171,168,168,134,134,134,83,84,78,158, - 158,116,116,190,190,190,135,135,126,126, - 191,191,172,172,1410,1720,1713,1201,3529,2899, - 31,1274,28,32,27,29,1833,260,26,24, - 53,1377,108,77,78,110,1419,56,1460,1445, - 1495,1461,3091,1544,1503,272,1587,1609,1545,1594, - 1623,145,2889,3357,161,146,1450,2125,1154,33, - 1201,4595,3588,31,1274,28,32,60,29,1774, - 2751,3309,1154,33,1201,229,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,3323,1885,275,69,1154,33, - 1201,274,273,31,1274,40,32,232,227,228, - 3309,1720,1713,1201,1943,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,85,239,242,245,248,2767,2109,448,2606, - 396,34,4706,1797,499,1154,33,1201,63,4002, - 31,1274,28,32,27,29,837,676,506,2950, - 2813,3097,3101,3227,4262,2272,1154,33,1201,2324, - 2924,31,1274,28,32,2562,29,1118,260,26, - 24,53,1377,108,77,78,110,1419,346,1460, - 1445,1495,1461,1605,1544,1503,64,1587,3282,1545, - 1594,1623,145,3532,418,513,146,3102,69,1154, - 33,1201,2990,2678,31,1274,1663,32,1774,282, - 514,2272,1154,33,1201,2324,2924,31,1274,28, - 32,2562,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,346,1460,1445,1495,1461,336, - 1544,1503,3123,1587,1553,1545,1594,1623,145,67, - 587,513,146,685,585,1670,43,1201,185,2678, - 42,1274,3309,1154,33,1201,514,2924,31,1274, - 28,32,27,29,1118,260,26,24,53,1377, - 108,77,78,110,1419,56,1460,1445,1967,509, - 3441,1102,441,3080,3098,2651,1154,33,1201,2324, - 2924,31,1274,28,32,2562,29,1118,260,26, - 24,53,1377,108,77,78,110,1419,346,1460, - 1445,1495,1461,2554,1544,1503,2581,1587,1473,1545, - 1594,1623,145,3282,843,513,146,1774,508,2744, - 1201,2034,90,2678,104,509,1774,3049,2928,1201, - 514,2693,1154,33,1201,2876,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,994,1460,1445,1495,1461,2668, - 1544,1503,2581,1587,335,1545,1594,1623,145,1689, - 2823,381,146,3309,1154,33,1201,2060,2924,31, - 1274,28,32,27,29,1118,260,26,24,53, - 1377,108,77,78,110,1419,384,1460,1445,1495, - 1461,617,1544,2284,713,2765,1154,33,1201,510, - 2924,31,1274,28,32,27,29,1118,260,26, - 24,53,1377,108,77,78,110,1419,56,1460, - 1445,1495,1461,3796,1544,1503,1093,1587,3493,1545, - 1594,1623,145,3879,2225,381,146,413,1154,33, - 1201,2886,4002,31,1274,28,32,62,29,385, - 67,1901,3077,280,741,1016,1812,1154,33,1201, - 382,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,110,1419,158, - 1460,1445,1495,1461,3307,1544,1503,92,1587,165, - 1545,1594,1623,145,2990,355,161,146,1774,508, - 277,1201,1205,2773,44,2741,2327,1154,33,1201, - 356,3588,31,1274,28,32,59,29,2112,1812, - 1154,33,1201,386,2924,31,1274,28,32,27, - 29,1118,260,26,24,53,1377,108,77,78, - 110,1419,56,1460,1445,1495,1461,4649,1544,1503, - 847,1587,2937,1545,1594,1623,145,3278,761,375, - 146,1812,1154,33,1201,1202,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,2322,1460,1445,1495,1461,532, - 1544,1503,442,1587,3087,1545,1594,1623,145,676, - 3493,375,146,1812,1154,33,1201,918,2924,31, - 1274,28,32,27,29,1118,260,26,24,53, - 1377,108,77,78,110,1419,1473,1460,1445,1495, - 1461,3282,1544,1503,89,1587,104,1545,1594,1623, - 145,3088,56,375,146,63,374,4712,2561,3029, - 1154,33,1201,2879,2924,31,1274,28,32,27, - 29,1118,260,26,24,53,1377,108,77,78, - 110,1419,3531,1460,1445,1495,1461,1054,1544,1503, - 2898,1587,335,1545,1594,1623,145,493,373,381, - 146,2609,1154,33,1201,918,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,3090,1460,1445,1495,1461,617, - 1544,1503,4599,1587,2917,1545,1594,1623,145,3514, - 371,144,146,1812,1154,33,1201,3139,2924,31, - 1274,28,32,27,29,1118,260,26,24,53, - 1377,108,77,78,110,1419,2858,1460,1445,1495, - 1461,56,1544,1503,442,1587,4733,1545,1594,1623, - 145,287,2875,162,146,455,1519,379,1812,1154, - 33,1201,2843,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,3413,1460,1445,1495,1461,2837,1544,1503,492, - 1587,4628,1545,1594,1623,145,3139,2822,157,146, - 1812,1154,33,1201,2946,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,110,1419,3413,1460,1445,1495,1461,617,1544, - 1503,3399,1587,519,1545,1594,1623,145,1403,2033, - 156,146,1812,1154,33,1201,389,2924,31,1274, - 28,32,27,29,1118,260,26,24,53,1377, - 108,77,78,110,1419,916,1460,1445,1495,1461, - 404,1544,1503,451,1587,1539,1545,1594,1623,145, - 583,2872,155,146,1812,1154,33,1201,284,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,110,1419,328,1460,1445, - 1495,1461,519,1544,1503,2733,1587,774,1545,1594, - 1623,145,3071,142,154,146,1812,1154,33,1201, - 2876,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,110,1419,427, - 1460,1445,1495,1461,1665,1544,1503,1102,1587,3147, - 1545,1594,1623,145,849,317,153,146,1812,1154, - 33,1201,3083,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,329,1460,1445,1495,1461,728,1544,1503,3531, - 1587,56,1545,1594,1623,145,4739,228,152,146, - 1812,1154,33,1201,572,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,110,1419,3413,1460,1445,1495,1461,617,1544, - 1503,3411,1587,1518,1545,1594,1623,145,1034,1081, - 151,146,1812,1154,33,1201,522,2924,31,1274, - 28,32,27,29,1118,260,26,24,53,1377, - 108,77,78,110,1419,520,1460,1445,1495,1461, - 402,1544,1503,847,1587,3445,1545,1594,1623,145, - 3091,400,150,146,1812,1154,33,1201,285,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,110,1419,3531,1460,1445, - 1495,1461,406,1544,1503,847,1587,1546,1545,1594, - 1623,145,486,1472,149,146,1812,1154,33,1201, - 1545,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,110,1419,3413, - 1460,1445,1495,1461,305,1544,1503,2899,1587,3010, - 1545,1594,1623,145,521,3075,148,146,1812,1154, - 33,1201,3417,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,520,1460,1445,1495,1461,1473,1544,1503,918, - 1587,3282,1545,1594,1623,145,3085,3392,147,146, - 3156,1154,33,1201,302,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,110,1419,861,1460,1445,1495,1461,1519,1544, - 1503,3393,1587,2332,1545,1594,2673,167,1812,1154, - 33,1201,1866,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,4289,1460,1445,1495,1461,1799,1544,1503,454, - 1587,3282,1545,1594,1623,145,390,424,142,146, - 331,413,1154,33,1201,669,4002,31,1274,28, - 32,61,29,2944,3195,1154,33,1201,2763,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,110,1419,755,1460,1445, - 1495,1461,1866,1544,1503,918,1587,96,1545,1594, - 1623,145,2738,2747,192,146,3309,1154,33,1201, - 2883,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,110,1419,617, - 1460,1445,1495,1461,1519,1544,1503,2763,1587,2864, - 1545,1594,2673,167,3309,1154,33,1201,847,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,110,1419,25,1460,1445, - 1495,1461,830,1544,1503,4319,1587,98,1545,1594, - 2673,167,69,1154,33,1201,2869,182,31,1274, - 1705,32,1774,1831,388,1201,2516,508,277,1201, - 3309,1154,33,1201,291,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,110,1419,34,1460,1445,1495,1461,1519,1544, - 1503,2887,1587,2096,1545,1594,2673,167,3309,1154, - 33,1201,2929,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,72,1460,1445,1495,1461,830,1544,1503,1726, - 1587,3417,1545,1594,2673,167,332,338,2516,508, - 2913,1201,1774,508,281,1201,1774,1831,388,1201, - 1774,508,279,1201,3309,1154,33,1201,420,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,110,1419,428,1460,1445, - 1495,1461,1519,1544,1503,675,1587,2096,1545,1594, - 2673,167,3348,1154,33,1201,419,2924,31,1274, - 28,32,27,29,1118,260,26,24,53,1377, - 108,77,78,110,1419,71,1460,1445,1495,1461, - 2123,1544,1503,3389,1587,1391,1545,1594,2673,167, - 337,338,1774,508,2964,1201,2875,847,2877,314, - 1774,1831,388,1201,3389,391,424,3417,3309,1154, - 33,1201,422,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,447,1460,1445,1495,1461,198,1544,1503,3413, - 1587,2182,1545,2424,1519,1016,3309,1154,33,1201, - 3385,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,110,1419,158, - 1460,1445,1495,1461,658,1544,1503,56,1587,2677, - 2350,3309,1154,33,1201,3417,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,310,1460,1445,1495,1461,358, - 1544,1503,3531,2209,3387,1831,388,1201,528,2834, - 1722,393,424,3389,1786,317,234,260,3077,278, - 357,2606,396,1774,1831,388,1201,2606,396,528, - 2329,3309,1154,33,1201,272,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,429,1460,1445,1495,1461,378, - 2195,3309,1154,33,1201,229,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,2120,1917,275,920,295,392, - 424,274,273,920,295,1519,3000,232,227,228, - 3309,1154,33,1201,1619,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,86,239,242,245,248,2767,2748,88,293, - 3289,294,2752,1797,3157,293,3469,294,1532,327, - 3440,3413,858,67,2760,1519,2970,2002,528,2950, - 2813,3097,3101,3227,4262,3309,1154,33,1201,376, - 2924,31,1274,28,32,27,29,1118,260,26, - 24,53,1377,108,77,78,110,1419,55,1460, - 1445,1495,2206,3309,1154,33,1201,95,2924,31, - 1274,28,32,27,29,1118,260,26,24,53, - 1377,108,77,78,110,1419,301,1460,1445,1495, - 2208,3309,1154,33,1201,2471,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,3412,1460,1445,1969,3309,1154, - 33,1201,2269,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,1468,1460,1445,2016,3309,1154,33,1201,830, - 2924,31,1274,28,32,27,29,1118,260,26, - 24,53,1377,108,77,78,110,1419,3081,1460, - 1445,2061,2044,1154,33,1201,2965,4622,31,1274, - 28,32,342,29,3309,1154,33,1201,847,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,110,1419,438,1460,2099, - 2096,2755,2227,67,3396,2837,1016,3528,286,2875, - 4628,2316,1831,388,1201,67,3398,197,3414,1762, - 323,1502,325,2224,3879,318,1418,918,2759,1217, - 158,354,1186,2101,2932,3142,1403,2882,2324,2324, - 2416,2897,272,334,338,1684,1154,33,1201,3667, - 4622,31,1274,28,32,342,29,2612,2612,3079, - 278,347,1001,986,352,3309,1154,33,1201,2885, - 2924,31,1274,28,32,27,29,1118,260,26, - 24,53,1377,108,77,78,110,1419,3511,1460, - 2190,1279,2324,276,2978,46,2741,354,274,273, - 1519,2982,67,323,1502,325,2535,54,318,1418, - 3413,225,2749,918,354,2111,3544,2865,2651,2679, - 1201,918,4574,3072,3137,2202,2981,347,1001,986, - 352,500,363,353,3418,345,774,213,210,203, - 211,212,214,368,347,1001,986,352,51,830, - 67,2885,2750,3519,3182,204,205,2324,2867,293, - 52,294,1671,833,876,1519,498,499,426,215, - 847,206,207,208,209,300,225,296,297,298, - 299,354,1341,1519,1700,1712,388,1201,383,2959, - 448,3458,2945,330,4706,589,3721,1739,91,3418, - 1519,99,213,210,203,211,212,214,3531,201, - 2096,347,1001,986,352,51,3059,3426,3545,2750, - 204,205,2324,2867,229,3486,293,52,294,1671, - 2665,2666,3488,732,215,3489,206,207,208,209, - 1519,225,296,297,298,299,2661,3490,1454,1769, - 1712,388,1201,3276,338,67,241,227,228,1062, - 231,3721,2249,2998,3418,378,3475,213,210,203, - 211,212,214,70,1732,1712,388,1201,67,918, - 51,2471,2217,3620,3150,204,205,2324,2867,1519, - 1519,293,52,294,1671,3527,1213,1519,1519,215, - 1475,206,207,208,209,51,225,296,297,298, - 299,2661,236,260,3236,1473,293,52,294,1671, - 3282,885,69,68,2137,493,3721,2461,1016,3418, - 67,3204,213,210,203,211,212,214,2319,1154, - 33,1201,2965,4622,31,1274,28,32,342,29, - 204,205,158,2867,445,3080,3098,1519,1473,100, - 2918,229,1110,3282,215,3314,206,207,208,209, - 3507,335,296,297,298,299,1508,1154,33,1201, - 3068,4622,31,1274,28,32,342,29,830,2925, - 58,3721,2760,237,227,228,323,1502,325,3416, - 3477,318,1418,2295,286,2875,67,354,67,67, - 2931,3390,2589,2799,335,403,847,523,1691,3010, - 33,1201,3008,4685,31,1274,28,32,342,29, - 3568,847,1613,2882,320,2934,325,347,1001,986, - 352,920,1712,388,1201,524,1519,846,3237,2096, - 847,1548,87,3431,4551,199,534,988,155,1154, - 33,1201,3008,4622,31,1274,28,32,342,29, - 219,3240,51,3530,335,225,323,1502,325,57, - 158,318,1418,293,52,294,1671,1519,3150,3512, - 1978,183,3297,338,847,67,567,538,3356,3198, - 1748,213,210,202,211,212,214,3536,229,172, - 1519,1,229,3241,4486,534,323,1502,325,3243, - 326,318,1418,186,170,171,173,174,175,176, - 177,3103,2746,309,225,3567,2324,3137,3569,158, - 244,227,228,103,247,227,228,67,2746,1978, - 183,1016,2324,3244,67,2612,3247,3356,3038,3248, - 213,210,202,211,212,214,867,3251,172,67, - 67,2612,2734,4769,1160,2815,184,2806,2744,415, - 3020,3564,187,170,171,173,174,175,176,177, - 1499,1154,33,1201,3008,4685,31,1274,28,32, - 342,29,1621,3309,1154,33,1201,1519,2924,31, - 1274,28,32,27,29,1118,260,26,24,53, - 1377,108,77,78,110,1932,67,3572,847,362, - 2193,3161,920,1712,388,1201,589,67,229,847, - 3302,1016,2948,2776,2801,362,335,67,323,1502, - 325,2214,67,318,1418,3391,3438,2740,3257,2776, - 2801,2324,67,51,67,3653,4815,4313,1297,2155, - 250,227,228,3613,293,52,294,1671,308,2765, - 346,3571,3309,1154,33,1201,4486,2924,31,1274, - 28,32,27,29,1118,260,26,24,53,1377, - 108,77,78,110,1933,2330,67,3614,3069,3255, - 4358,3309,1154,33,1201,312,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1940,3081,3573,2314,1831,388,1201, - 2052,1154,33,1201,3414,4685,31,1274,28,32, - 342,29,3570,1519,67,3596,874,3589,2333,1224, - 1016,2324,3628,534,3618,1795,2324,272,241,1154, - 33,1201,3240,4622,31,1274,28,32,342,29, - 346,847,346,3256,163,225,446,158,830,3664, - 3666,920,1712,388,1201,3617,336,191,323,1502, - 325,5311,3581,319,1418,3673,3611,4469,3418,354, - 5311,213,210,203,211,212,214,1699,2832,847, - 4314,3418,51,274,273,2324,320,2934,325,204, - 205,2905,2867,293,52,294,1671,5311,2338,349, - 1001,986,352,494,225,206,207,208,209,2096, - 526,296,297,298,299,5311,67,1856,304,2254, - 2738,1016,1946,5311,67,67,1016,3418,1376,2803, - 213,210,203,211,212,214,3559,5311,1660,5311, - 173,1519,2324,4760,534,158,5311,5311,204,205, - 158,2867,3404,338,2736,3066,200,847,2324,3282, - 165,225,516,225,206,207,208,209,158,1519, - 296,297,298,299,3144,5311,67,2612,1978,183, - 2868,259,5311,3103,3026,534,3356,407,5311,213, - 210,202,211,212,214,5311,194,172,2134,1712, - 388,1201,3780,1519,225,1411,408,3652,2867,158, - 335,3402,170,171,173,174,175,176,177,1978, - 183,3646,67,5311,5311,2324,2933,3356,3431,51, - 213,210,202,211,212,214,3821,5311,172,5311, - 293,52,294,1671,225,1342,1519,5311,5311,5311, - 4599,362,179,170,171,173,174,175,176,177, - 3386,1519,1519,1519,2833,2776,2801,3418,2841,5311, - 213,210,203,211,212,214,3654,2736,5311,3862, - 2324,2324,3282,3597,1519,1519,976,2988,204,205, - 534,2867,5311,5311,1579,1697,380,409,411,225, - 2612,1519,311,5311,206,207,208,209,5311,225, - 296,297,298,299,158,67,5311,3547,3944,881, - 5311,1361,3418,4518,165,213,210,203,211,212, - 214,3537,3356,335,3985,2324,1011,5311,5311,5311, - 5311,2339,5311,204,205,1016,2867,2805,1038,67, - 5311,2324,534,2324,225,5311,5311,517,5311,206, - 207,208,209,5311,5311,296,297,298,299,158, - 346,346,346,3390,362,5311,158,3418,5311,2890, - 213,210,203,211,212,214,1964,2833,2776,2801, - 345,5311,3100,5311,534,2458,2678,2678,204,205, - 5311,2867,5311,1828,1747,5311,920,1712,388,1201, - 5311,5311,216,225,206,207,208,209,158,5311, - 296,297,298,299,5311,5311,5311,5311,1978,183, - 5311,431,5311,5311,5311,534,3356,51,5311,213, - 210,202,211,212,214,5311,5311,172,293,52, - 294,1671,5311,2709,225,5311,5311,5311,5311,158, - 5311,190,170,171,173,174,175,176,177,1978, - 183,874,517,5311,5311,1016,534,3356,5311,5311, - 213,210,202,211,212,214,5311,5311,172,920, - 1712,388,1201,5311,5311,225,5311,5311,5311,163, - 158,5311,3445,170,171,173,174,175,176,177, - 1978,183,5311,603,5311,5311,451,534,3356,5311, - 51,213,210,202,211,212,214,5311,5311,172, - 5311,293,52,294,48,437,225,5311,5311,5311, - 5311,158,5311,193,170,171,173,174,175,176, - 177,1978,183,5311,689,5311,5311,5311,534,3356, - 5311,5311,213,210,202,211,212,214,5311,5311, - 172,5311,5311,5311,2465,5311,5311,225,5311,5311, - 5311,5311,158,5311,189,170,171,173,174,175, - 176,177,1978,183,5311,775,5311,5311,5311,534, - 3356,5311,5311,213,210,202,211,212,214,5311, - 5311,172,920,1712,388,1201,5311,5311,225,5311, - 5311,5311,5311,158,5311,196,170,171,173,174, - 175,176,177,1978,183,5311,5311,5311,5311,5311, - 5311,3356,5311,51,213,210,202,211,212,214, - 5311,5311,172,5311,293,52,294,1671,5311,885, - 5311,5311,5311,5311,5311,5311,195,170,171,173, - 174,175,176,177,3309,1154,33,1201,5311,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,84,3309,1154,33,1201, - 5311,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,83,3309,1154, - 33,1201,5311,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,82, - 3309,1154,33,1201,5311,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,81,3309,1154,33,1201,5311,2924,31,1274, - 28,32,27,29,1118,260,26,24,53,1377, - 108,77,78,80,3309,1154,33,1201,5311,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,79,3093,1154,33,1201, - 5311,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,106,3309,1154, - 33,1201,5311,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,112, - 3309,1154,33,1201,5311,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,111,3449,1831,388,1201,5311,2834,5311,5311, - 5311,5311,5311,5311,235,260,5311,5311,5311,5311, - 5311,5311,5311,874,5311,5311,5311,1016,5311,3309, - 1154,33,1201,272,2924,31,1274,28,32,27, - 29,1118,260,26,24,53,1377,108,77,78, - 109,163,5311,1991,2064,5311,5311,1016,1016,3309, - 1154,33,1201,229,2924,31,1274,28,32,27, - 29,1118,260,26,24,53,1377,108,77,78, - 107,158,158,5311,275,2316,1831,388,1201,274, - 273,165,165,5311,5311,233,227,228,1762,1154, - 33,1201,3008,4622,31,1274,28,32,342,29, - 5311,5311,5311,5311,5311,5311,272,5311,5311,5311, - 240,243,246,249,2767,5311,3007,3270,1154,33, - 1201,1797,2924,31,1274,28,32,27,29,1118, - 260,26,24,53,1377,87,77,78,5311,5311, - 874,874,5311,5311,1016,1016,323,1502,325,3675, - 3691,318,1418,2316,1831,388,1201,75,5311,5311, - 5311,5311,274,273,5311,5311,5311,2155,163,163, - 2037,3010,33,1201,3008,4622,31,1274,28,32, - 342,29,5311,5311,272,5311,5311,327,1154,33, - 1201,3008,4622,31,1274,28,32,342,29,155, - 1154,33,1201,3008,4622,31,1274,28,32,342, - 29,874,5311,312,5311,1016,935,1154,33,1201, - 5311,4685,31,1274,28,32,342,29,323,1502, - 325,5311,3081,318,1418,343,5311,5311,5311,163, - 274,273,3414,3096,3160,323,1502,325,1737,538, - 318,1418,2324,4760,5311,5311,5311,323,1502,325, - 5311,5311,318,1418,5311,2384,2155,5311,5311,1016, - 5311,225,336,1286,323,1502,325,534,3439,321, - 1418,935,1154,33,1201,5311,4685,31,1274,28, - 32,342,29,158,3026,2429,346,407,5311,1016, - 5311,158,5311,2939,2134,1712,388,1201,5311,5311, - 5311,191,313,5311,3403,1411,408,5311,2867,5311, - 5311,4469,5311,158,5311,1700,1712,388,1201,2117, - 5311,416,3020,2940,3282,51,5311,336,5311,323, - 1502,325,5311,5311,319,1418,293,52,294,1671, - 5311,49,1700,1712,388,1201,51,5311,1700,1712, - 388,1201,5311,5311,5311,5311,1012,293,52,294, - 1671,5311,49,5311,5311,5311,5311,5311,2841,2134, - 1712,388,1201,51,5311,336,5311,738,5311,51, - 3593,5311,5311,5311,293,52,294,1671,354,1552, - 293,52,294,1671,5311,49,5311,409,412,5311, - 51,5311,5311,5311,4423,1700,1712,388,1201,5311, - 2116,293,52,294,1671,5311,49,5311,349,1001, - 986,352,5311,5311,5311,5311,1700,1712,388,1201, - 5311,2012,1700,1712,388,1201,51,5311,5311,5311, - 5311,5311,5311,5311,5311,5311,5311,293,52,294, - 1671,5311,1893,3153,1712,388,1201,51,5311,3259, - 1712,388,1201,51,5311,5311,5311,4423,293,52, - 294,1671,5311,49,293,52,294,1671,5311,49, - 920,1712,388,1201,51,5311,5311,5311,2210,2932, - 51,5311,5311,2324,2343,293,52,294,1671,5311, - 49,293,52,294,1671,5311,49,2316,1831,388, - 1201,51,2612,5311,5311,2407,2316,1831,388,1201, - 5311,2413,293,52,294,1671,1100,1510,1162,3534, - 534,5311,534,2324,5311,2939,5311,1348,272,2324, - 5311,534,5311,5311,67,5311,5311,272,2324,346, - 5311,346,346,5311,158,5311,158,67,2612,67, - 346,2324,527,2324,2152,158,1964,346,67,5311, - 5311,5311,2324,5311,2678,191,2678,2678,5311,5311, - 346,2058,346,2415,530,4469,500,5311,5311,73, - 5311,346,2678,5311,274,273,67,67,74,1749, - 2324,2324,67,274,273,2678,2324,2678,5311,2474, - 5311,2519,1755,1016,1796,1016,2678,5311,5311,346, - 346,497,499,2850,5311,346,5311,2564,5311,5311, - 5311,1016,500,5311,5311,5311,5311,158,5311,158, - 5311,5311,5311,5311,2678,2678,5311,2947,5311,2771, - 2678,504,502,5311,3636,158,5311,531,5311,3039, - 5311,5311,5311,5311,5311,3674,5311,497,499,5311, - 5311,5311,5311,5311,5311,5311,5311,5311,5311,5311, - 5311,5311,5311,5311,5311,5311,5311,5311,5311,5311, - 5311,5311,5311,5311,5311,5311,5311,5311,5311,5311, - 5311,5311,5311,5311,5311,3358,5311,5311,5311,5311, - 5311,5311,5311,5311,5311,5311,5311,5311,5311,5311, - 3467,5311,0,5346,39,0,508,30,0,449, - 1010,0,5346,38,0,2558,128,0,1,439, - 0,1823,39,0,453,1255,0,452,1789,0, - 508,41,0,3197,93,0,35,303,0,387, - 295,0,33,388,0,30,387,0,508,30, - 387,0,2022,39,0,1,557,0,1,5582, - 0,1,5581,0,1,5580,0,1,5579,0, - 1,5578,0,1,5577,0,1,5576,0,1, - 5575,0,1,5574,0,1,5573,0,1,5572, - 0,1,5346,39,0,1,784,0,1707,39, - 0,39,2654,0,5542,238,0,5541,238,0, - 5652,238,0,5651,238,0,5569,238,0,5568, - 238,0,5567,238,0,5566,238,0,5565,238, - 0,5564,238,0,5563,238,0,5562,238,0, - 5582,238,0,5581,238,0,5580,238,0,5579, - 238,0,5578,238,0,5577,238,0,5576,238, - 0,5575,238,0,5574,238,0,5573,238,0, - 5572,238,0,1823,39,238,0,5349,238,0, - 35,283,259,0,508,387,0,1707,50,0, - 3406,234,0,45,5347,0,45,37,0,2558, - 130,0,2558,129,0,27,515,0,5644,440, - 0,2463,440,0,1,5349,0,1,39,0, - 49,37,0,1,94,0,1,5349,226,0, - 1,39,226,0,5346,37,0,5346,5,37, - 0,5346,36,0,5347,47,0,37,47,0, - 5320,405,0,1,3108,0,1,3737,0,1, - 2022,0,3145,322,0,5644,97,0,2463,97, - 0,1,5644,0,1,2463,0,4283,279,0, - 1,659,0,1,2341,0,496,3471,0,1, - 226,0,1,226,3188,0,5320,226,0,159, - 178,0,295,3612,0,226,166,0,188,3903, - 0 + 149,150,150,150,95,95,95,95,95,96, + 96,96,88,13,14,14,14,14,14,14, + 14,14,14,14,14,83,83,83,122,122, + 122,122,122,120,120,120,89,121,121,153, + 153,152,152,124,124,125,44,44,43,87, + 87,90,90,92,93,91,45,54,50,154, + 154,55,53,86,86,155,155,145,145,126, + 126,80,80,156,156,64,64,64,60,60, + 59,65,65,70,70,57,57,57,97,97, + 106,105,105,62,62,61,61,56,56,49, + 108,108,108,100,100,100,101,102,102,102, + 103,103,111,111,111,113,113,112,112,198, + 198,98,98,182,182,182,182,182,128,68, + 68,158,181,181,129,129,129,129,183,183, + 32,32,119,130,130,130,130,114,114,123, + 123,123,160,161,161,161,161,161,161,161, + 161,161,186,186,184,184,185,185,162,162, + 162,162,163,187,116,115,115,188,188,164, + 164,132,132,131,131,131,199,199,10,189, + 189,190,165,157,157,166,166,167,168,168, + 7,7,8,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,170,69,71,71,171,171, + 133,133,134,134,134,134,134,134,3,4, + 172,172,169,169,135,135,135,84,85,79, + 159,159,117,117,191,191,191,136,136,127, + 127,192,192,173,173,1534,1854,1674,1639,951, + 2794,4038,34,1005,31,35,30,32,1889,263, + 29,27,56,1015,111,80,81,113,1042,1962, + 1091,1052,1145,1129,3188,1198,1165,275,1243,875, + 1200,1293,1297,148,493,2954,164,149,510,1899, + 38,882,36,951,3213,4594,34,1005,31,35, + 63,32,3509,38,882,36,951,232,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1042,3177,1899,278,2887, + 1755,2813,3820,277,276,3820,4621,3743,1608,235, + 230,231,3468,38,882,36,951,3164,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,90,80,81,242,245,248,251,3121,1530, + 3216,38,882,36,951,1848,4850,34,1005,31, + 35,30,32,339,953,507,338,533,159,628, + 1765,2952,3010,3159,3168,3818,3710,2413,38,882, + 36,951,2374,2471,34,1005,31,35,2673,32, + 783,263,29,27,56,1015,111,80,81,113, + 1042,349,1091,1052,1145,1129,616,1198,1165,67, + 1243,3649,1200,1293,1297,148,3374,2197,514,149, + 1953,38,882,36,951,2469,2384,34,1005,43, + 35,730,98,515,2413,38,882,36,951,2374, + 2471,34,1005,31,35,2673,32,783,263,29, + 27,56,1015,111,80,81,113,1042,349,1091, + 1052,1145,1129,67,1198,1165,3146,1243,687,1200, + 1293,1297,148,601,1884,514,149,188,70,38, + 449,1719,443,2384,4768,3509,38,882,36,951, + 515,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,113,1042,1144, + 1091,2108,510,2267,3646,3715,3258,2942,38,882, + 36,951,2374,2471,34,1005,31,35,2673,32, + 783,263,29,27,56,1015,111,80,81,113, + 1042,349,1091,1052,1145,1129,2664,1198,1165,2714, + 1243,510,1200,1293,1297,148,3623,3902,514,149, + 1030,38,1545,46,951,2887,2384,45,1005,510, + 3799,3820,3148,515,2752,38,882,36,951,358, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,113,1042,863,1091, + 1052,1145,1129,2876,1198,1165,2714,1243,67,1200, + 1293,1297,148,744,1748,384,149,3509,38,882, + 36,951,4079,2471,34,1005,31,35,30,32, + 783,263,29,27,56,1015,111,80,81,89, + 387,3151,1592,3601,442,3383,3384,2825,38,882, + 36,951,511,2471,34,1005,31,35,30,32, + 783,263,29,27,56,1015,111,80,81,113, + 1042,3159,1091,1052,1145,1129,619,1198,1165,494, + 1243,2134,1200,1293,1297,148,452,521,384,149, + 3168,38,882,36,951,3660,4850,34,1005,31, + 35,65,32,388,3849,3079,2794,99,3102,38, + 882,36,951,385,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,59,1091,1052,1145,1129,3775,1198,1165, + 3737,1243,237,1200,1293,1297,148,335,341,164, + 149,1905,3102,38,882,36,951,3918,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1042,389,1091,1052,1145, + 1129,158,1198,1165,93,1243,107,1200,1293,1297, + 148,688,3206,378,149,3102,38,882,36,951, + 2794,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,113,1042,3219, + 1091,1052,1145,1129,2195,1198,1165,963,1243,1018, + 1200,1293,1297,148,28,335,378,149,2259,38, + 882,36,951,859,4594,34,1005,31,35,62, + 32,2794,628,166,520,587,3102,38,882,36, + 951,439,2471,34,1005,31,35,30,32,783, + 263,29,27,56,1015,111,80,81,113,1042, + 377,1091,1052,1145,1129,75,1198,1165,589,1243, + 677,1200,1293,1297,148,863,880,378,149,3027, + 38,882,36,951,2794,2471,34,1005,31,35, + 30,32,783,263,29,27,56,1015,111,80, + 81,113,1042,376,1091,1052,1145,1129,1249,1198, + 1165,863,1243,61,1200,1293,1297,148,74,2794, + 384,149,393,425,2898,38,882,36,951,3743, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,113,1042,771,1091, + 1052,1145,1129,59,1198,1165,456,1243,66,1200, + 1293,1297,148,422,374,147,149,1805,3102,38, + 882,36,951,1721,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,455,1091,1052,1145,1129,3170,1198,1165, + 95,1243,863,1200,1293,1297,148,863,382,165, + 149,3102,38,882,36,951,2794,2471,34,1005, + 31,35,30,32,783,263,29,27,56,1015, + 111,80,81,113,1042,67,1091,1052,1145,1129, + 952,1198,1165,359,1243,510,1200,1293,1297,148, + 91,4195,160,149,3102,38,882,36,951,2794, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,113,1042,3095,1091, + 1052,1145,1129,3767,1198,1165,2113,1243,57,1200, + 1293,1297,148,58,443,159,149,3102,38,882, + 36,951,1547,2471,34,1005,31,35,30,32, + 783,263,29,27,56,1015,111,80,81,113, + 1042,67,1091,1052,1145,1129,4541,1198,1165,699, + 1243,67,1200,1293,1297,148,1137,1272,158,149, + 3102,38,882,36,951,730,2471,34,1005,31, + 35,30,32,783,263,29,27,56,1015,111, + 80,81,113,1042,2884,1091,1052,1145,1129,2267, + 1198,1165,1820,1243,67,1200,1293,1297,148,2764, + 787,157,149,3102,38,882,36,951,2794,2471, + 34,1005,31,35,30,32,783,263,29,27, + 56,1015,111,80,81,113,1042,331,1091,1052, + 1145,1129,863,1198,1165,3719,1243,510,1200,1293, + 1297,148,356,4711,156,149,3102,38,882,36, + 951,1664,2471,34,1005,31,35,30,32,783, + 263,29,27,56,1015,111,80,81,113,1042, + 67,1091,1052,1145,1129,2366,1198,1165,1658,1243, + 67,1200,1293,1297,148,1898,3162,155,149,3102, + 38,882,36,951,2794,2471,34,1005,31,35, + 30,32,783,263,29,27,56,1015,111,80, + 81,113,1042,333,1091,1052,1145,1129,730,1198, + 1165,1798,1243,659,1200,1293,1297,148,94,1758, + 154,149,3102,38,882,36,951,3259,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1042,67,1091,1052,1145, + 1129,2340,1198,1165,1875,1243,3724,1200,1293,1297, + 148,2978,1880,153,149,3102,38,882,36,951, + 2794,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,113,1042,67, + 1091,1052,1145,1129,2794,1198,1165,332,1243,510, + 1200,1293,1297,148,1838,4793,152,149,3102,38, + 882,36,951,2794,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,67,1091,1052,1145,1129,3867,1198,1165, + 3294,1243,510,1200,1293,1297,148,953,4817,151, + 149,3102,38,882,36,951,2794,2471,34,1005, + 31,35,30,32,783,263,29,27,56,1015, + 111,80,81,113,1042,2189,1091,1052,1145,1129, + 405,1198,1165,2798,1243,510,1200,1293,1297,148, + 73,4826,150,149,2986,38,882,36,951,2794, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,113,1042,67,1091, + 1052,1145,1129,4077,1198,1165,2804,1243,83,1200, + 1293,2877,170,72,969,3102,38,882,36,951, + 2794,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,113,1042,1259, + 1091,1052,1145,1129,1259,1198,1165,3722,1243,984, + 1200,1293,1297,148,71,334,145,149,1208,246, + 688,38,1887,391,951,688,38,2961,3426,38, + 882,36,951,1542,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,37,1091,1052,1145,1129,3480,1198,1165, + 334,1243,381,1200,1293,1297,148,688,3762,195, + 149,3509,38,882,36,951,3622,2471,34,1005, + 31,35,30,32,783,263,29,27,56,1015, + 111,80,81,113,1042,3624,1091,1052,1145,1129, + 627,1198,1165,235,1243,323,1200,1293,2877,170, + 3509,38,882,36,951,411,2471,34,1005,31, + 35,30,32,783,263,29,27,56,1015,111, + 80,81,113,1042,2195,1091,1052,1145,1129,1018, + 1198,1165,392,1243,939,1200,1293,2877,170,3168, + 38,882,36,951,1579,4850,34,1005,31,35, + 64,32,379,166,1834,3509,38,882,36,951, + 294,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,113,1042,3601, + 1091,1052,1145,1129,2069,1198,1165,3151,1243,2378, + 1200,1293,2877,170,3509,38,882,36,951,2848, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,113,1042,999,1091, + 1052,1145,1129,1259,1198,1165,1741,1243,1389,1200, + 1293,2877,170,1953,38,882,36,951,1528,2794, + 34,1005,2491,35,688,38,509,2949,951,3509, + 38,882,36,951,421,2471,34,1005,31,35, + 30,32,783,263,29,27,56,1015,111,80, + 81,113,1042,70,1091,1052,1145,1129,2794,1198, + 1165,381,1243,2794,1200,1293,2877,170,3550,38, + 882,36,951,420,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,2754,1091,1052,1145,1129,61,1198,1165, + 92,1243,107,1200,1293,2877,170,1953,38,882, + 36,951,3620,2794,34,1005,2840,35,688,38, + 1676,1666,951,3509,38,882,36,951,423,2471, + 34,1005,31,35,30,32,783,263,29,27, + 56,1015,111,80,81,113,1042,60,1091,1052, + 1145,1129,403,1198,1165,953,1243,963,1200,2589, + 3422,3103,3509,38,882,36,951,3733,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1042,67,1091,1052,1145, + 1129,2989,1198,1165,863,1243,3193,2511,3509,38, + 882,36,951,3622,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,2123,1091,1052,1145,1129,730,1198,1165, + 963,2488,3509,38,882,36,951,2794,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1042,3212,1091,1052,1145, + 1129,2374,1198,2489,3591,1854,1887,391,951,287, + 3188,329,394,425,2802,102,3289,237,263,3018, + 2696,3226,4703,688,1854,1887,391,951,3303,38, + 397,3509,38,882,36,951,275,2471,34,1005, + 31,35,30,32,783,263,29,27,56,1015, + 111,80,81,113,1042,275,1091,1052,1145,1129, + 67,2128,67,3622,67,1018,232,1018,3239,2374, + 2817,1046,38,882,36,951,2794,4760,34,1005, + 31,35,345,32,357,396,425,278,349,1604, + 1547,3949,277,276,365,688,1596,298,235,230, + 231,3273,1596,1631,391,951,279,2168,2999,3023, + 106,277,276,2384,350,1303,819,355,336,675, + 1682,3164,348,242,245,248,251,3121,339,288, + 326,1647,328,54,1848,324,1467,730,296,3930, + 297,1936,3408,3622,296,55,297,1588,1502,674, + 2952,3010,3159,3168,3818,3710,3509,38,882,36, + 951,407,2471,34,1005,31,35,30,32,783, + 263,29,27,56,1015,111,80,81,113,1042, + 428,1091,1052,1145,2391,3509,38,882,36,951, + 778,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,113,1042,305, + 1091,1052,1145,2438,3509,38,882,36,951,1594, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,113,1042,1902,1091, + 1052,2024,3509,38,882,36,951,2465,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1042,3077,1091,1052,2034, + 3509,38,882,36,951,3222,2471,34,1005,31, + 35,30,32,783,263,29,27,56,1015,111, + 80,81,113,1042,3284,1091,1052,2044,3509,38, + 882,36,951,986,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,3768,1091,1052,2079,1890,38,882,36, + 951,4090,4678,34,1005,31,35,345,32,3509, + 38,882,36,951,3265,2471,34,1005,31,35, + 30,32,783,263,29,27,56,1015,111,80, + 81,113,1042,3180,1091,2116,688,38,1887,391, + 951,2199,38,882,36,951,4840,4678,34,1005, + 31,35,345,32,67,326,1647,328,67,4304, + 321,1467,67,4843,2820,295,357,1259,429,688, + 295,3509,38,1674,1639,951,3148,2471,34,1005, + 31,35,30,32,783,263,29,27,56,1015, + 111,80,81,88,2820,295,350,1303,819,355, + 326,1647,328,37,3134,321,1467,3276,38,281, + 3775,357,1691,1162,598,38,449,3098,38,283, + 4768,2347,2808,38,882,36,951,4090,4678,34, + 1005,31,35,345,32,688,38,509,280,951, + 3164,350,1303,819,355,3303,38,397,863,1518, + 3509,38,882,36,951,1826,2471,34,1005,31, + 35,30,32,783,263,29,27,56,1015,111, + 80,81,113,1042,3456,1940,3562,3200,371,419, + 308,326,1647,328,3391,3737,321,1467,289,3126, + 67,1821,357,290,3126,2885,511,1854,1887,391, + 951,2892,524,2180,38,3273,36,951,4492,4760, + 34,1005,31,35,345,32,2313,3133,289,3126, + 2794,3144,350,1303,819,355,2374,520,275,103, + 525,1789,38,882,36,951,4492,4760,34,1005, + 31,35,345,32,1905,349,2433,3133,2319,3337, + 67,3728,1760,1018,2971,3600,2374,3164,4615,3409, + 338,3594,326,1647,328,239,263,321,1467,3180, + 981,67,688,1596,298,228,4323,161,963,3050, + 446,3383,3384,2692,277,276,1937,1337,338,3212, + 326,1647,328,320,2374,321,1467,185,4575,76, + 2441,216,213,206,214,215,217,688,38,285, + 941,2812,361,2696,232,296,4055,297,2887,207, + 208,529,3107,3596,3820,2794,67,3753,2441,47, + 2901,4903,2374,218,1150,209,210,211,212,535, + 1195,299,300,301,302,2374,240,230,231,3164, + 3421,228,688,1854,1887,391,951,315,349,447, + 4120,2513,3627,161,2696,416,3321,688,1854,1887, + 391,951,232,1110,4575,338,3725,216,213,206, + 214,215,217,2384,275,3296,3763,365,2222,201, + 1016,452,3826,395,425,207,208,2374,3107,275, + 2920,2999,3023,67,244,230,231,3713,1047,218, + 438,209,210,211,212,4683,228,299,300,301, + 302,950,1596,2733,1494,951,428,4600,3227,38, + 509,280,951,3599,692,78,4120,3669,366,4575, + 277,276,216,213,206,214,215,217,3267,67, + 346,1336,4615,54,3986,277,276,3874,3089,1580, + 207,208,2374,3107,296,55,297,1588,1788,2228, + 1609,3098,38,281,218,2374,209,210,211,212, + 3823,228,299,300,301,302,3619,3752,774,1596, + 1631,391,951,3742,349,688,38,1887,391,951, + 3164,4120,3726,3621,4575,3668,3164,216,213,206, + 214,215,217,688,1596,1631,391,951,2794,564, + 54,232,3744,49,2901,207,208,448,3107,3326, + 232,296,55,297,1588,1461,2855,527,3433,218, + 200,209,210,211,212,54,204,299,300,301, + 302,2393,3839,247,230,231,296,55,297,1588, + 67,924,250,230,231,3692,4120,3851,3509,38, + 882,36,951,3270,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1983,3509,38,882,36,951,521,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1985,3509,38,882,36, + 951,3764,2471,34,1005,31,35,30,32,783, + 263,29,27,56,1015,111,80,81,113,1995, + 1707,38,882,36,951,1590,4760,34,1005,31, + 35,345,32,688,38,1887,391,951,3083,38, + 882,36,951,4492,4678,34,1005,31,35,345, + 32,1354,1882,2272,177,1720,4007,2366,1018,535, + 4103,3762,1018,3766,3767,430,3227,38,509,3186, + 951,688,38,509,284,951,2794,339,228,326, + 1647,328,161,161,322,1467,161,3774,3769,3776, + 357,3788,637,2957,186,1,2560,326,1647,328, + 535,3149,321,1467,216,213,205,214,215,217, + 4179,3164,175,688,38,509,282,951,2812,228, + 352,1303,819,355,161,357,189,173,174,176, + 177,178,179,180,2957,186,688,38,509,3222, + 951,3780,3149,3781,3785,216,213,205,214,215, + 217,202,3789,175,67,350,1303,819,355,2951, + 67,187,3791,1518,316,2810,1259,190,173,174, + 176,177,178,179,180,3509,38,882,36,951, + 3841,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,87,3509,38, + 882,36,951,3848,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 86,3617,67,67,523,3787,559,3027,3092,3509, + 38,882,36,951,3415,2471,34,1005,31,35, + 30,32,783,263,29,27,56,1015,111,80, + 81,85,3509,38,882,36,951,3817,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,84,3509,38,882,36,951, + 3737,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,83,3509,38, + 882,36,951,1387,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 82,3372,38,882,36,951,3819,2471,34,1005, + 31,35,30,32,783,263,29,27,56,1015, + 111,80,81,109,3509,38,882,36,951,3622, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,115,3509,38,882, + 36,951,3737,2471,34,1005,31,35,30,32, + 783,263,29,27,56,1015,111,80,81,114, + 3655,1854,1887,391,951,1400,3188,3344,3849,89, + 3303,38,397,238,263,3164,3622,360,688,1854, + 1887,391,951,3815,2178,313,529,3509,38,882, + 36,951,275,2471,34,1005,31,35,30,32, + 783,263,29,27,56,1015,111,80,81,112, + 275,1992,3824,3842,947,222,1018,3509,38,882, + 36,951,232,2471,34,1005,31,35,30,32, + 783,263,29,27,56,1015,111,80,81,110, + 161,3899,304,278,3850,3164,2374,2470,277,276, + 3431,203,1018,3681,236,230,231,67,2374,3855, + 3857,76,3157,2794,2794,228,277,276,1877,330, + 688,1596,1631,391,951,3860,161,228,529,243, + 246,249,252,3121,3810,4992,1776,5462,4575,3164, + 1848,216,213,206,214,215,217,4220,4261,1592, + 4575,3622,54,216,213,206,214,215,217,207, + 208,5462,3107,296,55,297,1588,1592,2986,3164, + 5462,207,208,495,3107,209,210,211,212,312, + 232,299,300,301,302,517,265,209,210,211, + 212,535,2517,299,300,301,302,1018,5462,1259, + 5462,2794,688,1596,1631,391,951,5462,2794,4995, + 228,3849,253,230,231,161,3289,303,3625,67, + 5462,161,4703,2195,2374,2957,186,353,1018,3849, + 3164,1819,535,3149,54,3486,216,213,205,214, + 215,217,3899,349,175,296,55,297,1588,2794, + 3171,228,166,5462,340,341,161,522,3734,173, + 174,176,177,178,179,180,2957,186,2384,3164, + 311,3715,337,341,3149,1795,2822,216,213,205, + 214,215,217,383,386,175,3069,38,882,36, + 951,4492,4678,34,1005,31,35,345,32,182, + 173,174,176,177,178,179,180,3947,5462,4999, + 2794,5462,2374,1000,38,882,36,951,2903,4678, + 34,1005,31,35,345,32,5462,2173,3283,67, + 5462,228,5462,2374,884,5462,5462,2794,3280,1596, + 1631,391,951,5462,4065,326,1647,328,1502,5462, + 321,1467,2696,404,4575,3164,5462,216,213,206, + 214,215,217,5462,3972,3164,2812,5462,2794,2374, + 54,4343,323,3193,328,207,208,1592,3107,3197, + 427,296,55,297,1588,3820,1408,5462,228,314, + 2887,209,210,211,212,307,3820,299,300,301, + 302,2393,4384,2795,3205,197,5462,5462,2374,3820, + 5462,4575,315,5462,216,213,206,214,215,217, + 3801,5462,5462,5462,5462,2374,501,2696,5462,1086, + 5462,3725,207,208,535,3107,4079,5462,5462,3849, + 5462,3763,5462,5462,228,5462,518,338,209,210, + 211,212,5462,228,299,300,301,302,161,5462, + 338,499,500,5462,5462,5462,5462,4575,168,1975, + 216,213,206,214,215,217,3149,5462,5462,441, + 4522,5462,2890,341,535,5462,5462,3340,207,208, + 5462,3107,5462,5462,5462,688,1596,1631,391,951, + 4683,365,219,228,209,210,211,212,161,5462, + 299,300,301,302,1690,2999,3023,2195,2957,186, + 529,101,1018,5462,5462,535,3149,54,5462,216, + 213,205,214,215,217,5462,3795,175,296,55, + 297,1588,5462,2807,228,5462,166,5462,5462,161, + 5462,193,173,174,176,177,178,179,180,2957, + 186,617,5462,5462,5462,5462,535,3149,5462,5462, + 216,213,205,214,215,217,5462,5462,175,5462, + 5462,1342,5462,5462,5462,228,535,5462,5462,5462, + 161,5462,3825,173,174,176,177,178,179,180, + 2957,186,705,5462,1592,349,5462,535,3149,5462, + 161,216,213,205,214,215,217,5462,5462,175, + 194,2223,1406,1592,5462,5462,228,535,5462,5462, + 4478,161,5462,196,173,174,176,177,178,179, + 180,2957,186,793,5462,5462,349,5462,535,3149, + 5462,161,216,213,205,214,215,217,5462,5462, + 175,194,5462,2316,5462,5462,3849,228,2374,5462, + 5462,4478,161,5462,192,173,174,176,177,178, + 179,180,2957,186,881,3849,5462,349,5462,535, + 3149,5462,5462,216,213,205,214,215,217,3396, + 5462,175,5462,5462,5462,5462,5462,5462,228,2950, + 341,5462,3971,161,5462,199,173,174,176,177, + 178,179,180,2957,186,5462,5462,5462,3260,341, + 5462,3149,5462,5462,216,213,205,214,215,217, + 3813,5462,175,1672,38,3273,36,951,4492,4678, + 34,1005,31,35,345,32,198,173,174,176, + 177,178,179,180,5462,2457,38,882,36,951, + 4492,4678,34,1005,31,35,345,32,2457,38, + 882,36,951,4492,4678,34,1005,31,35,345, + 32,5462,2887,5462,5462,5462,5462,5462,3820,5462, + 5462,5462,326,1647,328,5462,5462,321,1467,1046, + 38,882,36,951,5462,4760,34,1005,31,35, + 345,32,2039,2692,326,1647,328,1018,2564,321, + 1467,5462,5462,1018,5462,5462,5462,326,1647,328, + 5462,1598,321,1467,5462,2347,2374,4875,5462,338, + 5462,161,5462,5462,3908,5462,5462,161,3809,5462, + 5462,168,5462,5462,5462,228,339,1860,326,1647, + 328,5462,5462,322,1467,2878,38,882,36,951, + 2931,4678,34,1005,31,35,345,32,4013,4509, + 5462,408,5462,5462,864,1596,1631,391,951,5462, + 864,1596,1631,391,951,417,3321,5462,5462,1760, + 409,5462,3107,5462,5462,688,1596,1631,391,951, + 5462,774,1596,1631,391,951,54,5462,5462,3869, + 5462,5462,54,5462,323,3193,328,296,55,297, + 1588,5462,1561,296,55,297,1588,54,52,1681, + 5462,5462,5462,54,2374,4875,5462,2896,296,55, + 297,51,5462,2817,296,55,297,1588,5462,52, + 5462,2195,3062,228,5462,5462,1018,5462,774,1596, + 1631,391,951,2190,3007,5462,5462,2195,5462,3820, + 2611,5462,1018,5462,5462,1018,4013,5462,5462,408, + 166,410,412,774,1596,1631,391,951,5462,5462, + 54,864,1596,1631,391,951,166,1760,409,161, + 3107,296,55,297,1588,1956,2270,4649,5462,2129, + 5462,1975,5462,5462,5462,54,5462,5462,5462,5462, + 339,3067,5462,54,5462,5462,296,55,297,1588, + 5462,52,5462,357,296,55,297,1588,5462,52, + 774,1596,1631,391,951,5462,2736,5462,774,1596, + 1631,391,951,5462,2217,2446,5462,5462,5462,5462, + 3062,5462,5462,352,1303,819,355,5462,5462,5462, + 5462,3025,54,774,1596,1631,391,951,5462,5462, + 54,5462,5462,296,55,297,1588,5462,2440,410, + 413,296,55,297,1588,5462,52,3415,1596,1631, + 391,951,5462,3067,5462,54,3418,1596,1631,391, + 951,3195,5462,5462,5462,5462,296,55,297,1588, + 2795,52,5462,3283,5462,2374,3820,5462,2374,54, + 688,1596,1631,391,951,5462,3353,5462,54,5462, + 296,55,297,1588,2696,52,5462,2696,5462,296, + 55,297,1588,5462,52,688,1596,1631,391,951, + 2465,5462,54,688,1854,1887,391,951,5462,2972, + 5462,5462,5462,296,55,297,1588,338,674,5462, + 1214,1278,5462,3692,5462,535,535,54,2374,3309, + 5462,5462,5462,5462,2374,275,5462,5462,296,55, + 297,1588,5462,2265,349,349,5462,2696,5462,161, + 161,1470,5462,349,5462,5462,535,3340,365,1214, + 1110,501,5462,528,5462,5462,5462,5462,5462,2384, + 2384,1690,2999,3023,67,349,1161,1346,2384,2374, + 161,5462,67,67,67,531,77,2374,2374,2374, + 194,277,276,5462,67,5462,498,500,349,2374, + 4478,5462,5462,5462,67,5462,349,349,349,2374, + 5462,5462,2086,5462,5462,2133,5462,1018,349,2209, + 1018,501,5462,2384,1018,5462,5462,5462,349,5462, + 1803,2384,2384,2384,3372,5462,5462,2658,1846,1733, + 505,161,1018,2384,161,5462,5462,5462,161,5462, + 503,168,5462,2384,168,5462,498,500,168,2705, + 532,5462,5462,5462,1018,5462,161,5462,5462,3814, + 5462,5462,5462,5462,5462,5462,2304,5462,5462,5462, + 5462,5462,5462,5462,5462,5462,5462,5462,161,5462, + 5462,5462,5462,5462,3717,5462,5462,5462,4010,5462, + 5462,5462,5462,5462,5462,5462,5462,5462,5462,5462, + 5462,5462,5462,5462,5462,5462,5462,5462,5462,3969, + 5462,3203,4037,5462,5462,5462,4068,5462,0,5480, + 42,0,5479,42,0,509,33,0,450,918, + 0,5480,41,0,5479,41,0,2640,131,0, + 1,440,0,454,1205,0,453,1241,0,509, + 44,0,2430,96,0,38,306,0,390,298, + 0,36,391,0,33,390,0,509,33,390, + 0,1900,42,0,1,578,0,1,5736,0, + 1,5735,0,1,5734,0,1,5733,0,1, + 5732,0,1,5731,0,1,5730,0,1,5729, + 0,1,5728,0,1,5727,0,1,5726,0, + 1,5480,42,0,1,5479,42,0,1,870, + 0,5696,241,0,5695,241,0,5806,241,0, + 5805,241,0,5723,241,0,5722,241,0,5721, + 241,0,5720,241,0,5719,241,0,5718,241, + 0,5717,241,0,5716,241,0,5736,241,0, + 5735,241,0,5734,241,0,5733,241,0,5732, + 241,0,5731,241,0,5730,241,0,5729,241, + 0,5728,241,0,5727,241,0,5726,241,0, + 5480,42,241,0,5479,42,241,0,5503,241, + 0,38,286,262,0,509,390,0,5480,53, + 0,5479,53,0,1134,237,0,48,5501,0, + 48,40,0,2640,133,0,2640,132,0,30, + 516,0,5798,441,0,1365,441,0,1,5503, + 0,1,42,0,52,40,0,1,97,0, + 1,5503,229,0,1,42,229,0,229,415, + 0,5480,40,0,5479,40,0,5480,2,40, + 0,5479,2,40,0,5480,39,0,5479,39, + 0,5501,50,0,40,50,0,5472,406,0, + 5471,406,0,1,4465,0,1,2921,0,1, + 1900,0,229,414,0,2296,325,0,5798,100, + 0,1365,100,0,1,5798,0,1,1365,0, + 3923,282,0,1,2398,0,1,2845,0,5470, + 1,0,497,3803,0,1,229,0,1,229, + 3464,0,5472,229,0,5471,229,0,3719,229, + 0,162,181,0,298,3807,0,8,10,0, + 229,169,0,229,221,0,229,220,0,191, + 4302,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1093,381 +1118,411 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,0,56,57,3,59, - 60,61,0,63,64,65,0,67,0,1, - 8,71,4,73,6,75,76,77,78,79, - 80,81,82,83,84,85,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,0,56,57,0,59,60,61,7,63, - 64,65,0,67,0,1,2,3,4,73, - 6,75,76,77,78,79,80,81,82,83, - 84,85,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,0,56,57, - 0,59,60,61,4,63,64,65,0,67, - 0,1,2,3,4,73,6,75,76,77, - 78,79,80,81,82,83,84,85,0,1, + 50,51,52,53,54,55,56,57,0,59, + 0,61,62,63,64,65,0,67,68,0, + 1,2,72,4,74,0,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,0,56,57,0,59,60,61, - 0,63,64,65,97,67,0,1,2,3, - 4,73,6,75,76,77,78,79,80,81, - 82,83,84,85,0,1,2,3,4,5, + 52,53,54,55,56,57,64,59,90,61, + 62,63,64,65,96,67,68,0,0,99, + 72,3,74,6,76,77,78,79,80,81, + 95,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,0,59,0,61,62,63, + 64,65,0,67,68,0,10,11,91,92, + 74,6,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,54,0, - 56,57,3,59,60,61,0,63,64,65, - 97,67,0,1,98,3,4,73,6,75, - 76,77,78,79,80,81,82,83,84,85, + 46,47,48,49,50,51,52,53,54,55, + 56,57,0,59,90,61,62,63,64,65, + 96,67,68,0,0,0,91,92,74,6, + 76,77,78,79,80,81,0,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 0,59,90,61,62,63,64,65,96,67, + 68,0,88,89,91,92,74,0,76,77, + 78,79,80,81,99,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,0,56,57,3,59, - 60,61,0,63,64,65,4,67,0,1, - 0,3,4,73,6,75,76,77,78,79, - 80,81,82,83,84,85,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,0,56,57,0,59,60,61,0,63, - 64,65,0,67,0,1,0,5,2,73, - 6,75,76,77,78,79,80,81,82,83, - 84,85,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,0,56,57, - 0,59,60,61,7,63,64,65,0,67, - 99,89,90,5,0,73,2,75,76,77, - 78,79,80,81,82,83,84,85,0,1, + 50,51,52,53,54,55,56,57,71,59, + 90,61,62,63,64,65,96,67,68,0, + 0,1,2,4,74,5,76,77,78,79, + 80,81,101,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,69,56,57,0,59,60,61, - 0,63,64,65,0,67,0,89,90,5, - 0,73,2,75,76,77,78,79,80,81, - 82,83,84,85,0,1,2,3,4,5, + 52,53,54,55,56,57,0,59,0,61, + 62,63,64,65,8,67,68,0,1,2, + 0,4,74,3,76,77,78,79,80,81, + 0,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,0,59,0,61,62,63, + 64,65,8,67,68,97,98,0,1,2, + 74,0,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,54,0, - 56,57,0,59,60,61,0,63,64,65, - 0,67,0,89,90,0,0,73,0,75, - 76,77,78,79,80,81,82,83,84,85, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,0,42,46,47,45,46,47, - 48,49,50,51,52,53,54,42,56,43, - 45,46,47,48,49,50,51,52,53,54, - 58,56,42,43,68,45,46,47,48,49, - 50,51,52,53,54,0,56,0,58,0, - 1,0,62,63,9,10,66,0,68,69, - 70,71,72,73,0,1,2,3,4,5, - 6,7,0,95,96,72,86,87,88,89, - 90,91,92,93,94,95,96,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,114,0,1,2,3,4, + 46,47,48,49,50,51,52,53,54,55, + 56,57,71,59,66,61,62,63,64,65, + 0,67,68,0,1,2,100,0,74,9, + 76,77,78,79,80,81,0,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 73,59,66,61,62,63,64,65,0,67, + 68,3,0,0,1,2,74,0,76,77, + 78,79,80,81,12,83,84,85,86,87, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,0,59, + 0,61,62,63,64,65,0,67,68,0, + 1,2,0,4,74,0,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,115,10,11, + 12,13,14,0,44,0,3,47,48,49, + 50,51,52,53,54,55,56,57,0,0, + 1,2,3,4,5,59,7,58,10,11, + 58,12,44,45,0,47,48,49,50,51, + 52,53,54,55,56,57,88,89,60,0, + 1,2,64,0,66,73,7,69,70,71, + 72,73,74,75,45,0,1,2,3,4, + 5,6,7,8,69,70,88,89,90,91, + 92,93,94,95,96,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, 35,36,37,38,39,40,41,42,43,44, 45,46,47,48,49,50,51,52,53,54, - 113,56,57,0,59,60,61,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 0,44,45,46,47,48,49,50,51,52, - 53,54,0,56,57,62,59,60,61,0, + 55,56,57,0,59,0,61,62,63,0, 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, + 11,0,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,42,62,44,45,46,47,48,49,50, - 51,52,53,54,62,56,57,0,59,60, - 61,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,0,44,45,46,47,48, - 49,50,51,52,53,54,0,56,57,3, - 59,60,61,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, + 41,42,43,44,0,46,47,48,49,50, + 51,52,53,54,55,56,57,0,59,66, + 61,62,63,0,1,2,3,4,5,6, + 7,8,9,10,11,64,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,62,44,45,46, - 47,48,49,50,51,52,53,54,0,56, - 57,3,59,60,61,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,0,44, - 45,46,47,48,49,50,51,52,53,54, - 0,56,57,3,59,60,61,0,1,2, - 3,4,5,6,7,8,9,10,11,12, + 37,38,39,40,41,42,43,44,0,46, + 47,48,49,50,51,52,53,54,55,56, + 57,0,59,66,61,62,63,0,1,2, + 3,4,5,6,7,8,9,10,11,95, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,39,40,41,42, - 0,44,45,46,47,48,49,50,51,52, - 53,54,0,56,57,0,59,60,61,0, + 43,44,64,46,47,48,49,50,51,52, + 53,54,55,56,57,0,59,66,61,62, + 63,0,1,2,3,4,5,6,7,8, + 9,10,11,0,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,44,0,46,47,48, + 49,50,51,52,53,54,55,56,57,0, + 59,66,61,62,63,0,1,2,3,4, + 5,6,7,8,9,10,11,64,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,44, + 64,46,47,48,49,50,51,52,53,54, + 55,56,57,64,59,0,61,62,63,0, 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, + 11,0,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,0, - 1,42,3,0,45,46,47,48,49,50, - 51,52,53,54,62,56,57,0,59,60, - 61,0,0,2,0,3,5,5,7,7, - 9,10,11,12,0,95,96,13,14,15, - 16,17,18,19,20,21,22,23,0,1, - 2,3,4,5,6,7,0,0,1,2, - 3,4,63,6,43,62,42,0,0,45, - 46,47,48,49,50,51,52,53,54,58, - 56,0,1,62,3,68,5,66,7,68, - 69,70,71,72,0,0,2,0,3,5, - 43,7,0,9,10,11,12,86,87,88, - 89,90,91,92,93,94,95,96,97,98, - 99,100,101,102,103,104,105,106,107,108, - 109,110,111,112,113,114,69,43,43,42, - 72,0,45,46,47,48,49,50,51,52, - 53,54,58,56,0,1,62,3,0,5, - 66,7,68,69,70,71,72,100,0,102, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,44,0,46,47,48,49,50, + 51,52,53,54,55,56,57,0,59,0, + 61,62,63,0,1,2,3,4,5,6, + 7,8,9,10,11,0,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,0,47,44,0,0, + 47,48,49,50,51,52,53,54,55,56, + 57,0,59,0,61,62,63,0,1,2, + 3,4,5,6,7,8,9,0,0,12, + 0,3,15,16,17,18,19,20,21,22, + 23,24,25,44,97,98,47,48,49,50, + 51,52,53,54,55,56,57,0,0,48, + 49,44,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,0,61,62, + 63,4,65,0,1,2,88,89,5,72, + 73,0,1,2,3,4,5,70,7,82, + 0,1,2,3,4,5,6,7,8,9, + 0,0,12,3,101,15,16,17,18,19, + 20,21,22,23,24,25,0,1,2,3, + 4,5,6,7,8,118,119,120,0,0, + 0,58,3,3,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 0,61,62,63,73,65,0,0,1,2, + 10,11,72,73,0,1,2,0,4,0, + 3,71,82,6,0,8,0,10,11,12, + 13,14,66,0,15,16,17,18,19,20, + 21,22,23,24,25,66,66,0,0,1, + 2,3,4,5,6,7,8,0,118,119, + 120,4,45,44,0,58,47,48,49,50, + 51,52,53,54,55,56,57,60,64,0, + 0,1,2,66,60,0,69,70,71,72, + 73,44,75,0,47,48,49,50,51,52, + 53,54,55,56,57,88,89,90,91,92, + 93,94,95,96,97,98,99,100,101,102, 103,104,105,106,107,108,109,110,111,112, - 86,87,88,89,90,91,92,93,94,95, + 113,114,115,116,0,71,0,3,58,0, + 6,0,8,58,10,11,12,13,14,0, + 1,2,3,4,5,6,7,8,0,1, + 2,0,4,5,3,7,102,0,104,105, + 106,107,108,109,110,111,112,113,114,45, + 44,88,89,47,48,49,50,51,52,53, + 54,55,56,57,60,0,0,118,119,120, + 66,0,6,69,70,71,72,73,69,75, + 69,70,0,1,2,66,58,5,0,7, + 71,0,88,89,90,91,92,93,94,95, 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,112,113,114,0, - 1,2,3,4,5,6,7,8,116,117, - 118,0,13,14,15,16,17,18,19,20, - 21,22,23,0,1,2,3,4,0,6, - 0,1,2,3,4,5,6,7,0,0, - 1,42,43,44,45,46,47,48,49,50, - 51,52,53,54,55,56,57,99,59,60, - 61,0,1,64,3,0,5,119,7,70, - 71,0,1,74,9,10,0,1,2,3, - 4,5,6,7,8,62,58,0,1,13, - 14,15,16,17,18,19,20,21,22,23, - 70,0,1,2,3,4,68,6,0,1, - 72,40,41,0,1,116,117,118,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,0,59,60,61,0,1, - 64,3,55,5,43,7,70,71,40,41, - 74,0,1,2,3,4,5,6,7,8, + 106,107,108,109,110,111,112,113,114,115, + 116,0,1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, - 39,57,116,117,118,0,1,2,3,4, + 39,40,41,42,43,100,45,46,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,121,45,46,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,0,43,44, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,0,43,44,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,0,43,44, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,0,0,44,2,0,1,2,3, - 4,0,6,0,1,2,3,4,5,6, - 7,0,1,2,3,4,5,6,7,0, - 1,119,72,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,62,70,44,0,1, - 0,3,69,62,55,5,0,1,2,3, - 88,5,0,7,0,1,94,3,4,0, - 6,9,10,0,1,72,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,62,55, - 44,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,41,0,0,44,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,0,45, - 44,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,41,0,1,0,1,4,0,1, - 2,3,4,100,6,0,0,1,0,3, - 4,0,6,2,66,112,68,66,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 62,55,44,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,0,98,44,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 0,1,44,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,0,1,44,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 0,1,44,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,0,1,44,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,0,1,2,3,4,5,6,7, + 35,36,37,38,39,40,41,42,43,0, + 45,46,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,0,0,1,0,1,0,3,0, - 5,2,7,0,1,0,0,0,0,2, - 2,0,0,2,0,63,0,3,0,0, - 2,2,0,71,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,0,0,2,72,4,5, - 62,7,58,9,10,11,12,72,86,87, - 62,0,0,2,66,88,68,63,93,25, - 72,94,11,12,88,71,0,1,93,3, - 94,0,0,1,40,41,4,42,86,87, - 45,46,47,48,49,50,51,52,53,54, - 0,56,58,0,0,1,62,3,0,0, - 66,0,68,69,0,0,0,0,0,1, - 58,45,0,62,0,0,0,2,0,1, - 86,87,88,89,90,91,92,55,0,95, - 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,0,0,2,55, - 4,5,101,7,0,9,10,11,12,58, - 55,0,58,55,58,114,0,66,0,8, - 66,25,66,0,1,0,8,62,5,86, - 87,63,68,8,86,87,40,41,0,1, - 0,3,91,92,66,91,92,91,92,0, - 88,2,86,87,58,58,94,0,62,2, - 0,0,66,2,68,69,55,70,57,0, - 66,2,68,55,58,57,0,0,55,0, - 3,0,86,87,88,89,90,91,92,0, - 65,95,96,97,98,99,100,101,102,103, - 104,105,106,107,108,109,110,111,0,1, + 38,39,40,41,42,43,0,0,46,0, + 1,2,3,4,5,6,7,8,0,0, + 1,2,3,4,0,6,0,8,0,1, + 2,3,4,5,0,7,12,75,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,0,70, - 0,0,2,93,0,66,0,1,0,1, - 0,1,0,1,0,0,0,0,3,0, - 0,63,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,55,62,55,66,55,68,55,0,68, - 66,0,71,58,58,58,0,58,58,0, - 66,2,0,1,62,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, + 32,33,34,35,36,37,38,39,40,41, + 42,43,73,76,46,66,60,69,0,1, + 2,0,4,5,66,7,0,1,2,75, + 0,0,1,2,3,4,5,6,7,8, + 9,10,11,75,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,0,58,46,0,1, + 2,3,4,5,6,7,8,9,10,11, + 64,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,0,0,46,0,1,2,3,4, + 5,6,7,8,9,10,11,0,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,93,0,0,2,2,0, - 0,2,0,0,2,2,0,0,2,2, - 0,0,2,115,0,0,2,2,0,1, - 0,115,0,0,24,0,0,0,113,0, + 35,36,37,38,39,40,41,42,43,0, + 95,46,0,1,2,3,4,5,6,7, + 8,9,10,11,0,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,1,2,3, + 4,5,0,7,0,88,89,3,0,0, 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, + 11,69,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,0,1,2, - 3,4,5,6,7,8,9,10,11,12, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,0,0,46,0,1,2,3, + 4,5,6,7,8,9,10,11,60,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 0,0,46,0,1,2,3,4,5,6, + 7,8,9,10,11,0,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,0,0,46, + 0,1,2,3,4,5,6,7,8,9, + 10,11,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,0,0,46,0,1,2, + 3,4,5,6,7,8,9,10,11,0, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,0,1,0,3, - 0,0,0,0,8,0,0,0,0,13, + 33,34,35,36,37,38,39,40,41,42, + 43,0,0,46,0,1,2,3,4,5, + 6,7,8,9,10,11,0,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,0,0, + 46,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,0,0,1,2,0,4,0, + 6,0,8,0,3,12,12,0,1,2, + 3,4,5,12,7,64,0,1,2,0, + 1,2,6,72,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,69,66,75,75, + 69,70,69,66,58,0,75,0,1,2, + 3,4,5,0,7,0,0,4,64,95, + 4,0,6,0,8,4,72,0,1,2, + 3,4,5,6,7,8,9,10,11,0, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 43,0,1,2,3,4,5,6,7,8, + 9,10,11,0,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,0,1,2,3, + 4,5,6,7,8,9,10,11,0,13, 14,15,16,17,18,19,20,21,22,23, - 0,0,0,0,24,0,0,0,1,2, - 3,4,5,6,7,0,0,39,42,0, - 0,45,46,47,48,49,50,51,52,53, - 54,43,56,57,0,59,60,61,0,1, - 58,3,55,43,63,0,8,0,63,42, - 43,13,14,15,16,17,18,19,20,21, - 22,23,55,58,0,58,0,66,68,66, - 55,64,65,71,67,0,70,0,0,0, - 42,74,0,45,46,47,48,49,50,51, - 52,53,54,73,56,57,0,59,60,61, - 0,1,2,3,4,5,6,7,0,1, - 2,3,4,5,6,7,0,70,0,0, - 0,0,58,0,58,0,0,1,2,3, - 4,5,6,7,0,1,2,3,4,5, - 6,7,42,43,69,68,0,69,69,115, - 42,43,70,0,0,55,0,0,0,0, - 0,0,0,55,64,65,70,67,42,43, - 0,71,64,65,74,67,42,43,0,71, - 0,55,74,63,68,0,0,69,69,55, - 64,65,71,67,69,72,43,71,64,65, - 74,67,0,0,58,71,0,0,74,0, - 1,2,3,4,5,6,7,0,1,2, - 3,4,5,6,7,68,70,66,70,69, - 0,0,70,63,75,0,1,2,3,4, - 5,6,7,0,1,2,3,4,5,6, - 7,42,43,0,69,0,0,0,72,42, - 43,0,0,0,55,63,63,0,0,0, - 0,93,55,64,65,68,67,42,43,0, - 71,64,65,74,67,42,43,24,0,0, - 55,74,0,0,0,0,0,0,55,64, - 65,0,67,0,0,0,0,64,65,74, - 67,0,0,0,0,0,0,74,0,0, - 0,0,69,0,69,0,120,0,0,0, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,0,1, + 2,3,4,5,121,7,0,0,0,3, + 12,3,0,1,2,3,4,5,0,7, + 64,13,14,5,0,1,2,0,1,2, + 115,0,1,2,3,4,5,6,7,8, + 9,10,11,45,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,0,66,0,3,0,5,6, + 0,8,58,10,11,58,13,14,0,1, + 2,0,4,0,6,4,8,0,1,2, + 27,4,5,12,7,12,0,1,2,0, + 4,103,6,4,8,42,43,0,1,2, + 0,4,0,6,116,8,0,1,2,0, + 4,9,6,60,8,60,45,60,45,66, + 60,0,69,70,71,0,1,2,0,4, + 5,0,7,12,3,0,0,1,2,0, + 0,88,89,90,91,92,93,94,0,60, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,0,0,67, + 3,3,5,6,0,8,0,10,11,0, + 13,14,0,1,2,0,1,2,60,0, + 1,2,0,0,27,60,75,69,0,1, + 2,9,4,0,69,0,1,2,60,42, + 43,102,0,1,2,12,95,69,0,0, + 0,93,94,114,42,43,0,60,93,94, + 12,42,43,66,66,0,69,70,71,60, + 5,93,94,58,70,47,0,71,45,3, + 58,59,73,0,0,88,89,90,91,92, + 93,94,69,58,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,0,1,2,3,4,5,6,7,8, + 9,10,11,75,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,69,70,0,1,2,0,1,2, + 0,0,1,2,4,0,1,2,3,4, + 5,6,7,8,9,10,11,66,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,0,1,2, + 3,4,5,6,7,8,9,10,11,58, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,0,1, + 2,3,4,5,6,7,8,9,10,11, + 0,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,0, + 1,2,3,4,5,6,7,8,9,10, + 11,0,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 0,1,2,0,4,0,3,0,0,9, + 0,4,0,3,0,15,16,17,18,19, + 20,21,22,23,24,25,0,0,0,0, + 0,0,4,0,0,0,0,0,12,0, + 69,12,12,12,44,0,12,47,48,49, + 50,51,52,53,54,55,56,57,0,59, + 0,61,62,63,0,1,2,60,4,0, + 12,45,0,9,45,70,4,0,70,15, + 16,17,18,19,20,21,22,23,24,25, + 0,1,2,3,4,5,6,7,8,70, + 70,0,12,72,70,75,72,74,44,73, + 9,47,48,49,50,51,52,53,54,55, + 56,57,0,59,0,61,62,63,0,60, + 72,0,60,0,44,45,12,0,1,2, + 3,4,5,6,7,8,0,70,58,12, + 60,0,0,0,3,65,3,67,68,58, + 59,0,0,1,2,3,4,5,6,7, + 8,0,82,0,12,0,0,0,0,3, + 58,44,45,0,0,0,3,41,60,0, + 0,60,3,60,0,58,0,0,0,75, + 0,3,65,3,67,68,44,45,0,72, + 0,1,2,3,4,5,6,7,8,82, + 58,60,12,26,0,73,0,65,0,67, + 68,60,0,0,72,0,1,2,3,4, + 5,6,7,8,82,70,73,12,71,71, + 0,0,26,3,44,45,71,0,0,0, + 3,3,3,73,0,69,0,73,58,0, + 0,0,0,0,0,65,0,67,68,44, + 45,0,72,0,1,2,3,4,5,6, + 7,8,82,58,0,12,0,73,26,71, + 65,117,67,68,71,0,0,72,0,1, + 2,3,4,5,6,7,8,82,0,0, + 12,70,0,0,0,117,0,44,45,0, + 60,0,0,0,0,71,0,71,0,0, + 0,58,0,0,0,0,0,0,65,117, + 67,68,44,45,0,72,0,1,2,3, + 4,5,6,7,8,82,58,0,12,0, + 0,0,0,65,0,67,68,0,0,0, + 0,0,1,2,3,4,5,6,7,8, + 82,122,0,12,0,0,0,0,0,0, + 44,45,0,0,0,0,0,0,0,0, + 0,0,0,0,58,0,0,0,0,0, + 0,65,0,67,68,44,45,0,0,0, + 0,0,0,0,0,0,0,0,82,58, + 0,0,0,0,0,0,65,0,67,68, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,82,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0 + 0,0,0,0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1475,380 +1530,412 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface TermAction { public final static char termAction[] = {0, - 5311,5292,5289,5289,5289,5289,5289,5289,1,1, + 5462,5428,5425,5425,5425,5425,5425,5425,5425,1, + 1,1,5438,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5435,3541,1,1,1, + 1,1,1,1,1,1,1,1,116,1, + 138,1,1,1,721,2306,1,1947,3461,5462, + 5112,5109,5469,5503,1879,363,3523,3200,2178,3049, + 3463,3886,5462,3500,1101,3482,3761,3472,8,5447, + 5447,5447,5447,5447,5447,5447,5447,5447,5447,5447, + 5447,5447,5447,5447,5447,5447,5447,5447,5447,5447, + 5447,5447,5447,5447,5447,5447,5447,5447,5447,5447, + 5447,5447,5447,5447,5447,5447,5447,5447,5447,5447, + 5447,5447,5447,5447,5447,5447,5447,5447,5447,5447, + 5447,5447,5447,5447,5447,5447,1451,5447,3664,5447, + 5447,5447,5447,5447,3687,5447,5447,120,5462,2342, + 5447,4900,5447,3316,5447,5447,5447,5447,5447,5447, + 5824,5447,5447,5447,5447,5447,5462,5428,5425,5425, + 5425,5425,5425,5425,5425,1,1,1,5432,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5296,3231,1,1,1,1,1, - 1,1,1,1,1,39,1,1,5349,1, - 1,1,307,723,1384,3228,1,3169,5311,5346, - 5617,5319,2022,1232,3737,3217,2628,2162,2207,3185, - 3530,3209,3222,3206,3507,3203,5311,5292,5289,5289, - 5289,5289,5289,5289,1,1,1,1,1,1, + 1,5435,3541,1,1,1,1,1,1,1, + 1,1,1,1,119,1,123,1,1,1, + 721,2306,5462,1947,3461,122,2850,592,3292,3268, + 1879,3316,3523,3200,2178,3049,3463,3886,5462,3500, + 1101,3482,3761,3472,5462,5428,5425,5425,5425,5425, + 5425,5425,5425,1,1,1,5432,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5296, - 3231,1,1,1,1,1,1,1,1,1, - 1,133,1,1,5311,1,1,1,2351,723, - 1384,3228,5311,3169,1,5091,3108,5095,2022,1232, - 3737,3217,2628,2162,2207,3185,3530,3209,3222,3206, - 3507,3203,5311,5292,5289,5289,5289,5289,5289,5289, + 1,1,1,1,1,1,1,1,1,5435, + 3541,1,1,1,1,1,1,1,1,1, + 1,1,118,1,3664,1,1,1,721,2306, + 3687,1947,3461,121,126,139,3292,3268,1879,3316, + 3523,3200,2178,3049,3463,3886,5462,3500,1101,3482, + 3761,3472,5462,5428,5425,5425,5425,5425,5425,5425, + 5425,1,1,1,5432,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5435,3541,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5296,3231,1,1,1, - 1,1,1,1,1,1,1,135,1,1, - 5311,1,1,1,4787,723,1384,3228,5311,3169, - 1,5091,5253,5095,5259,1232,5256,3217,2628,2162, - 2207,3185,3530,3209,3222,3206,3507,3203,5311,5292, - 5289,5289,5289,5289,5289,5289,1,1,1,1, + 117,1,3664,1,1,1,721,2306,3687,1947, + 3461,142,795,2709,3292,3268,1879,293,3523,3200, + 2178,3049,3463,3886,2342,3500,1101,3482,3761,3472, + 5462,5428,5425,5425,5425,5425,5425,5425,5425,1, + 1,1,5432,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5435,3541,1,1,1, + 1,1,1,1,1,1,1,1,1951,1, + 3664,1,1,1,721,2306,3687,1947,3461,42, + 5462,5479,5480,5503,1879,3052,3523,3200,2178,3049, + 3463,3886,2272,3500,1101,3482,3761,3472,5462,5428, + 5425,5425,5425,5425,5425,5425,5425,1,1,1, + 5432,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5296,3231,1,1,1,1,1,1,1, - 1,1,1,136,1,1,137,1,1,1, - 5311,723,1384,3228,923,3169,1,5091,3108,5095, - 2022,1232,3737,3217,2628,2162,2207,3185,3530,3209, - 3222,3206,3507,3203,5311,5292,5289,5289,5289,5289, - 5289,5289,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5435,3541,1,1,1,1,1, + 1,1,1,1,1,1,136,1,134,1, + 1,1,721,2306,2401,1947,3461,5462,5112,5109, + 5462,5503,1879,1134,3523,3200,2178,3049,3463,3886, + 5462,3500,1101,3482,3761,3472,5462,5428,5425,5425, + 5425,5425,5425,5425,5425,1,1,1,5432,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5296,3231,1, - 1,1,1,1,1,1,1,1,1,5311, - 1,1,927,1,1,1,5311,723,1384,3228, - 923,3169,5311,5003,2291,784,2022,1232,3737,3217, - 2628,2162,2207,3185,3530,3209,3222,3206,3507,3203, - 5311,5292,5289,5289,5289,5289,5289,5289,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,5435,3541,1,1,1,1,1,1,1, + 1,1,1,1,137,1,140,1,1,1, + 721,2306,2401,1947,3461,2555,2526,5462,5479,5480, + 1879,375,3523,3200,2178,3049,3463,3886,454,3500, + 1101,3482,3761,3472,5462,5428,5425,5425,5425,5425, + 5425,5425,5425,1,1,1,5432,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5296,3231,1,1,1,1,1, - 1,1,1,1,1,508,1,1,5039,1, - 1,1,5311,723,1384,3228,4796,3169,5311,5003, - 5311,784,2022,1232,3737,3217,2628,2162,2207,3185, - 3530,3209,3222,3206,3507,3203,5311,5292,5289,5289, - 5289,5289,5289,5289,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5435, + 3541,1,1,1,1,1,1,1,1,1, + 1,1,1105,1,5133,1,1,1,721,2306, + 310,1947,3461,5462,5301,5298,2308,5462,1879,5771, + 3523,3200,2178,3049,3463,3886,453,3500,1101,3482, + 3761,3472,5462,5428,5425,5425,5425,5425,5425,5425, + 5425,1,1,1,5432,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5296, - 3231,1,1,1,1,1,1,1,1,1, - 1,139,1,1,5311,1,1,1,5311,723, - 1384,3228,117,3169,38,5012,5311,3361,4806,1232, - 1284,3217,2628,2162,2207,3185,3530,3209,3222,3206, - 3507,3203,5311,5292,5289,5289,5289,5289,5289,5289, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5435,3541,1, + 1,1,1,1,1,1,1,1,1,1, + 1855,1,5136,1,1,1,721,2306,96,1947, + 3461,5142,5462,53,5301,5298,1879,5462,3523,3200, + 2178,3049,3463,3886,5466,3500,1101,3482,3761,3472, + 5462,3464,1,1,1,1,1,1,1,1, + 1,1,5472,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5471,3541,1,1,1, + 1,1,1,1,1,1,1,1,130,1, + 224,1,1,1,721,2306,5462,1947,3461,398, + 5112,5109,40,5503,1879,5462,3523,3200,2178,3049, + 3463,3886,426,3500,1101,3482,3761,3472,5462,5291, + 5291,5291,5291,5291,5291,5291,5291,5465,5291,5291, + 5291,5291,5291,237,5719,30,5304,5722,5805,5806, + 5716,5723,5695,5721,5720,5717,5718,5696,125,1, + 5204,5200,5383,5208,5389,3720,5386,42,2850,592, + 5501,5472,5291,5291,5462,5291,5291,5291,5291,5291, + 5291,5291,5291,5291,5291,5291,795,2709,5291,41, + 5124,5121,5291,5462,5291,3916,826,5291,5291,5291, + 5291,5291,5291,5291,5471,5462,5112,5109,4465,870, + 1900,1365,2921,5798,5319,5319,5291,5291,5291,5291, + 5291,5291,5291,5291,5291,5291,5291,5291,5291,5291, + 5291,5291,5291,5291,5291,5291,5291,5291,5291,5291, + 5291,5291,5291,5291,5291,5462,5425,5425,5425,5425, + 5425,5425,5425,5425,1,1,1,5450,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5296,3231,1,1,1, - 1,1,1,1,1,1,1,134,1,1, - 5311,1,1,1,2351,723,1384,3228,119,3169, - 2256,3332,3253,3361,316,1232,3287,3217,2628,2162, - 2207,3185,3530,3209,3222,3206,3507,3203,5311,5292, - 5289,5289,5289,5289,5289,5289,1,1,1,1, + 5450,5624,1,1,1,1,1,1,1,1, + 1,1,1,354,1,5462,1,1,1,5462, 1,1,1,1,1,1,1,1,1,1, + 1,5462,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5296,3231,1,1,1,1,1,1,1, - 1,1,1,1209,1,1,5311,1,1,1, - 5311,723,1384,3228,118,3169,5311,3332,3253,3361, - 5311,1232,3406,3217,2628,2162,2207,3185,3530,3209, - 3222,3206,3507,3203,5311,3188,1,1,1,1, + 1,1,1,1,1,5624,1,1,1,1, + 1,1,1,1,1,1,1,105,1,1814, + 1,1,1,5462,1,1,1,1,1,1, + 1,1,1,1,1,1709,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5462,5624, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5320,3231,1, - 1,1,1,1,1,1,1,1,1,339, - 1,1,221,1,1,1,160,723,1384,3228, - 5311,3169,5311,3332,3253,222,5311,1232,131,3217, - 2628,2162,2207,3185,3530,3209,3222,3206,3507,3203, - 5311,5180,5180,5180,5180,5180,5180,5180,5311,5180, - 5180,5180,5180,1,5565,5651,5652,5568,5651,5652, - 5562,5569,5541,5567,5566,5563,5564,5565,5542,5320, - 5568,5651,5652,5562,5569,5541,5567,5566,5563,5564, - 3739,5542,5180,5180,1293,5180,5180,5180,5180,5180, - 5180,5180,5180,5180,5180,120,5180,5311,5180,5311, - 1707,5311,5180,5180,2381,591,5180,5311,5180,5180, - 5180,5180,5180,5180,5311,5003,3108,784,2022,2463, - 3737,5644,5311,2503,2475,164,5180,5180,5180,5180, - 5180,5180,5180,5180,5180,5180,5180,5180,5180,5180, - 5180,5180,5180,5180,5180,5180,5180,5180,5180,5180, - 5180,5180,5180,5180,5180,5311,5289,5289,5289,5289, - 5289,5289,5289,1,1,1,1,1,1,1, + 1,327,1,5017,1,1,1,5462,1,1, + 1,1,1,1,1,1,1,1,1,5826, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5305,5470, 1,1,1,1,1,1,1,1,1,1, - 5317,1,1,453,1,1,1,5311,1,1, + 1,1,721,5624,1,1,1,1,1,1, + 1,1,1,1,1,104,1,1814,1,1, + 1,5462,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5462,5624,1,1, + 1,1,1,1,1,1,1,1,1,5462, + 1,1990,1,1,1,5462,1,1,1,1, + 1,1,1,1,1,1,1,3542,1,1, 1,1,1,1,1,1,1,1,1,1, - 452,5470,1,1,1,1,1,1,1,1, - 1,1,351,1,1,5024,1,1,1,5311, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 3543,5624,1,1,1,1,1,1,1,1, + 1,1,1,5444,1,5462,1,1,1,5462, 1,1,1,1,1,1,1,1,1,1, + 1,5462,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5027,5470,1,1,1,1,1,1, - 1,1,1,1,1800,1,1,5311,1,1, - 1,5311,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5462,5624,1,1,1,1, + 1,1,1,1,1,1,1,135,1,432, + 1,1,1,42,5112,5109,3034,870,2771,3549, + 2921,3572,1375,3518,3495,5462,3618,3595,5728,5726, + 5735,5734,5730,5731,5729,5732,5733,5736,5727,5485, + 927,680,776,5487,727,632,735,5488,5486,678, + 5481,5483,5484,5482,1254,5462,5893,5719,129,225, + 5722,5805,5806,5716,5723,5695,5721,5720,5717,5718, + 5696,342,5861,143,620,5862,5863,5462,5344,5344, + 229,5340,229,229,229,229,1,163,1,5348, + 5462,4963,1,1,1,1,1,1,1,1, + 1,1,1,5719,2555,2526,5722,5805,5806,5716, + 5723,5695,5721,5720,5717,5718,5696,5462,5462,5805, + 5806,1,229,5873,1,1,1,1,1,1, + 1,1,1,1,1,497,1,5462,1,1, + 1,2891,1278,40,5334,5334,795,2709,5334,415, + 229,1,5204,5200,4465,5208,1900,1298,2921,5958, + 5462,5344,5344,229,5340,229,229,229,229,1, + 319,5462,5392,2432,2272,1,1,1,1,1, + 1,1,1,1,1,1,351,5112,5109,2741, + 870,1900,1365,2921,5798,5895,5896,5897,5462,1, + 353,3386,3375,1580,1,229,5873,1,1,1, + 1,1,1,1,1,1,1,1,497,1, + 124,1,1,1,2045,1278,5462,5462,9857,9857, + 2850,592,414,229,5462,5112,5109,391,5503,223, + 5151,1209,5958,5151,5462,5151,5462,5151,5151,5151, + 5151,5151,1814,5462,5728,5726,5735,5734,5730,5731, + 5729,5732,5733,5736,5727,1814,1814,226,318,5204, + 5200,4465,5208,1900,5407,2921,5404,509,5895,5896, + 5897,5148,5151,5719,144,5501,5722,5805,5806,5716, + 5723,5695,5721,5720,5717,5718,5696,5151,1504,5462, + 48,5310,5310,5151,2434,52,5151,5151,5151,5151, + 5151,5719,5151,128,5722,5805,5806,5716,5723,5695, + 5721,5720,5717,5718,5696,5151,5151,5151,5151,5151, + 5151,5151,5151,5151,5151,5151,5151,5151,5151,5151, + 5151,5151,5151,5151,5151,5151,5151,5151,5151,5151, + 5151,5151,5151,5151,390,1771,227,5154,5307,5462, + 5154,5462,5154,2835,5154,5154,5154,5154,5154,372, + 5204,5200,2741,5208,1900,1,2921,1,5462,5112, + 5109,5462,870,5161,3797,2921,2233,5462,1728,1685, + 1642,1599,1556,1513,1470,1427,1384,1341,3377,5154, + 5719,795,2709,5722,5805,5806,5716,5723,5695,5721, + 5720,5717,5718,5696,5157,141,5462,5895,5896,5897, + 5154,5462,1752,5154,5154,5154,5154,5154,2608,5154, + 3791,4028,5462,5479,5480,1814,1000,1900,5462,2921, + 1062,5462,5154,5154,5154,5154,5154,5154,5154,5154, + 5154,5154,5154,5154,5154,5154,5154,5154,5154,5154, + 5154,5154,5154,5154,5154,5154,5154,5154,5154,5154, + 5154,5462,1,1,1,1,1,1,1,1, + 1,1,1,5472,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,102,5470,1,1,1,1, - 1,1,1,1,1,1,1,1,1,388, - 1,1,1,5311,1,1,1,1,1,1, + 1,1,1,1,1,2308,5471,5624,5462,1, 1,1,1,1,1,1,1,1,1,1, + 169,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,4891,5470,1,1, - 1,1,1,1,1,1,1,1,5311,1, - 1,2608,1,1,1,5311,1,1,1,1, + 1,1,5108,169,5624,5462,1,1,1,1, + 1,1,1,1,1,1,1,169,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5462, + 169,5624,5462,1,1,1,1,1,1,1, + 1,1,1,1,169,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5311,5470, 1,1,1,1,1,1,1,1,1,1, - 5311,1,1,2910,1,1,1,5311,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 132,5470,1,1,1,1,1,1,1,1, - 1,1,324,1,1,5311,1,1,1,39, - 5021,3738,784,630,4108,3737,4130,978,4086,4064, - 4174,4152,5574,5572,5581,5580,5576,5577,5575,5578, - 5579,5582,5573,5331,2420,864,1112,5333,919,4387, - 920,5334,5332,780,5327,5329,5330,5328,1251,5311, - 5101,5565,5349,101,5568,5651,5652,5562,5569,5541, - 5567,5566,5563,5564,1800,5542,5709,511,576,5710, - 5711,388,39,5042,220,5349,5042,2463,5042,5644, - 5042,5042,5042,5042,5311,2503,2475,5574,5572,5581, - 5580,5576,5577,5575,5578,5579,5582,5573,315,5091, - 3108,5095,2022,5274,3737,5271,5311,1,5091,5253, - 5095,5259,2752,5256,5042,1974,5565,141,5311,5568, - 5651,5652,5562,5569,5541,5567,5566,5563,5564,5042, - 5542,439,1,5042,1,825,5018,5042,5018,5042, - 5042,5042,5042,5042,387,35,5045,223,5036,5045, - 5320,5045,5311,5045,5045,5045,5045,5042,5042,5042, - 5042,5042,5042,5042,5042,5042,5042,5042,5042,5042, - 5042,5042,5042,5042,5042,5042,5042,5042,5042,5042, - 5042,5042,5042,5042,5042,5042,1758,5045,5036,5565, - 5318,5311,5568,5651,5652,5562,5569,5541,5567,5566, - 5563,5564,5048,5542,440,39,5045,5349,5311,5211, - 5045,5208,5045,5045,5045,5045,5045,2218,140,1716, - 1674,1632,1590,1548,1506,1464,1422,1380,1338,2652, - 5045,5045,5045,5045,5045,5045,5045,5045,5045,5045, - 5045,5045,5045,5045,5045,5045,5045,5045,5045,5045, - 5045,5045,5045,5045,5045,5045,5045,5045,5045,5311, - 5230,226,5226,226,226,226,226,1,5743,5744, - 5745,5311,1,1,1,1,1,1,1,1, - 1,1,1,1,5091,2695,5095,2022,5311,3737, - 5311,5091,3108,5095,2022,5274,3737,5271,5311,5311, - 5187,1,226,5721,1,1,1,1,1,1, - 1,1,1,1,496,1,1,2256,1,1, - 1,94,1,668,1,122,5223,5002,5223,226, - 414,5311,1707,5806,2381,591,5311,5230,226,5226, - 226,226,226,226,1,1800,4824,5311,9401,1, - 1,1,1,1,1,1,1,1,1,1, - 2030,1,5091,3108,5095,2022,4882,3737,5311,5187, - 5318,4196,871,5311,5346,5743,5744,5745,1,226, - 5721,1,1,1,1,1,1,1,1,1, - 1,496,1,1,5311,1,1,1,97,39, - 668,5349,5347,5268,315,5265,226,413,4196,871, - 5806,39,5003,3738,784,630,4108,3737,4130,557, - 4086,4064,4174,4152,5574,5572,5581,5580,5576,5577, - 5575,5578,5579,5582,5573,5331,2420,864,1112,5333, - 919,4387,920,5334,5332,780,5327,5329,5330,5328, - 1251,2347,5743,5744,5745,5311,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5311,5320,5470, - 5311,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,159,166,5470,5311,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5311,166,5470, - 5311,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,113,93,5470,5033,1,5091,3108,5095, - 2022,5311,3737,369,5091,2695,5095,2022,1,3737, - 1,348,5003,2695,784,2022,2463,3737,5644,45, - 5196,533,166,5311,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1800,2030,5470,5311,5003, - 5311,5349,1079,1800,5193,3058,348,39,2762,5349, - 4218,2463,121,5644,5311,5003,4240,784,5052,5311, - 3737,2381,591,50,5187,166,5311,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1800,997, - 634,5311,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,141,431,5470,5311,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,27,5741, - 5470,1,5091,3738,5095,630,4108,3737,4130,5055, - 4086,4064,4174,4152,5082,5088,5061,5064,5076,5073, - 5079,5070,5067,5058,5085,5331,2420,864,1112,5333, - 919,4387,920,5334,5332,780,5327,5329,5330,5328, - 1251,39,39,5311,1823,5311,1823,4345,1,5091, - 2695,5095,2022,2218,3737,5311,5311,5003,138,784, - 5052,234,3737,5190,5205,2652,5205,512,5311,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1800,1881,5470,5311,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5311,2291,5470,5311,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 289,5603,5470,5311,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,36,5241,5470,5311,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5311,5603,5470,5311,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,397,5346,5470,143,5003, - 3738,784,630,4108,3737,4130,557,4086,4064,4174, - 4152,5574,5572,5581,5580,5576,5577,5575,5578,5579, - 5582,5573,5331,2420,864,1112,5333,919,4387,920, - 5334,5332,780,5327,5329,5330,5328,1251,39,39, - 1,5091,3738,5095,630,4108,3737,4130,5055,4086, - 4064,4174,4152,5082,5088,5061,5064,5076,5073,5079, - 5070,5067,5058,5085,5331,2420,864,1112,5333,919, - 4387,920,5334,5332,780,5327,5329,5330,5328,1251, - 39,39,39,5003,3738,784,630,4108,3737,4130, - 557,4086,4064,4174,4152,5574,5572,5581,5580,5576, - 5577,5575,5578,5579,5582,5573,5331,2420,864,1112, - 5333,919,4387,920,5334,5332,780,5327,5329,5330, - 5328,1251,123,5311,2820,1,5217,116,5214,1, - 2463,4848,5644,5311,3405,1,115,5311,1,3731, - 2762,5311,5311,4535,396,3705,5311,5039,1,5311, - 2762,4565,127,5319,39,5003,3738,784,630,4108, - 3737,4130,557,4086,4064,4174,4152,5574,5572,5581, - 5580,5576,5577,5575,5578,5579,5582,5573,5331,2420, - 864,1112,5333,919,4387,920,5334,5332,780,5327, - 5329,5330,5328,1251,1,224,1336,365,5775,5769, - 1800,5773,508,5767,5768,5798,5799,365,2624,2715, - 1800,76,5311,3861,344,4218,344,3705,365,5776, - 344,4240,5376,5377,4218,5319,431,39,365,5349, - 4240,5311,37,5220,1628,1629,5220,5565,2624,2715, - 5568,5651,5652,5562,5569,5541,5567,5566,5563,5564, - 5311,5542,5778,126,397,5098,1167,5349,125,5311, - 5779,128,5800,5777,130,37,129,5311,37,5220, - 4837,5741,114,2251,364,350,124,2800,5311,3331, - 5789,5788,5801,5770,5771,5794,5795,2108,5311,5792, - 5793,5772,5774,5796,5797,5802,5782,5783,5784,5780, - 5781,5790,5791,5786,5785,5787,5311,30,1336,39, - 5775,5769,577,5773,5311,5767,5768,5798,5799,2585, - 5347,1,2585,2026,2585,1066,5311,5015,1,5280, - 5199,5776,5202,37,5220,307,5280,1800,3058,2624, - 2715,3506,2685,5617,2624,2715,1628,1629,5311,5003, - 5311,5349,2531,792,2447,2531,792,2531,792,5311, - 4218,4889,2624,2715,5778,508,4240,5311,1167,4283, - 360,5311,5779,4410,5800,5777,3050,421,5283,105, - 3412,4411,2684,3050,4839,5283,5311,5311,5347,5311, - 2975,5311,5789,5788,5801,5770,5771,5794,5795,5311, - 1321,5792,5793,5772,5774,5796,5797,5802,5782,5783, - 5784,5780,5781,5790,5791,5786,5785,5787,39,5003, - 3738,784,630,4108,3737,4130,557,4086,4064,4174, - 4152,5574,5572,5581,5580,5576,5577,5575,5578,5579, - 5582,5573,5331,2420,864,1112,5333,919,4387,920, - 5334,5332,780,5327,5329,5330,5328,1251,5311,1838, - 322,5311,5262,5670,5311,2452,5311,5234,5311,5237, - 47,5247,37,5220,5311,50,30,5311,1707,449, - 41,3705,39,5003,3738,784,630,4108,3737,4130, - 557,4086,4064,4174,4152,5574,5572,5581,5580,5576, - 5577,5575,5578,5579,5582,5573,5331,2420,864,1112, - 5333,919,4387,920,5334,5332,780,5327,5329,5330, - 5328,5347,1800,5347,3415,5244,2684,5347,5311,955, - 2464,1,5319,1707,5006,779,377,5009,5030,5311, - 2466,3145,5311,8930,1925,39,5003,3738,784,630, - 4108,3737,4130,557,4086,4064,4174,4152,5574,5572, - 5581,5580,5576,5577,5575,5578,5579,5582,5573,5331, - 2420,864,1112,5333,919,4387,920,5334,5332,780, - 5327,5329,5330,5328,39,5003,3738,784,630,4108, - 3737,4130,557,4086,4064,4174,4152,5574,5572,5581, - 5580,5576,5577,5575,5578,5579,5582,5573,5331,2420, - 864,1112,5333,919,4387,920,5334,5332,780,5327, - 5329,5330,5328,1251,5672,279,5311,5277,4481,5311, - 5311,4809,5311,5311,3305,3409,5311,5311,4543,3676, - 5311,5311,4817,3359,5311,5311,3407,4907,5311,8930, - 5311,3359,5311,5311,3452,5311,5311,5311,5317,39, - 5003,4808,784,630,4108,3737,4130,557,4086,4064, - 4174,4152,5574,5572,5581,5580,5576,5577,5575,5578, - 5579,5582,5573,5331,2420,864,1112,5333,919,4387, - 920,5334,5332,780,5327,5329,5330,5328,39,5003, - 3738,784,630,4108,3737,4130,557,4086,4064,4174, - 4152,5574,5572,5581,5580,5576,5577,5575,5578,5579, - 5582,5573,5331,2420,864,1112,5333,919,4387,920, - 5334,5332,780,5327,5329,5330,5328,39,5003,3738, - 784,630,4108,3737,4130,557,4086,4064,4174,4152, - 5574,5572,5581,5580,5576,5577,5575,5578,5579,5582, - 5573,5331,2420,864,1112,5333,919,4387,920,5334, - 5332,780,5327,5329,5330,5328,5311,5021,529,5349, - 5311,5311,387,5311,815,5311,5311,49,405,5574, - 5572,5581,5580,5576,5577,5575,5578,5579,5582,5573, - 5311,5311,5311,5311,3531,1,425,1,5289,226, - 5289,226,226,226,226,5311,5311,3121,5565,5311, - 1,5568,5651,5652,5562,5569,5541,5567,5566,5563, - 5564,5250,5542,5709,518,576,5710,5711,238,5173, - 5184,5177,1058,5320,2653,5311,815,5311,3056,9518, - 226,5164,5170,5143,5146,5158,5155,5161,5152,5149, - 5140,5167,5286,508,5311,3277,5311,5818,4440,5761, - 2916,1384,572,5319,3169,290,2655,288,372,370, - 5128,5806,443,5119,5113,5110,5137,5116,5107,5122, - 5125,5134,5131,3220,5104,5709,5311,576,5710,5711, - 1,5289,226,5289,226,226,226,226,1,5289, - 226,5289,226,226,226,226,423,5712,417,503, - 5311,1,3219,1,3312,501,1,5289,226,5289, - 226,226,226,226,1,5289,226,5289,226,226, - 226,226,9518,226,1936,1208,5,1121,1163,3359, - 9518,226,657,178,5311,5286,5311,444,5311,5311, - 35,5311,5311,5286,1384,572,2068,3169,9518,226, - 1,218,1384,572,5806,3169,9518,226,1,218, - 5311,5286,5806,723,1366,5311,1,2124,4876,5286, - 1384,572,5319,3169,4877,5318,5299,217,1384,572, - 5806,3169,5311,5311,37,218,188,314,5806,1, - 5289,226,5289,226,226,226,226,1,5289,226, - 5289,226,226,226,226,2839,5492,3666,3571,1581, - 5311,5311,5491,3515,3433,1,5289,226,5289,226, - 226,226,226,1,5289,226,5289,226,226,226, - 226,9518,226,5311,1581,505,5311,5311,525,9518, - 226,5311,5311,1,5286,3566,5302,5311,5311,5311, - 5311,3651,5286,1384,572,4457,3169,9518,226,5311, - 218,1384,572,5806,3169,9518,226,3163,5311,5311, - 5286,5806,5311,5311,5311,5311,5311,5311,5286,1384, - 572,5311,3169,5311,5311,5311,5311,1384,572,5806, - 3169,5311,5311,5311,5311,5311,5311,5806,5311,5311, - 5311,5311,1894,5311,664,5311,5308 + 1,1,1,1,1,1,5462,5462,5624,5462, + 5204,5200,4465,5208,1900,5407,2921,5404,5462,351, + 42,42,3375,5503,1,1365,5462,5798,1,5204, + 5200,2741,5208,1900,5462,2921,167,169,5462,1, + 1,1,1,1,1,1,1,1,1,1, + 169,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,2045,3794,5624,1814,3919,2617,5462,5112, + 5109,5462,870,5161,1814,2921,5462,5479,5480,167, + 5462,5462,1,1,1,1,1,1,1,1, + 1,1,1,169,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,2029,575,5462,1, + 1,1,1,1,1,1,1,1,1,1, + 3474,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5462,5462,5624,5462,1,1,1,1, + 1,1,1,1,1,1,1,127,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5462, + 3901,5624,1,5204,5200,3034,5208,2771,3549,2921, + 3572,5164,3518,3495,5462,3618,3595,5191,5197,5170, + 5173,5185,5182,5188,5179,5176,5167,5194,5485,927, + 680,776,5487,727,632,735,5488,5486,678,5481, + 5483,5484,5482,1254,42,42,1,5204,5200,4465, + 5208,1900,5462,2921,5462,795,2709,3892,5462,5462, + 1,1,1,1,1,1,1,1,1,1, + 1,513,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5462,5462,5624,5462,1,1,1, + 1,1,1,1,1,1,1,1,4954,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5462,5462,5624,5462,1,1,1,1,1,1, + 1,1,1,1,1,5462,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5462,5462,5624, + 5462,1,1,1,1,1,1,1,1,1, + 1,1,5462,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5462,5462,5624,5462,1,1, + 1,1,1,1,1,1,1,1,1,5462, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5462,5462,5624,5462,1,1,1,1,1, + 1,1,1,1,1,1,5462,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5462,5462, + 5624,42,5112,5109,3034,870,2771,3549,2921,3572, + 578,3518,3495,5470,3618,3595,5728,5726,5735,5734, + 5730,5731,5729,5732,5733,5736,5727,5485,927,680, + 776,5487,727,632,735,5488,5486,678,5481,5483, + 5484,5482,1254,5462,1,5331,5331,5462,5328,5462, + 1365,1,5798,5462,3375,5468,368,1,5204,5200, + 2741,5208,1900,347,2921,4029,40,5334,5334,292, + 5479,5480,1752,5469,42,5112,5109,3034,870,2771, + 3549,2921,3572,578,3518,3495,5470,3618,3595,5728, + 5726,5735,5734,5730,5731,5729,5732,5733,5736,5727, + 5485,927,680,776,5487,727,632,735,5488,5486, + 678,5481,5483,5484,5482,1254,2636,1814,5467,368, + 347,347,2645,1814,5501,5462,347,1,5204,5200, + 5383,5208,5389,1,5386,5462,42,391,4029,368, + 5503,5462,1365,5462,5798,3085,5469,146,5112,5109, + 3034,870,2771,3549,2921,3572,578,3518,3495,5462, + 3618,3595,5728,5726,5735,5734,5730,5731,5729,5732, + 5733,5736,5727,5485,927,680,776,5487,727,632, + 735,5488,5486,678,5481,5483,5484,5482,1254,42, + 42,1,5204,5200,3034,5208,2771,3549,2921,3572, + 5164,3518,3495,162,3618,3595,5191,5197,5170,5173, + 5185,5182,5188,5179,5176,5167,5194,5485,927,680, + 776,5487,727,632,735,5488,5486,678,5481,5483, + 5484,5482,1254,42,42,42,5112,5109,3034,870, + 2771,3549,2921,3572,578,3518,3495,5466,3618,3595, + 5728,5726,5735,5734,5730,5731,5729,5732,5733,5736, + 5727,5485,927,680,776,5487,727,632,735,5488, + 5486,678,5481,5483,5484,5482,42,5112,5109,3034, + 870,2771,3549,2921,3572,578,3518,3495,5462,3618, + 3595,5728,5726,5735,5734,5730,5731,5729,5732,5733, + 5736,5727,5485,927,680,776,5487,727,632,735, + 5488,5486,678,5481,5483,5484,5482,1254,1,5204, + 5200,4465,5208,1900,534,2921,5462,5462,79,4528, + 318,2014,1,5204,5200,4465,5208,1900,5462,2921, + 4029,5530,5531,3728,40,5334,5334,5462,5354,5351, + 5465,42,5112,5109,3034,870,2771,3549,2921,3572, + 578,3518,3495,318,3618,3595,5728,5726,5735,5734, + 5730,5731,5729,5732,5733,5736,5727,5485,927,680, + 776,5487,727,632,735,5488,5486,678,5481,5483, + 5484,5482,1254,1,2948,5462,540,33,5927,5921, + 5462,5925,3128,5919,5920,5501,5950,5951,440,1, + 1,38,1,5462,5130,5145,5130,5462,5112,5109, + 5928,870,1900,5145,2921,5472,441,42,42,397, + 5503,579,5325,5148,5322,1459,1510,97,1,1, + 5462,1,310,5337,1148,5337,100,42,42,144, + 5503,5771,5401,5930,5398,4962,5145,5115,5471,908, + 773,1,5931,5952,5929,5462,5112,5109,131,870, + 1900,5462,2921,368,4690,133,39,5368,5365,5462, + 5462,5941,5940,5953,5922,5923,5946,5947,132,509, + 5944,5945,5924,5926,5948,5949,5954,5934,5935,5936, + 5932,5933,5942,5943,5938,5937,5939,5462,325,1762, + 540,5395,5927,5921,512,5925,373,5919,5920,33, + 5950,5951,5462,5479,5480,5462,5361,5357,2668,5462, + 5301,5298,1,5462,5928,2668,368,5127,432,42, + 42,5413,5503,406,5313,50,5374,5374,2668,1459, + 1510,2233,398,5479,5480,5377,368,5316,1,5462, + 5462,2612,2584,3377,3641,1153,5462,5930,2612,2584, + 5468,3641,1153,908,1814,5462,5931,5952,5929,509, + 4883,2612,2584,5501,827,5893,5462,1166,5380,3923, + 3381,5416,422,5462,5462,5941,5940,5953,5922,5923, + 5946,5947,5970,5371,5944,5945,5924,5926,5948,5949, + 5954,5934,5935,5936,5932,5933,5942,5943,5938,5937, + 5939,42,5112,5109,3034,870,2771,3549,2921,3572, + 578,3518,3495,5467,3618,3595,5728,5726,5735,5734, + 5730,5731,5729,5732,5733,5736,5727,5485,927,680, + 776,5487,727,632,735,5488,5486,678,5481,5483, + 5484,5482,3764,4028,5462,9659,9594,5462,9659,9594, + 5462,40,5334,5334,3158,42,5112,5109,3034,870, + 2771,3549,2921,3572,578,3518,3495,1332,3618,3595, + 5728,5726,5735,5734,5730,5731,5729,5732,5733,5736, + 5727,5485,927,680,776,5487,727,632,735,5488, + 5486,678,5481,5483,5484,5482,1254,42,5112,5109, + 4901,870,2771,3549,2921,3572,578,3518,3495,5501, + 3618,3595,5728,5726,5735,5734,5730,5731,5729,5732, + 5733,5736,5727,5485,927,680,776,5487,727,632, + 735,5488,5486,678,5481,5483,5484,5482,42,5112, + 5109,3034,870,2771,3549,2921,3572,578,3518,3495, + 5462,3618,3595,5728,5726,5735,5734,5730,5731,5729, + 5732,5733,5736,5727,5485,927,680,776,5487,727, + 632,735,5488,5486,678,5481,5483,5484,5482,42, + 5112,5109,3034,870,2771,3549,2921,3572,578,3518, + 3495,5462,3618,3595,5728,5726,5735,5734,5730,5731, + 5729,5732,5733,5736,5727,5485,927,680,776,5487, + 727,632,735,5488,5486,678,5481,5483,5484,5482, + 5462,5112,5109,5462,5503,367,4217,53,291,861, + 108,5480,5462,4671,5462,5728,5726,5735,5734,5730, + 5731,5729,5732,5733,5736,5727,181,5462,5462,5462, + 5462,5462,3229,1,5462,5462,5462,5462,5441,5462, + 5913,5472,5468,5470,5719,5462,5470,5722,5805,5806, + 5716,5723,5695,5721,5720,5717,5718,5696,1,5861, + 5462,620,5862,5863,241,5284,5280,5480,5288,450, + 5419,5441,53,861,5471,3040,5479,424,2769,5271, + 5277,5250,5253,5265,5262,5268,5259,5256,5247,5274, + 1,5425,5425,229,5425,229,229,229,229,4443, + 4984,1,229,5469,957,5467,5469,2762,5235,5864, + 5413,5226,5220,5217,5244,5223,5214,5229,5232,5241, + 5238,5211,5462,5861,1,620,5862,5863,44,5118, + 5469,390,5479,1,9859,229,526,1,5425,5425, + 229,5425,229,229,229,229,530,2386,5422,5453, + 3545,5462,444,282,2296,2306,5410,823,3461,3381, + 5416,5462,1,5425,5425,229,5425,229,229,229, + 229,5462,5958,5462,5453,445,5462,418,504,4687, + 3187,9859,229,5462,5462,502,4909,3407,5139,5462, + 5462,5295,3577,509,5462,5422,5462,5462,5462,526, + 5462,4281,2306,4322,823,3461,9859,229,380,221, + 1,5425,5425,229,5425,229,229,229,229,5958, + 5422,2758,5456,3371,5462,788,5462,2306,38,823, + 3461,3026,519,5462,221,1,5425,5425,229,5425, + 229,229,229,229,5958,2814,2084,5453,2139,4964, + 5462,317,3218,4129,9859,229,4974,5462,5462,5462, + 4931,4363,5039,5646,5462,4064,506,3927,5422,191, + 2,5462,1,5462,5462,2306,5462,823,3461,9859, + 229,5462,220,1,5425,5425,229,5425,229,229, + 229,229,5958,5422,5462,5453,5462,5645,3411,1805, + 2306,3718,823,3461,1805,5462,5462,221,1,5425, + 5425,229,5425,229,229,229,229,5958,5462,5462, + 229,3358,5462,5462,5462,3718,5462,9859,229,5462, + 40,5462,5462,5462,5462,1908,5462,660,5462,5462, + 5462,5422,5462,5462,5462,5462,5462,5462,2306,3718, + 823,3461,9859,229,5462,221,1,5425,5425,229, + 5425,229,229,229,229,5958,5422,5462,229,5462, + 5462,5462,5462,2306,5462,823,3461,5462,5462,5462, + 5462,1,5425,5425,229,5425,229,229,229,229, + 5958,5459,5462,229,5462,5462,5462,5462,5462,5462, + 9859,229,5462,5462,5462,5462,5462,5462,5462,5462, + 5462,5462,5462,5462,5422,5462,5462,5462,5462,5462, + 5462,2306,5462,823,3461,9859,229,5462,5462,5462, + 5462,5462,5462,5462,5462,5462,5462,5462,5958,5422, + 5462,5462,5462,5462,5462,5462,2306,5462,823,3461, + 5462,5462,5462,5462,5462,5462,5462,5462,5462,5462, + 5462,5462,5462,5958 }; }; public final static char termAction[] = TermAction.termAction; @@ -1856,59 +1943,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Asb { public final static char asb[] = {0, - 1023,6,1020,226,5,13,783,566,566,566, - 566,75,783,360,566,829,360,1060,209,1062, - 227,227,227,227,227,227,227,227,227,976, - 982,987,984,991,989,996,994,998,997,999, - 78,1000,226,209,47,47,47,47,126,85, - 19,358,47,17,450,360,360,19,859,360, - 450,450,442,210,900,46,650,76,268,274, - 209,960,960,692,692,85,1023,227,227,227, - 227,227,227,227,227,227,227,227,227,227, - 227,227,227,227,227,227,226,226,226,226, - 226,226,226,226,226,226,226,1023,227,450, - 450,898,898,898,898,186,450,19,824,947, - 958,551,958,547,958,1,958,942,958,958, - 75,126,17,17,19,227,824,277,507,459, - 458,319,75,1062,17,46,226,264,649,450, - 263,126,265,263,450,17,984,984,982,982, - 982,989,989,989,989,987,987,994,991,991, - 997,996,998,576,999,783,783,783,783,126, - 126,898,368,897,358,126,354,143,126,550, - 186,549,269,551,544,126,126,126,186,898, - 442,17,1014,450,509,511,126,650,227,47, - 980,408,450,76,126,126,265,650,226,1023, - 1023,1023,1023,783,783,210,827,354,143,550, - 270,550,186,550,544,544,126,186,126,450, - 602,452,601,511,186,264,450,980,824,649, - 126,76,264,450,450,450,450,85,85,354, - 353,555,126,143,576,187,122,568,143,550, - 550,466,126,544,555,553,554,126,578,226, - 599,599,128,128,126,505,824,473,450,126, - 981,981,980,1023,408,266,76,450,450,354, - 650,566,263,587,569,260,783,557,469,126, - 555,227,126,578,226,226,511,126,650,450, - 509,452,578,330,85,227,17,126,266,264, - 157,264,550,550,260,1019,824,126,560,227, - 576,136,466,74,126,598,511,578,450,17, - 126,1020,157,264,550,551,75,569,260,649, - 227,227,75,598,450,598,897,566,8,8, - 1020,551,191,557,126,783,126,783,591,598, - 157,699,157,896,896,605,192,75,126,85, - 126,512,591,317,655,776,783,2,734,157, - 47,47,605,191,576,227,576,1020,783,783, - 783,192,783,126,741,1020,1020,776,126,551, - 190,450,449,593,612,898,776,317,698,551, - 607,551,75,897,140,783,576,192,209,209, - 208,610,209,1020,1020,776,406,605,47,593, - 699,698,699,1020,135,1019,450,698,698,75, - 698,126,542,473,450,260,450,741,1020,783, - 450,605,698,226,786,260,1020,555,698,698, - 126,698,126,8,450,450,343,192,406,192, - 1020,741,1023,192,189,555,450,785,555,126, - 555,1020,896,551,551,933,226,190,1022,1020, - 450,785,1020,263,192,450,1022,1020,554,192, - 450,785,192 + 1081,49,773,820,47,51,909,554,554,554, + 554,114,909,964,554,410,964,1118,803,1120, + 821,821,821,821,821,821,821,821,821,729, + 735,740,737,744,742,749,747,751,750,752, + 169,753,820,803,86,86,86,86,860,176, + 58,961,86,294,44,964,964,58,441,964, + 44,44,35,804,648,85,595,116,243,250, + 803,712,712,949,949,176,1081,821,821,821, + 821,821,821,821,821,821,821,821,821,821, + 821,821,821,821,821,821,820,820,820,820, + 820,820,820,820,820,820,820,1081,821,44, + 44,480,480,480,480,165,44,58,1073,699, + 710,537,710,532,710,534,710,694,710,710, + 114,860,294,294,58,821,1073,253,371,361, + 360,307,114,1120,294,85,820,858,594,44, + 857,860,859,857,44,294,737,737,735,735, + 735,742,742,742,742,740,740,747,744,744, + 750,749,751,1031,752,909,909,909,909,860, + 860,480,973,479,961,860,957,121,860,247, + 165,234,245,537,238,860,860,860,165,480, + 35,294,767,44,373,375,860,595,821,86, + 733,1,44,116,860,860,859,595,820,1081, + 1081,1081,1081,909,909,804,1077,957,121,247, + 246,247,165,247,238,238,860,165,860,44, + 365,353,364,375,165,858,44,733,1073,594, + 860,116,858,44,44,44,44,176,176,957, + 956,541,860,121,1031,167,214,1021,121,247, + 247,1013,860,238,541,539,540,860,297,820, + 362,362,221,221,860,369,1073,497,44,860, + 734,734,733,1081,1,219,116,44,44,957, + 595,554,857,343,1023,854,909,544,1017,860, + 541,821,860,297,820,820,375,860,595,44, + 373,353,297,318,176,821,294,860,219,858, + 136,858,247,247,854,772,1073,860,547,821, + 1031,229,1013,113,860,489,375,297,44,294, + 860,773,136,858,247,537,114,1023,854,594, + 821,821,114,489,44,489,479,554,347,347, + 773,537,784,544,860,909,860,909,482,489, + 136,604,136,478,478,530,785,114,860,176, + 860,376,482,601,911,900,909,535,640,136, + 86,86,530,784,1031,821,1031,773,909,909, + 909,785,909,860,865,773,773,900,860,537, + 783,44,43,484,556,480,900,601,603,537, + 691,537,114,479,118,909,776,1031,785,803, + 803,801,863,803,773,773,900,1011,530,86, + 484,604,603,604,773,228,772,44,603,603, + 114,603,860,408,497,44,854,44,865,773, + 909,44,530,603,820,1035,854,773,541,603, + 603,860,603,860,347,44,44,331,785,1011, + 785,773,865,1081,785,782,541,44,1033,541, + 860,541,773,478,537,537,681,820,783,1079, + 773,44,1033,773,857,785,44,1079,773,540, + 785,44,1033,785 }; }; public final static char asb[] = Asb.asb; @@ -1916,113 +2003,119 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Asr { public final static byte asr[] = {0, - 3,1,63,0,43,119,0,66,69,68, - 1,0,70,72,43,68,113,0,26,40, - 27,28,41,6,29,30,31,32,39,33, - 34,35,36,37,24,11,12,7,5,9, - 10,4,25,66,38,2,48,13,14,57, - 46,15,59,49,42,16,50,51,17,18, - 52,53,19,20,54,60,56,8,61,21, - 22,47,23,45,1,3,0,66,70,93, - 68,113,71,43,72,13,14,26,40,15, - 27,28,16,17,18,41,29,19,20,30, - 31,32,39,33,34,21,22,23,35,36, - 37,24,2,11,12,7,5,9,10,25, - 38,6,4,3,8,1,0,73,63,66, - 70,93,72,62,2,68,43,69,0,67, - 65,115,74,6,116,117,118,64,2,7, - 5,4,70,71,43,44,48,13,14,57, - 46,15,59,49,42,16,50,51,17,18, - 52,53,19,20,54,60,56,8,61,21, - 45,22,47,23,3,1,55,0,115,120, - 71,73,64,65,67,76,78,84,82,75, - 80,81,83,85,63,77,79,43,44,59, - 57,60,61,48,53,54,42,52,51,45, - 49,46,47,50,56,39,40,41,8,27, - 31,29,26,34,14,23,13,19,17,18, - 20,21,16,15,22,35,38,36,37,24, - 33,28,32,11,12,9,10,25,30,7, - 5,2,3,6,1,4,0,43,3,58, - 63,70,0,58,3,0,40,41,113,2, - 8,27,31,29,26,34,14,23,13,19, - 17,18,20,21,16,15,22,35,38,36, - 37,33,28,32,4,6,3,11,12,7, - 5,9,10,25,30,1,24,0,13,14, - 15,16,17,18,19,20,21,22,23,48, - 46,49,42,50,51,52,53,54,56,45, - 47,43,72,6,1,62,2,7,5,4, - 3,0,39,46,6,47,4,1,3,73, - 63,70,93,113,72,71,43,62,2,114, - 94,101,88,11,12,7,5,9,10,89, - 90,86,87,58,91,92,95,96,97,98, - 99,100,112,102,103,104,105,106,107,108, - 109,110,111,66,68,69,0,94,88,9, - 10,89,90,86,87,58,91,92,95,96, - 97,98,99,100,112,70,93,69,102,103, - 104,105,106,107,108,109,110,111,113,71, - 43,66,1,7,5,3,2,62,68,72, - 0,7,5,6,4,3,1,2,66,93, - 69,68,72,62,0,1,45,3,116,117, - 118,0,48,13,14,57,46,15,59,49, - 42,16,50,51,17,18,52,53,19,20, - 54,60,56,8,61,21,45,22,47,23, - 1,3,93,0,4,6,2,62,5,7, - 93,48,13,14,46,15,59,49,42,16, - 50,51,17,18,52,53,19,20,54,60, - 56,8,61,21,45,22,47,23,1,3, - 72,57,0,1,71,0,55,1,3,70, - 63,0,69,68,71,0,63,68,0,70, - 62,2,69,68,43,58,0,43,4,6, - 2,1,3,5,7,70,0,46,39,47, - 66,93,69,68,72,0,63,70,73,0, - 46,47,73,2,63,70,43,39,66,69, - 68,72,93,0,115,0,63,69,0,75, - 0,67,48,13,14,57,46,15,59,49, - 74,42,16,50,51,17,18,52,65,53, - 19,20,54,60,56,8,61,21,64,45, - 22,47,23,2,7,3,43,63,5,6, - 1,4,55,0,14,57,46,15,59,49, - 16,50,51,17,18,52,53,19,20,54, - 60,56,8,61,21,45,22,47,23,13, - 48,2,7,5,43,64,65,67,74,42, - 58,6,3,55,4,1,0,71,14,57, - 46,15,59,49,16,50,51,17,18,52, - 53,19,20,54,60,56,61,21,45,22, - 47,23,13,48,2,7,5,43,64,67, - 74,42,55,6,1,4,3,8,65,0, - 13,14,26,40,15,27,28,16,17,18, - 41,29,19,20,30,31,32,39,33,34, - 8,21,22,23,35,36,37,24,11,12, - 9,10,25,38,44,7,5,43,4,6, - 1,3,2,0,71,40,41,39,11,12, - 9,10,4,25,30,2,6,35,38,36, - 37,24,33,28,32,14,23,13,19,17, - 18,20,21,16,15,22,8,27,31,29, - 26,34,63,1,7,3,5,0,48,13, - 14,57,46,15,59,49,42,16,50,51, - 17,18,52,53,19,20,54,60,56,8, - 61,21,45,22,47,23,1,3,41,40, - 9,10,5,89,90,97,7,98,4,25, - 58,105,106,102,103,104,110,109,111,87, - 86,107,108,95,96,91,92,99,100,11, - 12,88,101,2,62,69,68,66,0,40, - 41,11,12,9,10,25,30,35,38,36, - 37,24,33,28,32,14,23,13,19,17, - 18,20,21,16,15,22,8,27,31,29, - 26,34,7,5,2,62,4,6,1,3, - 0,8,59,57,60,61,14,23,13,19, - 17,18,20,21,16,15,22,73,63,3, - 4,1,47,45,56,54,53,6,52,51, - 50,42,49,46,48,114,101,11,12,62, - 2,94,88,5,89,90,9,10,87,86, - 58,91,92,95,96,7,97,98,99,66, - 93,72,69,102,103,104,105,106,107,108, - 109,110,111,70,113,71,100,112,68,43, - 0,72,13,14,26,15,27,28,16,17, - 18,29,19,20,30,31,32,39,33,34, - 8,21,22,23,35,36,37,24,2,11, - 12,7,5,9,10,25,3,38,44,4, - 6,1,41,40,0 + 96,90,10,11,91,92,88,89,60,93, + 94,97,98,99,100,101,102,114,73,95, + 71,104,105,106,107,108,109,110,111,112, + 113,115,72,45,69,1,2,8,6,4, + 3,66,70,75,12,0,12,45,121,0, + 12,73,115,75,45,70,0,28,42,29, + 30,43,7,31,32,33,34,41,35,36, + 37,38,39,26,13,14,8,6,10,11, + 5,27,69,40,3,50,15,16,59,48, + 17,61,51,44,18,52,53,19,20,54, + 55,21,22,56,62,57,9,63,23,24, + 49,25,47,1,2,4,0,68,67,117, + 82,7,118,119,120,65,12,3,8,6, + 5,73,72,45,46,50,15,16,59,48, + 17,61,51,44,18,52,53,19,20,54, + 55,21,22,56,62,57,9,63,23,47, + 24,49,25,4,1,2,58,0,69,73, + 95,70,115,72,45,12,75,15,16,28, + 42,17,29,30,18,19,20,43,31,21, + 22,32,33,34,41,35,36,23,24,25, + 37,38,39,26,3,13,14,8,6,10, + 11,27,40,7,1,2,4,9,5,0, + 74,64,69,73,95,75,66,3,12,70, + 45,71,0,4,64,73,0,1,2,12, + 72,0,12,45,4,60,64,73,0,60, + 4,0,42,43,3,9,29,33,31,28, + 36,16,25,15,21,19,20,22,23,18, + 17,24,37,40,38,39,26,35,30,34, + 5,7,4,13,14,8,6,10,11,27, + 32,1,2,115,12,0,48,41,49,12, + 69,95,71,70,75,0,15,16,17,18, + 19,20,21,22,23,24,25,50,48,51, + 44,52,53,54,55,56,57,47,49,45, + 12,75,7,1,2,66,3,8,6,5, + 4,0,64,73,74,0,69,71,70,1, + 2,0,8,6,7,5,4,1,2,3, + 66,69,71,70,12,75,95,0,5,7, + 3,66,6,8,95,50,15,16,48,17, + 61,51,44,18,52,53,19,20,54,55, + 21,22,56,62,57,9,63,23,47,24, + 49,25,1,2,4,75,12,59,0,50, + 15,16,59,48,17,61,51,44,18,52, + 53,19,20,54,55,21,22,56,62,57, + 9,63,23,47,24,49,25,1,2,4, + 43,42,10,11,6,91,92,99,8,100, + 5,27,60,107,108,104,105,106,112,111, + 113,89,88,109,110,97,98,93,94,101, + 102,13,14,90,103,3,66,71,70,69, + 0,48,49,74,3,64,73,45,41,12, + 69,95,71,70,75,0,50,15,16,59, + 48,17,61,51,44,18,52,53,19,20, + 54,55,21,22,56,62,57,9,63,23, + 47,24,49,25,1,2,4,95,0,117, + 0,58,73,4,1,2,64,0,71,70, + 72,12,0,64,70,0,73,12,66,3, + 71,70,45,60,0,68,50,15,16,59, + 48,17,61,51,82,44,18,52,53,19, + 20,54,67,55,21,22,56,62,57,9, + 63,23,65,47,24,49,25,12,3,8, + 4,45,64,6,7,1,2,5,58,0, + 26,0,72,59,48,17,61,51,18,52, + 53,19,20,54,55,21,22,56,62,57, + 63,23,47,24,49,25,16,15,50,12, + 3,8,6,45,65,68,82,44,58,7, + 1,2,5,4,9,67,0,42,43,13, + 14,10,11,27,32,37,40,38,39,26, + 35,30,34,16,25,15,21,19,20,22, + 23,18,17,24,9,29,33,31,28,36, + 8,6,3,66,5,7,1,2,4,0, + 64,71,0,9,61,59,62,63,16,25, + 15,21,19,20,22,23,18,17,24,74, + 64,5,4,2,1,49,47,57,56,55, + 7,54,53,52,44,51,48,50,116,103, + 13,14,66,3,96,90,6,91,92,10, + 11,89,88,60,93,94,97,98,8,99, + 100,101,69,95,75,71,104,105,106,107, + 108,109,110,111,112,113,73,115,72,102, + 114,70,45,12,0,82,118,119,120,58, + 73,117,122,72,74,65,67,68,77,79, + 86,84,76,81,83,85,87,64,78,80, + 12,45,46,61,59,62,63,50,55,56, + 44,54,53,47,51,48,49,52,57,41, + 42,43,9,29,33,31,28,36,16,25, + 15,21,19,20,22,23,18,17,24,37, + 40,38,39,26,35,30,34,13,14,10, + 11,27,32,8,6,3,4,7,5,1, + 2,0,76,0,15,16,28,42,17,29, + 30,18,19,20,43,31,21,22,32,33, + 34,41,35,36,9,23,24,25,37,38, + 39,26,13,14,10,11,27,40,46,12, + 8,6,45,5,7,1,2,4,3,0, + 59,48,17,61,51,18,52,53,19,20, + 54,55,21,22,56,62,57,9,63,23, + 47,24,49,25,16,15,50,12,3,8, + 6,45,65,67,68,82,44,60,7,4, + 58,5,1,2,0,41,48,7,49,5, + 1,2,4,74,12,64,73,95,115,75, + 72,45,66,3,116,96,103,90,13,14, + 8,6,10,11,91,92,88,89,60,93, + 94,97,98,99,100,101,102,114,104,105, + 106,107,108,109,110,111,112,113,69,70, + 71,0,1,2,47,4,118,119,120,0, + 45,12,5,7,3,1,2,4,6,8, + 73,0,12,72,42,43,41,13,14,10, + 11,5,27,32,3,7,37,40,38,39, + 26,35,30,34,16,25,15,21,19,20, + 22,23,18,17,24,9,29,33,31,28, + 36,64,1,2,8,4,6,0,12,75, + 15,16,28,17,29,30,18,19,20,31, + 21,22,32,33,34,41,35,36,9,23, + 24,25,37,38,39,26,3,13,14,8, + 6,10,11,27,4,40,46,5,7,1, + 2,43,42,0 }; }; public final static byte asr[] = Asr.asr; @@ -2030,59 +2123,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Nasb { public final static char nasb[] = {0, - 132,11,189,35,11,11,11,11,11,11, - 11,148,11,11,11,208,11,21,212,129, - 35,35,19,35,35,35,35,35,35,11, + 158,11,184,24,11,11,11,11,11,11, + 11,130,11,11,11,132,11,109,141,147, + 24,24,107,24,24,24,24,24,24,11, 11,11,11,11,11,11,11,11,11,11, - 35,11,35,212,179,179,179,179,129,175, - 108,97,4,82,235,11,11,108,210,11, - 235,235,114,1,35,48,120,11,11,11, - 212,11,11,14,14,175,161,35,35,35, - 35,35,35,35,35,35,35,35,35,35, - 35,35,35,35,35,35,35,35,35,35, - 35,35,35,35,35,35,35,161,35,235, - 235,11,11,11,11,155,235,33,147,222, - 223,11,223,127,223,148,223,216,11,11, - 148,129,82,82,33,35,147,78,114,60, - 60,11,148,129,82,179,164,172,56,235, - 171,10,129,171,235,82,11,11,11,11, + 24,11,24,141,213,213,213,213,147,58, + 103,53,4,71,233,11,11,103,134,11, + 233,233,82,1,24,63,115,11,11,11, + 141,11,11,15,15,58,170,24,24,24, + 24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,170,24,233, + 233,11,11,11,11,46,233,22,129,179, + 180,11,180,145,180,9,180,173,11,11, + 130,147,71,71,22,24,129,67,82,36, + 36,11,130,147,71,213,92,155,121,233, + 154,156,147,154,233,71,11,11,11,11, 11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,45, - 10,11,11,11,230,129,108,108,22,108, - 225,108,11,11,108,225,129,10,11,11, - 228,82,11,235,198,108,129,120,35,179, - 108,92,235,11,10,129,10,120,35,161, - 161,161,161,11,11,33,11,84,191,108, - 108,76,119,76,108,100,10,119,45,235, - 11,102,11,200,118,45,235,64,230,56, - 10,11,45,235,235,235,235,175,175,108, - 84,54,129,189,11,11,31,136,191,76, - 76,110,45,100,54,11,11,45,108,35, - 11,11,60,60,129,102,147,200,235,45, - 43,43,11,161,230,11,11,235,235,84, - 120,11,148,108,143,104,11,11,196,225, - 54,35,100,84,35,35,108,10,120,235, - 198,167,108,11,175,35,82,10,11,172, - 108,225,108,62,169,189,147,129,11,35, - 11,12,70,72,10,108,200,84,235,82, - 10,189,200,172,62,90,25,104,169,120, - 35,35,148,88,235,108,11,11,29,29, - 189,90,40,11,225,11,225,11,108,88, - 200,182,108,11,11,108,150,25,10,175, - 10,233,84,11,182,137,11,10,31,200, - 179,179,68,158,11,35,11,189,11,11, - 11,159,11,11,187,189,189,108,11,66, - 11,235,235,108,108,11,143,11,108,11, - 11,11,148,11,74,11,11,159,178,178, - 203,11,178,189,189,104,11,108,179,88, - 182,108,182,189,86,11,235,122,108,148, - 108,225,11,179,235,104,235,205,189,11, - 235,68,122,164,35,104,189,54,182,122, - 225,122,95,29,235,235,108,159,11,159, - 189,205,161,159,74,54,235,108,54,95, - 54,189,11,66,66,102,35,11,205,189, - 235,50,189,171,159,235,205,189,54,159, - 235,50,159 + 11,11,11,11,11,11,11,11,11,79, + 156,11,11,11,228,147,103,103,110,103, + 223,103,11,11,103,223,147,10,11,11, + 226,71,11,233,202,103,147,115,24,213, + 103,12,233,11,10,147,10,115,24,170, + 170,170,170,11,11,22,11,49,216,103, + 103,61,114,61,103,105,156,114,79,233, + 11,97,11,204,113,79,233,77,228,121, + 10,11,79,233,233,233,233,58,58,103, + 49,44,147,184,11,11,65,195,216,61, + 61,191,79,105,44,11,11,79,103,24, + 11,11,36,36,147,97,129,204,233,79, + 51,51,11,170,228,11,11,233,233,49, + 115,11,130,103,125,99,11,11,221,223, + 44,24,105,49,24,24,103,10,115,233, + 202,150,103,11,58,24,71,10,11,155, + 103,223,103,20,152,184,129,147,11,24, + 11,95,86,88,156,103,204,49,233,71, + 10,184,204,155,20,75,32,99,152,115, + 24,24,130,119,233,103,11,11,90,90, + 184,75,29,11,223,11,223,11,103,119, + 204,186,103,11,11,103,162,32,156,58, + 156,231,49,11,186,196,11,10,65,204, + 213,213,56,167,11,24,11,184,11,11, + 11,168,11,10,182,184,184,103,10,73, + 11,233,233,103,103,11,125,11,103,11, + 11,11,130,11,38,11,11,11,168,212, + 212,207,11,212,184,184,99,11,103,213, + 119,186,103,186,184,117,11,233,136,103, + 130,103,223,11,213,233,99,233,209,184, + 11,233,56,136,92,24,99,184,44,186, + 136,223,136,10,90,233,233,103,168,11, + 168,184,209,170,168,38,44,233,103,44, + 10,44,184,11,73,73,97,24,11,209, + 184,233,40,184,154,168,233,209,184,44, + 168,233,40,168 }; }; public final static char nasb[] = Nasb.nasb; @@ -2090,30 +2183,30 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Nasr { public final static char nasr[] = {0, - 2,12,7,5,150,148,122,147,146,1, - 0,186,0,5,1,7,139,0,5,12, - 7,1,2,0,167,5,166,0,113,0, - 153,0,48,4,5,7,1,12,0,4, - 65,0,140,0,3,2,0,173,0,12, - 1,7,5,65,0,66,138,137,0,69, - 0,156,0,178,0,57,0,158,0,5, - 163,131,0,116,0,114,0,12,1,7, - 5,80,0,61,0,180,0,126,0,157, - 0,4,177,0,43,0,4,189,0,124, - 0,101,100,64,5,1,7,4,0,5, - 131,187,0,100,101,4,0,136,1,66, - 0,108,4,46,70,0,2,5,1,47, - 0,4,38,172,0,39,5,1,7,4, - 155,0,1,64,7,4,96,5,0,4, - 46,38,179,0,136,66,0,65,46,71, - 4,38,0,4,28,0,101,100,64,56, - 5,7,1,0,4,103,0,117,4,48, - 0,4,46,70,81,0,4,38,39,0, - 4,46,70,67,5,130,0,5,96,23, - 4,0,46,50,4,106,0,4,48,169, - 0,4,48,38,0,1,5,122,118,119, - 120,12,93,0,1,62,0,101,100,5, - 56,0,48,4,33,0 + 3,13,8,151,149,123,148,147,6,1, + 0,5,178,0,6,2,8,140,0,157, + 0,49,5,6,8,2,13,0,5,66, + 0,168,6,167,0,70,0,117,0,13, + 2,8,6,66,0,137,67,0,62,0, + 141,0,5,190,0,159,0,5,104,0, + 115,0,174,0,154,0,13,2,8,6, + 81,0,58,0,158,0,179,0,4,3, + 0,101,102,5,0,6,164,132,0,114, + 0,5,29,0,187,0,102,101,65,6, + 2,8,5,0,125,0,6,13,8,2, + 3,0,137,2,67,0,181,0,127,0, + 67,139,138,0,2,65,8,5,97,6, + 0,5,49,170,0,109,5,47,71,0, + 5,49,39,0,3,6,1,48,0,102, + 101,65,57,6,8,2,0,5,39,173, + 0,5,47,39,180,0,66,47,72,5, + 39,0,1,6,123,119,120,121,13,94, + 0,5,39,40,0,5,47,71,82,0, + 6,132,188,0,40,6,2,8,5,156, + 0,6,97,24,5,0,47,51,5,107, + 0,118,5,49,0,5,47,71,68,6, + 131,0,1,63,0,102,101,6,57,0, + 49,5,34,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2121,19 +2214,19 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface TerminalIndex { public final static char terminalIndex[] = {0, - 115,2,32,14,11,81,10,102,12,13, - 8,9,50,54,62,70,76,77,88,89, - 104,107,109,114,15,57,63,69,86,90, - 92,96,99,101,111,112,113,46,97,60, - 80,68,122,123,106,56,108,49,66,72, - 75,78,85,91,95,100,55,20,65,93, - 103,1,3,105,79,21,48,45,34,31, - 121,120,98,67,110,51,52,58,59,61, - 71,73,74,87,94,18,19,7,16,17, - 22,23,33,5,24,25,26,27,28,29, - 6,35,36,37,38,39,40,41,42,43, - 44,30,119,4,53,82,83,84,124,64, - 116,117,118 + 115,116,2,32,14,11,81,10,102,12, + 13,117,8,9,50,54,62,70,76,77, + 88,89,104,107,109,114,15,57,63,69, + 86,90,92,96,99,101,111,112,113,46, + 97,60,80,68,122,123,106,56,108,49, + 66,72,75,78,85,91,100,95,55,20, + 65,93,103,3,105,1,79,48,21,45, + 34,121,31,98,120,110,51,52,58,59, + 61,67,71,73,74,87,94,18,19,7, + 16,17,22,23,33,5,24,25,26,27, + 28,29,6,35,36,37,38,39,40,41, + 42,43,44,30,119,4,53,82,83,84, + 124,64,118 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -2141,27 +2234,26 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 135,137,238,0,0,136,234,134,0,133, - 0,145,0,132,0,0,144,149,0,0, - 150,159,180,160,161,162,163,152,164,165, - 138,166,127,167,168,169,0,131,129,170, - 0,197,143,0,140,0,139,153,0,177, - 0,0,0,0,147,156,173,0,204,0, - 187,0,201,205,128,0,178,0,206,0, - 172,0,0,0,0,0,0,0,176,126, - 130,148,0,0,0,0,0,0,0,0, - 0,0,186,0,0,202,212,158,208,209, - 210,0,0,0,0,0,207,179,0,0, - 0,211,0,0,0,241,175,189,190,191, - 192,193,195,196,199,0,214,217,219,220, - 0,237,0,240,0,0,141,142,146,0, - 155,0,171,0,181,182,183,184,185,188, - 0,194,0,198,203,0,215,216,0,221, - 224,226,228,0,231,232,233,0,235,236, - 239,125,0,151,0,0,154,157,174,200, - 213,218,0,222,223,225,227,229,230,242, - 243,0,0,0,0,0,0,0,0,0, - 0,0 + 131,136,138,239,0,0,137,235,135,0, + 134,0,146,0,133,0,0,145,150,0, + 0,151,160,181,161,162,163,164,153,165, + 166,139,167,127,168,169,170,0,132,129, + 171,0,198,144,0,141,0,140,154,0, + 178,0,0,0,0,148,157,174,0,205, + 0,188,0,202,206,128,0,179,0,207, + 0,173,0,0,0,0,0,0,0,177, + 126,130,149,0,0,0,0,0,0,0, + 0,0,0,187,0,0,203,213,159,209, + 210,211,0,0,0,0,0,208,180,0, + 0,0,212,0,0,0,242,176,190,191, + 192,193,194,196,197,200,0,215,218,220, + 221,0,238,0,241,0,0,142,143,147, + 0,156,0,172,0,182,183,184,185,186, + 189,0,195,0,199,204,0,216,217,0, + 222,225,227,229,0,232,233,234,0,236, + 237,240,125,0,152,0,0,155,158,175, + 201,214,219,0,223,224,226,228,230,231, + 243,244,0,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2207,18 +2299,18 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeLhs { public final static char scopeLhs[] = { - 67,17,17,75,17,17,17,17,75,163, - 85,49,92,91,120,68,53,75,74,19, - 67,17,75,2,6,160,118,67,90,120, - 119,121,54,49,133,139,75,17,17,133, - 102,58,135,78,166,160,128,119,119,121, - 50,57,178,18,17,17,17,17,17,11, - 116,160,128,75,74,74,37,139,74,19, - 17,17,17,17,102,75,167,163,180,100, - 107,60,69,59,155,79,121,76,72,142, - 178,176,16,160,121,117,21,139,129,129, - 56,139,75,139,67,160,73,137,47,137, - 47,166,117,118,67,67,58 + 68,18,18,76,18,18,18,18,76,164, + 86,50,93,92,121,69,54,76,75,20, + 68,18,76,3,7,161,119,68,91,121, + 120,122,55,50,134,140,76,18,18,134, + 103,59,136,79,167,161,129,120,120,122, + 51,58,179,19,18,18,18,18,18,12, + 117,161,129,76,75,75,38,140,75,20, + 18,18,18,18,103,76,168,164,181,101, + 108,61,70,60,156,80,122,77,73,143, + 179,177,17,161,122,118,22,140,130,130, + 57,140,76,140,68,161,74,138,48,138, + 48,167,118,119,68,68,59 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2226,18 +2318,18 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeLa { public final static byte scopeLa[] = { - 115,72,72,72,72,72,72,72,72,1, - 71,43,71,71,71,66,1,72,120,72, - 63,2,43,66,66,43,71,63,71,71, - 1,1,1,1,66,3,43,1,1,66, - 72,72,72,115,72,43,71,1,1,1, - 43,71,113,72,72,72,72,72,113,1, - 72,1,68,72,72,72,70,3,72,2, - 66,66,66,66,72,43,1,1,72,72, - 2,1,113,72,1,1,1,43,70,72, - 113,72,72,1,55,69,72,4,1,1, - 5,1,75,55,73,43,43,3,3,3, - 3,2,1,63,1,1,2 + 117,75,75,75,75,75,75,75,75,1, + 72,45,72,72,72,69,1,75,122,75, + 64,3,45,69,69,45,72,64,72,72, + 1,1,1,1,69,4,45,1,1,69, + 75,75,75,117,75,45,72,1,1,1, + 45,72,115,75,75,75,75,75,115,1, + 75,1,70,75,75,75,73,4,75,3, + 69,69,69,69,75,45,1,1,75,75, + 3,1,115,75,1,1,1,45,73,75, + 115,75,75,1,58,71,75,5,1,1, + 6,1,76,58,74,45,45,4,4,4, + 4,3,1,64,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2264,71 +2356,71 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeRhs { public final static char scopeRhs[] = {0, - 314,2,39,0,127,0,313,2,115,0, - 127,173,0,127,180,73,0,216,0,291, - 127,58,126,0,21,0,293,127,58,55, - 0,21,55,0,34,132,0,21,55,0, - 0,293,127,58,55,193,0,21,130,0, - 291,127,58,130,0,185,128,0,138,0, - 226,2,290,0,290,0,2,0,127,0, - 185,128,254,253,254,0,131,189,170,128, - 0,129,0,189,170,128,0,134,129,0, - 169,0,307,127,169,0,127,169,0,222, - 129,0,170,245,0,137,0,0,0,135, - 0,0,0,306,127,63,252,0,128,0, - 252,0,3,0,0,128,0,305,127,63, - 0,45,128,0,151,2,0,127,280,279, - 127,73,278,169,0,279,127,73,278,169, - 0,215,0,216,0,278,169,0,98,0, - 0,215,0,216,0,203,98,0,0,215, - 0,216,0,279,127,278,169,0,215,0, - 203,0,0,215,0,233,127,2,0,127, - 0,0,0,0,0,233,127,2,223,0, - 230,2,0,219,127,0,208,0,148,0, - 170,128,0,11,0,0,0,221,62,0, - 126,0,233,127,2,182,0,182,0,2, - 0,0,127,0,0,0,0,0,202,2, - 0,201,0,232,127,63,24,42,0,185, - 128,65,64,0,143,129,0,131,185,128, - 276,64,0,185,128,276,64,0,185,128, - 69,1,65,0,232,127,63,65,0,232, - 127,63,165,65,0,232,127,63,124,65, - 0,274,127,63,1,59,0,274,127,63, - 59,0,185,128,59,0,135,0,189,185, - 128,245,0,137,0,185,128,245,0,189, - 170,128,8,0,170,128,8,0,95,137, - 0,267,127,169,0,161,84,0,229,162, - 229,173,2,81,0,127,172,0,229,173, - 2,81,0,129,0,127,172,0,229,162, - 229,162,229,2,81,0,229,162,229,2, - 81,0,229,2,81,0,129,0,129,0, - 127,172,0,161,2,75,194,80,0,127, - 129,0,194,80,0,110,2,131,127,129, - 0,240,2,75,0,202,171,0,34,170, - 0,171,0,176,34,170,0,240,2,85, - 0,194,156,240,2,83,0,64,172,0, - 240,2,83,0,127,172,64,172,0,302, - 127,63,0,161,0,221,77,0,31,0, - 161,112,159,0,31,170,0,178,2,0, - 127,150,0,226,2,0,221,62,301,0, - 161,62,0,178,2,296,41,128,0,127, - 0,0,296,41,128,0,2,147,127,0, - 0,178,2,30,0,14,148,0,125,55, - 170,128,0,32,14,148,0,95,137,32, - 14,148,0,205,185,128,0,148,32,14, - 148,0,178,2,34,0,161,2,34,0, - 161,2,66,178,58,26,0,178,58,26, - 0,21,2,131,127,0,161,2,66,178, - 58,29,0,178,58,29,0,161,2,66, - 178,58,31,0,178,58,31,0,161,2, - 66,178,58,27,0,178,58,27,0,226, - 2,125,189,170,128,8,0,125,189,170, - 128,8,0,137,2,0,127,0,226,2, - 124,259,170,128,8,0,259,170,128,8, - 0,135,2,0,127,0,226,2,135,0, - 226,2,140,0,161,62,140,0,261,0, - 32,0,32,141,0,168,0,134,0,161, - 2,0 + 315,3,41,0,127,0,314,3,117,0, + 127,174,0,128,181,74,0,217,0,292, + 128,60,127,0,21,0,294,128,60,58, + 0,21,55,0,34,133,0,21,55,0, + 0,294,128,60,58,194,0,21,130,0, + 292,128,60,131,0,186,129,0,139,0, + 227,3,291,0,291,0,2,0,127,0, + 186,129,255,254,255,0,132,190,171,129, + 0,129,0,190,171,129,0,135,129,0, + 170,0,308,128,170,0,128,170,0,223, + 129,0,171,246,0,138,0,0,0,136, + 0,0,0,307,128,64,253,0,128,0, + 253,0,3,0,0,128,0,306,128,64, + 0,45,128,0,152,3,0,128,281,280, + 128,74,279,170,0,280,128,74,279,170, + 0,216,0,217,0,279,170,0,98,0, + 0,216,0,217,0,204,98,0,0,216, + 0,217,0,280,128,279,170,0,216,0, + 204,0,0,216,0,234,128,3,0,127, + 0,0,0,0,0,234,128,3,224,0, + 231,3,0,220,128,0,209,0,149,0, + 171,129,0,11,0,0,0,222,66,0, + 126,0,234,128,3,183,0,183,0,2, + 0,0,127,0,0,0,0,0,203,3, + 0,202,0,233,128,64,26,44,0,186, + 129,67,65,0,144,129,0,132,186,129, + 277,65,0,186,129,277,65,0,186,129, + 71,124,67,0,233,128,64,67,0,233, + 128,64,166,67,0,233,128,64,125,67, + 0,275,128,64,124,61,0,275,128,64, + 61,0,186,129,61,0,136,0,190,186, + 129,246,0,138,0,186,129,246,0,190, + 171,129,9,0,171,129,9,0,95,138, + 0,268,128,170,0,162,86,0,230,163, + 230,174,3,83,0,127,173,0,230,174, + 3,83,0,129,0,127,173,0,230,163, + 230,163,230,3,83,0,230,163,230,3, + 83,0,230,3,83,0,129,0,129,0, + 127,173,0,162,3,76,195,81,0,127, + 129,0,195,81,0,110,2,132,127,129, + 0,241,3,76,0,203,172,0,34,171, + 0,172,0,177,34,171,0,241,3,87, + 0,195,157,241,3,85,0,64,173,0, + 241,3,85,0,127,173,64,173,0,303, + 128,64,0,162,0,222,78,0,31,0, + 162,114,160,0,31,171,0,179,3,0, + 127,151,0,227,3,0,222,66,302,0, + 162,66,0,179,3,297,43,129,0,127, + 0,0,297,43,129,0,2,148,127,0, + 0,179,3,32,0,14,149,0,126,58, + 171,129,0,32,14,149,0,95,138,32, + 14,149,0,206,186,129,0,149,32,14, + 149,0,179,3,36,0,162,3,36,0, + 162,3,69,179,60,28,0,179,60,28, + 0,21,2,132,127,0,162,3,69,179, + 60,31,0,179,60,31,0,162,3,69, + 179,60,33,0,179,60,33,0,162,3, + 69,179,60,29,0,179,60,29,0,227, + 3,126,190,171,129,9,0,126,190,171, + 129,9,0,138,2,0,127,0,227,3, + 125,260,171,129,9,0,260,171,129,9, + 0,136,2,0,127,0,227,3,136,0, + 227,3,141,0,162,66,141,0,262,0, + 32,0,32,142,0,169,0,135,0,162, + 3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2336,38 +2428,38 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeState { public final static char scopeState[] = {0, - 2155,0,4817,4543,3409,0,1665,1376,1539,1297, - 0,3985,3944,3903,3862,3821,3780,3676,3571,3530, - 3161,3102,2933,2868,3721,2803,2738,3666,3611,3471, - 3412,0,2333,2214,2193,0,2839,657,0,3985, - 3944,3903,1697,1579,3862,3821,3780,3571,1232,3530, - 3161,3102,2858,2322,0,4815,2684,4769,0,1054, - 732,0,1366,2655,0,3418,3026,0,1062,0, - 3418,4551,4486,3390,3026,2988,4457,4469,4358,3240, - 4440,3108,3068,2695,2612,0,2933,2868,3721,2803, - 2738,3666,3611,3471,3412,4518,3528,0,4518,3528, - 2933,2868,3721,2803,2738,3666,3611,3471,3412,3985, - 3944,3903,3862,3821,3780,3571,3530,3161,3102,0, - 2608,927,0,3240,4551,3008,4486,3390,3667,3068, - 1866,2965,1786,3544,4599,713,1186,858,0,1066, - 577,0,871,0,1502,1418,1001,986,3390,4599, - 2988,2695,2612,2762,2678,0,4262,534,2324,0, - 4739,4733,4712,4706,4685,4649,4628,4622,4760,4002, - 3796,3441,4595,4574,3282,3588,2899,2834,2767,3091, - 2924,0,4739,4733,2343,2210,4712,4706,4796,2116, - 4685,4649,4787,4423,4628,2202,4622,2120,2112,4760, - 2108,4345,2026,1058,3386,4002,3879,3796,2661,3441, - 4595,4574,876,3282,867,3588,2022,2899,2834,4262, - 2767,2324,3091,2924,2012,728,617,784,664,2988, - 4457,4469,4358,3240,3418,4551,4440,4486,3390,3108, - 3068,2695,3026,2612,1881,997,1066,577,4387,4319, - 4289,2218,2256,923,2291,2503,2475,2351,2715,2624, - 2585,2558,2531,792,3361,3332,3253,2381,591,4240, - 4218,4196,4174,4152,4130,4108,4086,4064,630,2420, - 1894,2162,2124,2068,2030,1974,1163,1121,1936,1079, - 825,1838,1800,741,685,1758,1716,1674,1632,1590, - 1548,1506,1464,1422,1380,1338,534,1293,1251,1016, - 955,881,1209,0 + 2812,0,4931,4322,4281,0,3180,2810,880,1047, + 0,4384,4343,4302,4261,4220,4179,4129,3927,3886, + 3415,3374,3157,3092,4120,3027,2951,4064,4007,3803, + 3791,0,3692,3600,2885,0,2814,788,0,4384, + 4343,4302,3899,3486,4261,4220,4179,3927,1879,3886, + 3415,3374,2113,1884,0,4903,4028,4843,0,2069, + 953,0,2386,3916,0,4575,4013,0,1898,0, + 4575,4509,2441,3340,4013,2822,3358,4478,3986,2931, + 4443,4465,2903,2741,2696,0,3157,3092,4120,3027, + 2951,4064,4007,3803,3791,4649,4541,0,4649,4541, + 3157,3092,4120,3027,2951,4064,4007,3803,3791,4384, + 4343,4302,4261,4220,4179,3927,3886,3415,3374,0, + 3085,2891,0,2931,4509,4492,2441,3340,4840,2903, + 4079,4090,875,4103,4683,616,3018,619,0,1148, + 579,0,1153,0,1647,1467,1303,819,3340,4683, + 2822,2741,2696,3375,2384,0,3710,535,2374,0, + 4826,4817,4793,4768,4760,4711,4703,4678,4875,4850, + 4195,3902,4621,4600,3820,4594,4038,3188,3121,3213, + 2471,0,4826,4817,3353,3195,4793,4768,4883,2736, + 4760,4711,3728,3067,4703,3456,4678,3433,3391,4875, + 3386,3052,3128,2835,2896,4850,4615,4195,2393,3902, + 4621,4600,2228,3820,2134,4594,1900,4038,3188,3710, + 3121,2374,3213,2471,2217,2123,730,870,660,2822, + 3358,4478,3986,2931,4575,4509,4443,2441,3340,4465, + 2903,2741,4013,2696,2029,1000,1148,579,632,3767, + 3737,2233,2272,2342,2308,2555,2526,2401,2709,795, + 2668,2640,2612,2584,3316,3292,3268,2850,592,3687, + 3664,3641,3618,3595,3572,3549,3518,3495,2771,927, + 1908,2178,2139,2084,2045,1990,1166,1105,1951,1062, + 827,1855,1814,744,687,1771,1728,1685,1642,1599, + 1556,1513,1470,1427,1384,1341,535,1298,1254,1018, + 957,884,1209,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2375,59 +2467,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface InSymb { public final static char inSymb[] = {0, - 0,295,161,127,44,266,34,26,29,31, - 27,8,135,124,126,6,130,3,2,128, - 30,25,4,10,9,5,7,12,11,140, - 145,148,147,150,149,153,152,157,155,158, - 39,159,68,2,58,58,58,58,128,2, - 58,171,127,62,2,40,41,58,6,124, - 178,161,171,127,40,41,170,168,1,124, - 2,125,124,101,114,2,62,88,94,10, - 9,90,89,5,92,91,66,58,86,87, - 7,96,95,98,97,99,111,110,109,108, - 107,106,105,104,103,102,69,112,100,178, - 161,178,178,178,178,170,226,127,127,268, - 269,252,270,245,271,59,272,273,1,124, - 8,128,62,62,127,156,127,62,2,224, - 223,135,8,128,62,296,2,189,3,178, - 55,4,128,55,226,161,147,147,145,145, - 145,149,149,149,149,148,148,152,150,150, - 155,153,157,161,158,66,66,66,66,189, - 259,291,133,294,219,128,5,63,170,236, - 128,125,124,1,63,128,128,185,170,291, - 219,221,159,230,127,2,128,170,203,2, - 297,171,151,261,189,128,185,170,70,2, - 2,2,2,125,124,68,170,127,127,125, - 124,127,185,127,63,127,185,170,55,233, - 234,146,235,127,170,55,178,127,127,3, - 4,205,55,161,161,161,161,2,2,5, - 184,306,128,190,253,193,64,169,308,127, - 127,70,189,127,274,247,275,189,156,69, - 230,202,187,182,128,2,127,68,233,189, - 156,298,301,62,179,3,125,226,226,127, - 170,55,276,278,127,2,182,310,254,128, - 274,69,68,127,69,69,2,185,170,202, - 127,219,156,125,2,62,161,4,3,189, - 58,128,73,127,219,307,127,128,124,70, - 285,202,68,253,185,227,127,127,226,221, - 4,131,127,185,127,279,70,68,219,170, - 70,69,254,127,233,227,293,55,8,57, - 131,279,63,289,128,290,128,39,156,127, - 68,66,58,236,236,280,127,68,185,2, - 185,2,127,42,55,169,67,65,64,127, - 69,69,127,302,79,77,1,161,85,83, - 81,80,75,82,84,78,76,169,65,73, - 44,226,314,227,24,58,127,2,63,165, - 1,124,65,293,281,115,221,70,2,2, - 2,194,2,1,161,127,1,180,68,127, - 127,63,66,267,202,277,24,127,63,69, - 63,128,66,2,240,171,240,173,229,75, - 240,127,127,2,69,68,156,232,231,127, - 128,127,185,57,93,313,171,156,202,156, - 229,162,2,156,281,232,151,63,232,185, - 232,166,236,156,156,127,69,194,162,229, - 161,127,166,69,120,229,162,156,305,156, - 229,68,156 + 0,296,162,128,46,267,36,28,31,33, + 29,9,136,125,127,7,131,4,3,129, + 32,27,5,11,10,6,8,14,13,141, + 146,149,148,151,150,154,153,158,156,159, + 41,160,70,3,60,60,60,60,129,3, + 60,172,128,66,3,42,43,60,7,125, + 179,162,172,128,42,43,171,169,124,125, + 3,126,125,103,116,3,66,90,96,11, + 10,92,91,6,94,93,69,60,88,89, + 8,98,97,100,99,101,113,112,111,110, + 109,108,107,106,105,104,71,114,102,179, + 162,179,179,179,179,171,227,128,128,269, + 270,253,271,246,272,61,273,274,124,125, + 9,129,66,66,128,157,128,66,3,225, + 224,136,9,129,66,297,3,190,4,179, + 58,5,129,58,227,162,148,148,146,146, + 146,150,150,150,150,149,149,153,151,151, + 156,154,158,162,159,69,69,69,69,190, + 260,292,134,295,220,129,6,64,171,237, + 129,126,125,124,64,129,129,186,171,292, + 220,222,160,231,128,3,129,171,204,3, + 298,172,152,262,190,129,186,171,73,3, + 3,3,3,126,125,70,171,128,128,126, + 125,128,186,128,64,128,186,171,58,234, + 235,147,236,128,171,58,179,128,128,4, + 5,206,58,162,162,162,162,3,3,6, + 185,307,129,191,254,194,65,170,309,128, + 128,73,190,128,275,248,276,190,157,71, + 231,203,188,183,129,3,128,70,234,190, + 157,299,302,66,180,4,126,227,227,128, + 171,58,277,279,128,3,183,311,255,129, + 275,71,70,128,71,71,3,186,171,203, + 128,220,157,126,3,66,162,5,4,190, + 60,129,74,128,220,308,128,129,125,73, + 286,203,70,254,186,228,128,128,227,222, + 5,132,128,186,128,280,73,70,220,171, + 73,71,255,128,234,228,294,58,9,59, + 132,280,64,290,129,291,129,41,157,128, + 70,69,60,237,237,281,128,70,186,3, + 186,3,128,44,58,170,68,67,65,128, + 71,71,128,303,80,78,1,162,87,85, + 83,81,76,84,86,79,77,170,67,74, + 46,227,315,228,26,60,128,3,64,166, + 124,125,67,294,282,117,12,222,73,3, + 3,3,195,3,124,162,128,124,181,70, + 128,128,64,69,268,203,278,26,128,64, + 71,64,129,69,3,241,172,241,174,230, + 76,241,128,128,3,71,70,157,233,232, + 128,129,128,186,59,95,314,172,157,203, + 157,230,163,3,157,282,233,152,64,233, + 186,233,167,237,157,157,128,71,195,163, + 230,162,128,167,71,122,230,163,157,306, + 157,230,70,157 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2566,6 +2658,7 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse "}", ";", "declaration", + "identifier_token", "expression", "id_expression", "qualified_or_unqualified_name", @@ -2691,7 +2784,7 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 44, + ERROR_SYMBOL = 46, SCOPE_UBOUND = 116, SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; @@ -2702,20 +2795,20 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 523, + NUM_STATES = 524, NT_OFFSET = 123, - LA_STATE_OFFSET = 5844, + LA_STATE_OFFSET = 5996, MAX_LA = 2147483647, - NUM_RULES = 533, - NUM_NONTERMINALS = 202, - NUM_SYMBOLS = 325, + NUM_RULES = 534, + NUM_NONTERMINALS = 199, + NUM_SYMBOLS = 322, SEGMENT_SIZE = 8192, - START_STATE = 2974, + START_STATE = 3373, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 119, - EOLT_SYMBOL = 119, - ACCEPT_ACTION = 5002, - ERROR_ACTION = 5311; + EOFT_SYMBOL = 121, + EOLT_SYMBOL = 121, + ACCEPT_ACTION = 5108, + ERROR_ACTION = 5462; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java index a1506501e93..74ef7f14913 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java @@ -15,133 +15,134 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPExpressionStatementParsersym { public final static int - TK_asm = 67, - TK_auto = 48, - TK_bool = 13, - TK_break = 76, - TK_case = 77, - TK_catch = 115, - TK_char = 14, - TK_class = 57, - TK_const = 46, - TK_const_cast = 26, - TK_continue = 78, - TK_default = 79, - TK_delete = 40, - TK_do = 80, - TK_double = 15, - TK_dynamic_cast = 27, - TK_else = 120, - TK_enum = 59, - TK_explicit = 49, - TK_export = 74, - TK_extern = 42, - TK_false = 28, - TK_float = 16, - TK_for = 81, - TK_friend = 50, - TK_goto = 82, - TK_if = 83, - TK_inline = 51, - TK_int = 17, - TK_long = 18, - TK_mutable = 52, - TK_namespace = 65, - TK_new = 41, - TK_operator = 6, - TK_private = 116, - TK_protected = 117, - TK_public = 118, - TK_register = 53, - TK_reinterpret_cast = 29, - TK_return = 84, - TK_short = 19, - TK_signed = 20, - TK_sizeof = 30, - TK_static = 54, - TK_static_cast = 31, - TK_struct = 60, - TK_switch = 85, - TK_template = 55, - TK_this = 32, - TK_throw = 39, - TK_try = 73, - TK_true = 33, - TK_typedef = 56, - TK_typeid = 34, - TK_typename = 8, - TK_union = 61, - TK_unsigned = 21, - TK_using = 64, - TK_virtual = 45, - TK_void = 22, - TK_volatile = 47, - TK_wchar_t = 23, - TK_while = 75, - TK_integer = 35, - TK_floating = 36, - TK_charconst = 37, - TK_stringlit = 24, + TK_asm = 68, + TK_auto = 50, + TK_bool = 15, + TK_break = 77, + TK_case = 78, + TK_catch = 117, + TK_char = 16, + TK_class = 59, + TK_const = 48, + TK_const_cast = 28, + TK_continue = 79, + TK_default = 80, + TK_delete = 42, + TK_do = 81, + TK_double = 17, + TK_dynamic_cast = 29, + TK_else = 122, + TK_enum = 61, + TK_explicit = 51, + TK_export = 82, + TK_extern = 44, + TK_false = 30, + TK_float = 18, + TK_for = 83, + TK_friend = 52, + TK_goto = 84, + TK_if = 85, + TK_inline = 53, + TK_int = 19, + TK_long = 20, + TK_mutable = 54, + TK_namespace = 67, + TK_new = 43, + TK_operator = 7, + TK_private = 118, + TK_protected = 119, + TK_public = 120, + TK_register = 55, + TK_reinterpret_cast = 31, + TK_return = 86, + TK_short = 21, + TK_signed = 22, + TK_sizeof = 32, + TK_static = 56, + TK_static_cast = 33, + TK_struct = 62, + TK_switch = 87, + TK_template = 58, + TK_this = 34, + TK_throw = 41, + TK_try = 74, + TK_true = 35, + TK_typedef = 57, + TK_typeid = 36, + TK_typename = 9, + TK_union = 63, + TK_unsigned = 23, + TK_using = 65, + TK_virtual = 47, + TK_void = 24, + TK_volatile = 49, + TK_wchar_t = 25, + TK_while = 76, + TK_integer = 37, + TK_floating = 38, + TK_charconst = 39, + TK_stringlit = 26, TK_identifier = 1, - TK_Completion = 121, - TK_EndOfCompletion = 122, + TK_Completion = 2, + TK_EndOfCompletion = 12, TK_Invalid = 123, - TK_LeftBracket = 62, - TK_LeftParen = 2, - TK_LeftBrace = 63, - TK_Dot = 114, - TK_DotStar = 94, - TK_Arrow = 101, - TK_ArrowStar = 88, - TK_PlusPlus = 11, - TK_MinusMinus = 12, - TK_And = 7, - TK_Star = 5, - TK_Plus = 9, - TK_Minus = 10, - TK_Tilde = 4, - TK_Bang = 25, - TK_Slash = 89, - TK_Percent = 90, - TK_RightShift = 86, - TK_LeftShift = 87, - TK_LT = 58, - TK_GT = 66, - TK_LE = 91, - TK_GE = 92, - TK_EQ = 95, - TK_NE = 96, - TK_Caret = 97, - TK_Or = 98, - TK_AndAnd = 99, - TK_OrOr = 100, - TK_Question = 112, - TK_Colon = 70, - TK_ColonColon = 3, - TK_DotDotDot = 93, - TK_Assign = 69, - TK_StarAssign = 102, - TK_SlashAssign = 103, - TK_PercentAssign = 104, - TK_PlusAssign = 105, - TK_MinusAssign = 106, - TK_RightShiftAssign = 107, - TK_LeftShiftAssign = 108, - TK_AndAssign = 109, - TK_CaretAssign = 110, - TK_OrAssign = 111, - TK_Comma = 68, - TK_zero = 38, - TK_RightBracket = 113, - TK_RightParen = 72, - TK_RightBrace = 71, - TK_SemiColon = 43, - TK_ERROR_TOKEN = 44, - TK_EOF_TOKEN = 119; + TK_LeftBracket = 66, + TK_LeftParen = 3, + TK_LeftBrace = 64, + TK_Dot = 116, + TK_DotStar = 96, + TK_Arrow = 103, + TK_ArrowStar = 90, + TK_PlusPlus = 13, + TK_MinusMinus = 14, + TK_And = 8, + TK_Star = 6, + TK_Plus = 10, + TK_Minus = 11, + TK_Tilde = 5, + TK_Bang = 27, + TK_Slash = 91, + TK_Percent = 92, + TK_RightShift = 88, + TK_LeftShift = 89, + TK_LT = 60, + TK_GT = 69, + TK_LE = 93, + TK_GE = 94, + TK_EQ = 97, + TK_NE = 98, + TK_Caret = 99, + TK_Or = 100, + TK_AndAnd = 101, + TK_OrOr = 102, + TK_Question = 114, + TK_Colon = 73, + TK_ColonColon = 4, + TK_DotDotDot = 95, + TK_Assign = 71, + TK_StarAssign = 104, + TK_SlashAssign = 105, + TK_PercentAssign = 106, + TK_PlusAssign = 107, + TK_MinusAssign = 108, + TK_RightShiftAssign = 109, + TK_LeftShiftAssign = 110, + TK_AndAssign = 111, + TK_CaretAssign = 112, + TK_OrAssign = 113, + TK_Comma = 70, + TK_zero = 40, + TK_RightBracket = 115, + TK_RightParen = 75, + TK_RightBrace = 72, + TK_SemiColon = 45, + TK_ERROR_TOKEN = 46, + TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { "", "identifier", + "Completion", "LeftParen", "ColonColon", "Tilde", @@ -151,6 +152,7 @@ public interface CPPExpressionStatementParsersym { "typename", "Plus", "Minus", + "EndOfCompletion", "PlusPlus", "MinusMinus", "bool", @@ -195,32 +197,32 @@ public interface CPPExpressionStatementParsersym { "mutable", "register", "static", - "template", "typedef", + "template", "class", "LT", "enum", "struct", "union", - "LeftBracket", "LeftBrace", "using", + "LeftBracket", "namespace", - "GT", "asm", + "GT", "Comma", "Assign", - "Colon", "RightBrace", - "RightParen", + "Colon", "try", - "export", + "RightParen", "while", "break", "case", "continue", "default", "do", + "export", "for", "goto", "if", @@ -261,8 +263,6 @@ public interface CPPExpressionStatementParsersym { "public", "EOF_TOKEN", "else", - "Completion", - "EndOfCompletion", "Invalid" }; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java index d6fdd6ccc76..d575a92308d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java @@ -272,1780 +272,1773 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor } // - // Rule 4: ::= $Empty + // Rule 2: ::= $Empty // - case 4: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 5: ::= $Empty - // - case 5: { action.builder. + case 2: { action.builder. consumeEmpty(); break; } // - // Rule 10: translation_unit ::= external_declaration_list - // - case 10: { action.builder. - consumeTranslationUnit(); break; - } - - // - // Rule 11: translation_unit ::= $Empty + // Rule 11: translation_unit ::= external_declaration_list // case 11: { action.builder. consumeTranslationUnit(); break; } // - // Rule 15: external_declaration ::= ERROR_TOKEN + // Rule 12: translation_unit ::= $Empty // - case 15: { action.builder. + case 12: { action.builder. + consumeTranslationUnit(); break; + } + + // + // Rule 16: external_declaration ::= ERROR_TOKEN + // + case 16: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 16: literal ::= integer + // Rule 19: literal ::= integer // - case 16: { action.builder. + case 19: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 17: literal ::= 0 + // Rule 20: literal ::= 0 // - case 17: { action.builder. + case 20: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 18: literal ::= floating + // Rule 21: literal ::= floating // - case 18: { action.builder. + case 21: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } // - // Rule 19: literal ::= charconst + // Rule 22: literal ::= charconst // - case 19: { action.builder. + case 22: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 20: literal ::= stringlit + // Rule 23: literal ::= stringlit // - case 20: { action.builder. + case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 21: literal ::= true + // Rule 24: literal ::= true // - case 21: { action.builder. + case 24: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 22: literal ::= false + // Rule 25: literal ::= false // - case 22: { action.builder. + case 25: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 23: literal ::= this + // Rule 26: literal ::= this // - case 23: { action.builder. + case 26: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 25: primary_expression ::= ( expression ) + // Rule 28: primary_expression ::= ( expression ) // - case 25: { action.builder. + case 28: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 27: id_expression ::= qualified_or_unqualified_name + // Rule 30: id_expression ::= qualified_or_unqualified_name // - case 27: { action.builder. + case 30: { action.builder. consumeExpressionName(); break; } // - // Rule 34: unqualified_id_name ::= ~ class_name + // Rule 37: unqualified_id_name ::= ~ class_name // - case 34: { action.builder. + case 37: { action.builder. consumeDestructorName(); break; } // - // Rule 35: identifier_name ::= identifier + // Rule 38: identifier_name ::= identifier_token // - case 35: { action.builder. + case 38: { action.builder. consumeIdentifierName(); break; } // - // Rule 36: template_opt ::= template - // - case 36: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 37: template_opt ::= $Empty - // - case 37: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 38: dcolon_opt ::= :: - // - case 38: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 39: dcolon_opt ::= $Empty + // Rule 39: template_opt ::= template // case 39: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 40: template_opt ::= $Empty + // + case 40: { action.builder. consumeEmpty(); break; } // - // Rule 40: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 41: dcolon_opt ::= :: // - case 40: { action.builder. + case 41: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 42: dcolon_opt ::= $Empty + // + case 42: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 43: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 43: { action.builder. consumeQualifiedId(true); break; } // - // Rule 41: qualified_id_name ::= :: identifier_name - // - case 41: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 42: qualified_id_name ::= :: operator_function_id_name - // - case 42: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 43: qualified_id_name ::= :: template_id_name - // - case 43: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 44: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 44: qualified_id_name ::= :: identifier_name // case 44: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 45: nested_name_specifier ::= class_or_namespace_name :: + // Rule 45: qualified_id_name ::= :: operator_function_id_name // case 45: { action.builder. - consumeNestedNameSpecifier(false); break; + consumeGlobalQualifiedId(); break; } // - // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 46: qualified_id_name ::= :: template_id_name // case 46: { action.builder. + consumeGlobalQualifiedId(); break; + } + + // + // Rule 47: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // + case 47: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 47: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: // - case 47: { action.builder. + case 48: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 48: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 49: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 48: { action.builder. + case 49: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // + case 50: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 51: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 51: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 50: nested_name_specifier_opt ::= $Empty + // Rule 53: nested_name_specifier_opt ::= $Empty // - case 50: { action.builder. + case 53: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 54: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 54: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 55: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 55: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 56: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 56: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 57: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // - case 57: { action.builder. + case 60: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 58: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 58: { action.builder. + case 61: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 59: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 59: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 60: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 60: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 61: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 61: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 62: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 62: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 63: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 63: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 64: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 65: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 65: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 66: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 66: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 67: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 67: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 68: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 68: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 69: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 69: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 70: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 70: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 71: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 71: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 72: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 72: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name // - case 73: { action.builder. + case 76: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 74: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name // - case 74: { action.builder. + case 77: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name // - case 75: { action.builder. + case 78: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: unary_expression ::= ++ cast_expression + // Rule 82: unary_expression ::= ++ cast_expression // - case 79: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 80: unary_expression ::= -- cast_expression + // Rule 83: unary_expression ::= -- cast_expression // - case 80: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 81: unary_expression ::= & cast_expression + // Rule 84: unary_expression ::= & cast_expression // - case 81: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 82: unary_expression ::= * cast_expression + // Rule 85: unary_expression ::= * cast_expression // - case 82: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 83: unary_expression ::= + cast_expression + // Rule 86: unary_expression ::= + cast_expression // - case 83: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 84: unary_expression ::= - cast_expression + // Rule 87: unary_expression ::= - cast_expression // - case 84: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 85: unary_expression ::= ~ cast_expression + // Rule 88: unary_expression ::= ~ cast_expression // - case 85: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 86: unary_expression ::= ! cast_expression + // Rule 89: unary_expression ::= ! cast_expression // - case 86: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 87: unary_expression ::= sizeof unary_expression + // Rule 90: unary_expression ::= sizeof unary_expression // - case 87: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 88: unary_expression ::= sizeof ( type_id ) + // Rule 91: unary_expression ::= sizeof ( type_id ) // - case 88: { action.builder. + case 91: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 92: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 89: { action.builder. + case 92: { action.builder. consumeExpressionNew(true); break; } // - // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt + // Rule 93: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt // - case 90: { action.builder. + case 93: { action.builder. consumeExpressionNew(false); break; } // - // Rule 93: new_placement_opt ::= $Empty + // Rule 96: new_placement_opt ::= $Empty // - case 93: { action.builder. + case 96: { action.builder. consumeEmpty(); break; } // - // Rule 94: new_type_id ::= type_specifier_seq + // Rule 97: new_type_id ::= type_specifier_seq // - case 94: { action.builder. + case 97: { action.builder. consumeTypeId(false); break; } // - // Rule 95: new_type_id ::= type_specifier_seq new_declarator + // Rule 98: new_type_id ::= type_specifier_seq new_declarator // - case 95: { action.builder. + case 98: { action.builder. consumeTypeId(true); break; } // - // Rule 96: new_declarator ::= new_pointer_operators + // Rule 99: new_declarator ::= new_pointer_operators // - case 96: { action.builder. + case 99: { action.builder. consumeNewDeclarator(); break; } // - // Rule 105: new_initializer_opt ::= $Empty + // Rule 108: new_initializer_opt ::= $Empty // - case 105: { action.builder. + case 108: { action.builder. consumeEmpty(); break; } // - // Rule 106: delete_expression ::= dcolon_opt delete cast_expression + // Rule 109: delete_expression ::= dcolon_opt delete cast_expression // - case 106: { action.builder. + case 109: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 107: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 110: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 107: { action.builder. + case 110: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 110: pm_expression ::= pm_expression .* cast_expression + // Rule 113: pm_expression ::= pm_expression .* cast_expression // - case 110: { action.builder. + case 113: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 111: pm_expression ::= pm_expression ->* cast_expression + // Rule 114: pm_expression ::= pm_expression ->* cast_expression // - case 111: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 113: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 116: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 113: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 114: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 117: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 114: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 115: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 115: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 117: additive_expression ::= additive_expression + multiplicative_expression + // Rule 120: additive_expression ::= additive_expression + multiplicative_expression // - case 117: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 118: additive_expression ::= additive_expression - multiplicative_expression + // Rule 121: additive_expression ::= additive_expression - multiplicative_expression // - case 118: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 120: shift_expression ::= shift_expression << additive_expression + // Rule 123: shift_expression ::= shift_expression << additive_expression // - case 120: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 121: shift_expression ::= shift_expression >> additive_expression + // Rule 124: shift_expression ::= shift_expression >> additive_expression // - case 121: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 123: relational_expression ::= relational_expression < shift_expression + // Rule 126: relational_expression ::= relational_expression < shift_expression // - case 123: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 124: relational_expression ::= relational_expression > shift_expression + // Rule 127: relational_expression ::= relational_expression > shift_expression // - case 124: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 125: relational_expression ::= relational_expression <= shift_expression + // Rule 128: relational_expression ::= relational_expression <= shift_expression // - case 125: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 126: relational_expression ::= relational_expression >= shift_expression + // Rule 129: relational_expression ::= relational_expression >= shift_expression // - case 126: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 128: equality_expression ::= equality_expression == relational_expression + // Rule 131: equality_expression ::= equality_expression == relational_expression // - case 128: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 129: equality_expression ::= equality_expression != relational_expression + // Rule 132: equality_expression ::= equality_expression != relational_expression // - case 129: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 131: and_expression ::= and_expression & equality_expression + // Rule 134: and_expression ::= and_expression & equality_expression // - case 131: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 133: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 136: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 133: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 135: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 138: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 135: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 137: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 140: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 137: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 139: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 142: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 139: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 141: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 144: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 141: { action.builder. + case 144: { action.builder. consumeExpressionConditional(); break; } // - // Rule 142: throw_expression ::= throw + // Rule 145: throw_expression ::= throw // - case 142: { action.builder. + case 145: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 143: throw_expression ::= throw assignment_expression + // Rule 146: throw_expression ::= throw assignment_expression // - case 143: { action.builder. + case 146: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 146: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression = assignment_expression // - case 146: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 147: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression *= assignment_expression // - case 147: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 148: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression /= assignment_expression // - case 148: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 149: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression %= assignment_expression // - case 149: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 150: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression += assignment_expression // - case 150: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 151: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression -= assignment_expression // - case 151: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 152: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 153: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression &= assignment_expression // - case 154: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 155: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression |= assignment_expression // - case 156: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 158: expression ::= ERROR_TOKEN + // Rule 161: expression ::= ERROR_TOKEN // - case 158: { action.builder. + case 161: { action.builder. consumeExpressionProblem(); break; } // - // Rule 159: expression_list ::= expression_list_actual + // Rule 162: expression_list ::= expression_list_actual // - case 159: { action.builder. + case 162: { action.builder. consumeExpressionList(); break; } // - // Rule 163: expression_list_opt ::= $Empty + // Rule 166: expression_list_opt ::= $Empty // - case 163: { action.builder. + case 166: { action.builder. consumeEmpty(); break; } // - // Rule 165: expression_opt ::= $Empty - // - case 165: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 168: constant_expression_opt ::= $Empty + // Rule 168: expression_opt ::= $Empty // case 168: { action.builder. consumeEmpty(); break; } // - // Rule 177: statement ::= ERROR_TOKEN + // Rule 171: constant_expression_opt ::= $Empty // - case 177: { action.builder. + case 171: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 180: statement ::= ERROR_TOKEN + // + case 180: { action.builder. consumeStatementProblem(); break; } // - // Rule 178: labeled_statement ::= identifier : statement + // Rule 181: labeled_statement ::= identifier : statement // - case 178: { action.builder. + case 181: { action.builder. consumeStatementLabeled(); break; } // - // Rule 179: labeled_statement ::= case constant_expression : + // Rule 182: labeled_statement ::= case constant_expression : // - case 179: { action.builder. + case 182: { action.builder. consumeStatementCase(); break; } // - // Rule 180: labeled_statement ::= default : + // Rule 183: labeled_statement ::= default : // - case 180: { action.builder. + case 183: { action.builder. consumeStatementDefault(); break; } // - // Rule 181: expression_statement ::= expression ; + // Rule 184: expression_statement ::= expression ; // - case 181: { action.builder. + case 184: { action.builder. consumeStatementExpression(); break; } // - // Rule 182: expression_statement ::= ; + // Rule 185: expression_statement ::= ; // - case 182: { action.builder. + case 185: { action.builder. consumeStatementNull(); break; } // - // Rule 183: compound_statement ::= { statement_seq } + // Rule 186: compound_statement ::= { statement_seq } // - case 183: { action.builder. + case 186: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 184: compound_statement ::= { } + // Rule 187: compound_statement ::= { } // - case 184: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 187: selection_statement ::= if ( condition ) statement + // Rule 190: selection_statement ::= if ( condition ) statement // - case 187: { action.builder. + case 190: { action.builder. consumeStatementIf(false); break; } // - // Rule 188: selection_statement ::= if ( condition ) statement else statement + // Rule 191: selection_statement ::= if ( condition ) statement else statement // - case 188: { action.builder. + case 191: { action.builder. consumeStatementIf(true); break; } // - // Rule 189: selection_statement ::= switch ( condition ) statement + // Rule 192: selection_statement ::= switch ( condition ) statement // - case 189: { action.builder. + case 192: { action.builder. consumeStatementSwitch(); break; } // - // Rule 191: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 194: condition ::= type_specifier_seq declarator = assignment_expression // - case 191: { action.builder. + case 194: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 192: iteration_statement ::= while ( condition ) statement + // Rule 195: iteration_statement ::= while ( condition ) statement // - case 192: { action.builder. + case 195: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 193: iteration_statement ::= do statement while ( expression ) ; + // Rule 196: iteration_statement ::= do statement while ( expression ) ; // - case 193: { action.builder. + case 196: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 194: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 197: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // - case 194: { action.builder. + case 197: { action.builder. consumeStatementForLoop(); break; } // - // Rule 195: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement + // Rule 198: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement // - case 195: { action.builder. + case 198: { action.builder. consumeStatementForLoop(); break; } // - // Rule 196: jump_statement ::= break ; + // Rule 199: jump_statement ::= break ; // - case 196: { action.builder. + case 199: { action.builder. consumeStatementBreak(); break; } // - // Rule 197: jump_statement ::= continue ; + // Rule 200: jump_statement ::= continue ; // - case 197: { action.builder. + case 200: { action.builder. consumeStatementContinue(); break; } // - // Rule 198: jump_statement ::= return expression ; + // Rule 201: jump_statement ::= return expression ; // - case 198: { action.builder. + case 201: { action.builder. consumeStatementReturn(true); break; } // - // Rule 199: jump_statement ::= return ; + // Rule 202: jump_statement ::= return ; // - case 199: { action.builder. + case 202: { action.builder. consumeStatementReturn(false); break; } // - // Rule 200: jump_statement ::= goto identifier ; + // Rule 203: jump_statement ::= goto identifier_token ; // - case 200: { action.builder. + case 203: { action.builder. consumeStatementGoto(); break; } // - // Rule 201: declaration_statement ::= block_declaration + // Rule 204: declaration_statement ::= block_declaration // - case 201: { action.builder. + case 204: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 218: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 221: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 218: { action.builder. + case 221: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 219: declaration_specifiers ::= simple_declaration_specifiers + // Rule 222: declaration_specifiers ::= simple_declaration_specifiers // - case 219: { action.builder. + case 222: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 220: declaration_specifiers ::= class_declaration_specifiers - // - case 220: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 221: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 221: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 222: declaration_specifiers ::= enum_declaration_specifiers - // - case 222: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 223: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 223: declaration_specifiers ::= class_declaration_specifiers // case 223: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 224: declaration_specifiers ::= elaborated_declaration_specifiers + // + case 224: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 225: declaration_specifiers ::= enum_declaration_specifiers + // + case 225: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 226: declaration_specifiers ::= type_name_declaration_specifiers + // + case 226: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 225: declaration_specifiers_opt ::= $Empty + // Rule 228: declaration_specifiers_opt ::= $Empty // - case 225: { action.builder. + case 228: { action.builder. consumeEmpty(); break; } // - // Rule 229: no_type_declaration_specifier ::= friend + // Rule 232: no_type_declaration_specifier ::= friend // - case 229: { action.builder. + case 232: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 230: no_type_declaration_specifier ::= typedef + // Rule 233: no_type_declaration_specifier ::= typedef // - case 230: { action.builder. + case 233: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 259: simple_type_specifier ::= simple_type_specifier_token + // Rule 262: simple_type_specifier ::= simple_type_specifier_token // - case 259: { action.builder. + case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 275: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name - // - case 276: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name - // - case 277: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 278: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // + case 279: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // + case 280: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 281: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 281: { action.builder. consumeQualifiedId(true); break; } // - // Rule 279: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 279: { action.builder. + case 282: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 283: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 280: { action.builder. + case 283: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 281: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 284: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 281: { action.builder. + case 284: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 283: enum_specifier ::= enum { enumerator_list_opt } + // Rule 286: enum_specifier ::= enum { enumerator_list_opt } // - case 283: { action.builder. + case 286: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 284: enum_specifier ::= enum identifier { enumerator_list_opt } + // Rule 287: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 284: { action.builder. + case 287: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 289: enumerator_definition ::= enumerator + // Rule 292: enumerator_definition ::= enumerator // - case 289: { action.builder. + case 292: { action.builder. consumeEnumerator(false); break; } // - // Rule 290: enumerator_definition ::= enumerator = constant_expression + // Rule 293: enumerator_definition ::= enumerator = constant_expression // - case 290: { action.builder. + case 293: { action.builder. consumeEnumerator(true); break; } // - // Rule 299: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } + // Rule 302: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } // - case 299: { action.builder. + case 302: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 300: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // Rule 303: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } // - case 300: { action.builder. + case 303: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 301: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 304: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 301: { action.builder. + case 304: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 303: namespace_alias_definition ::= namespace identifier = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 306: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 303: { action.builder. + case 306: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 304: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 307: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 304: { action.builder. + case 307: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 305: typename_opt ::= typename + // Rule 308: typename_opt ::= typename // - case 305: { action.builder. + case 308: { action.builder. consumePlaceHolder(); break; } // - // Rule 306: typename_opt ::= $Empty + // Rule 309: typename_opt ::= $Empty // - case 306: { action.builder. + case 309: { action.builder. consumeEmpty(); break; } // - // Rule 307: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 310: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 307: { action.builder. + case 310: { action.builder. consumeUsingDirective(); break; } // - // Rule 308: asm_definition ::= asm ( stringlit ) ; + // Rule 311: asm_definition ::= asm ( stringlit ) ; // - case 308: { action.builder. + case 311: { action.builder. consumeDeclarationASM(); break; } // - // Rule 309: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 312: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 309: { action.builder. + case 312: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 310: linkage_specification ::= extern stringlit declaration + // Rule 313: linkage_specification ::= extern stringlit declaration // - case 310: { action.builder. + case 313: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 316: init_declarator ::= declarator initializer + // Rule 319: init_declarator ::= declarator initializer // - case 316: { action.builder. + case 319: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 318: declarator ::= ptr_operator_seq direct_declarator + // Rule 321: declarator ::= ptr_operator_seq direct_declarator // - case 318: { action.builder. + case 321: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 320: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 323: function_declarator ::= ptr_operator_seq direct_declarator // - case 320: { action.builder. + case 323: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 324: basic_direct_declarator ::= declarator_id_name + // Rule 327: basic_direct_declarator ::= declarator_id_name // - case 324: { action.builder. + case 327: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 325: basic_direct_declarator ::= ( declarator ) + // Rule 328: basic_direct_declarator ::= ( declarator ) // - case 325: { action.builder. + case 328: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 326: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 329: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 326: { action.builder. + case 329: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 327: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 330: array_direct_declarator ::= array_direct_declarator array_modifier // - case 327: { action.builder. + case 330: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 328: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 331: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 328: { action.builder. + case 331: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 329: array_modifier ::= [ constant_expression ] + // Rule 332: array_modifier ::= [ constant_expression ] // - case 329: { action.builder. + case 332: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 330: array_modifier ::= [ ] + // Rule 333: array_modifier ::= [ ] // - case 330: { action.builder. + case 333: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 331: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 334: ptr_operator ::= * cv_qualifier_seq_opt // - case 331: { action.builder. + case 334: { action.builder. consumePointer(); break; } // - // Rule 332: ptr_operator ::= & + // Rule 335: ptr_operator ::= & // - case 332: { action.builder. + case 335: { action.builder. consumeReferenceOperator(); break; } // - // Rule 333: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 336: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 333: { action.builder. + case 336: { action.builder. consumePointerToMember(); break; } // - // Rule 339: cv_qualifier ::= const - // - case 339: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 340: cv_qualifier ::= volatile - // - case 340: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 342: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 342: cv_qualifier ::= const // case 342: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 343: cv_qualifier ::= volatile + // + case 343: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 345: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // + case 345: { action.builder. consumeQualifiedId(false); break; } // - // Rule 343: type_id ::= type_specifier_seq + // Rule 346: type_id ::= type_specifier_seq // - case 343: { action.builder. + case 346: { action.builder. consumeTypeId(false); break; } // - // Rule 344: type_id ::= type_specifier_seq abstract_declarator + // Rule 347: type_id ::= type_specifier_seq abstract_declarator // - case 344: { action.builder. + case 347: { action.builder. consumeTypeId(true); break; } // - // Rule 347: abstract_declarator ::= ptr_operator_seq + // Rule 350: abstract_declarator ::= ptr_operator_seq // - case 347: { action.builder. + case 350: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 348: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 351: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 348: { action.builder. + case 351: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 355: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 352: { action.builder. + case 355: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 353: array_direct_abstract_declarator ::= array_modifier + // Rule 356: array_direct_abstract_declarator ::= array_modifier // - case 353: { action.builder. + case 356: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 357: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 354: { action.builder. + case 357: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 358: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 355: { action.builder. + case 358: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 359: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 356: { action.builder. + case 359: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 360: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 357: { action.builder. + case 360: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 358: { action.builder. + case 361: { action.builder. consumePlaceHolder(); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 362: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 359: { action.builder. + case 362: { action.builder. consumeEmpty(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 363: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 360: { action.builder. + case 363: { action.builder. consumePlaceHolder(); break; } // - // Rule 366: abstract_declarator_opt ::= $Empty + // Rule 369: abstract_declarator_opt ::= $Empty // - case 366: { action.builder. + case 369: { action.builder. consumeEmpty(); break; } // - // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 370: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 367: { action.builder. + case 370: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers + // Rule 371: parameter_declaration ::= declaration_specifiers // - case 368: { action.builder. + case 371: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer - // - case 370: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer - // - case 372: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 373: parameter_init_declarator ::= = parameter_initializer + // Rule 373: parameter_init_declarator ::= declarator = parameter_initializer // case 373: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 375: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 375: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 376: parameter_init_declarator ::= = parameter_initializer + // + case 376: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 374: parameter_initializer ::= assignment_expression + // Rule 377: parameter_initializer ::= assignment_expression // - case 374: { action.builder. + case 377: { action.builder. consumeInitializer(); break; } // - // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 378: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 375: { action.builder. + case 378: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 379: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 376: { action.builder. + case 379: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 379: initializer ::= ( expression_list ) + // Rule 382: initializer ::= ( expression_list ) // - case 379: { action.builder. + case 382: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 380: initializer_clause ::= assignment_expression + // Rule 383: initializer_clause ::= assignment_expression // - case 380: { action.builder. + case 383: { action.builder. consumeInitializer(); break; } // - // Rule 381: initializer_clause ::= { initializer_list , } + // Rule 384: initializer_clause ::= { initializer_list , } // - case 381: { action.builder. + case 384: { action.builder. consumeInitializerList(); break; } // - // Rule 382: initializer_clause ::= { initializer_list } + // Rule 385: initializer_clause ::= { initializer_list } // - case 382: { action.builder. + case 385: { action.builder. consumeInitializerList(); break; } // - // Rule 383: initializer_clause ::= { } + // Rule 386: initializer_clause ::= { } // - case 383: { action.builder. + case 386: { action.builder. consumeInitializerList(); break; } // - // Rule 388: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 391: class_specifier ::= class_head { member_declaration_list_opt } // - case 388: { action.builder. + case 391: { action.builder. consumeClassSpecifier(); break; } // - // Rule 389: class_head ::= class_keyword identifier_name_opt base_clause_opt - // - case 389: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 390: class_head ::= class_keyword template_id_name base_clause_opt - // - case 390: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 391: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 392: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 392: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 393: class_head ::= class_keyword template_id_name base_clause_opt + // + case 393: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 394: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // + case 394: { action.builder. consumeClassHead(true); break; } // - // Rule 396: identifier_name_opt ::= $Empty + // Rule 395: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 396: { action.builder. + case 395: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 397: identifier_name_opt ::= $Empty + // + case 397: { action.builder. consumeEmpty(); break; } // - // Rule 400: visibility_label ::= access_specifier_keyword : + // Rule 401: visibility_label ::= access_specifier_keyword : // - case 400: { action.builder. + case 401: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 402: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 401: { action.builder. + case 402: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt ; + // Rule 403: member_declaration ::= declaration_specifiers_opt ; // - case 402: { action.builder. + case 403: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 406: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 405: { action.builder. + case 406: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 409: member_declaration ::= ERROR_TOKEN + // Rule 410: member_declaration ::= ERROR_TOKEN // - case 409: { action.builder. + case 410: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 417: member_declarator ::= declarator constant_initializer + // Rule 418: member_declarator ::= declarator constant_initializer // - case 417: { action.builder. + case 418: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 418: member_declarator ::= bit_field_declarator : constant_expression + // Rule 419: member_declarator ::= bit_field_declarator : constant_expression // - case 418: { action.builder. + case 419: { action.builder. consumeBitField(true); break; } // - // Rule 419: member_declarator ::= : constant_expression + // Rule 420: member_declarator ::= : constant_expression // - case 419: { action.builder. + case 420: { action.builder. consumeBitField(false); break; } // - // Rule 420: bit_field_declarator ::= identifier_name + // Rule 421: bit_field_declarator ::= identifier_name // - case 420: { action.builder. + case 421: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 427: { action.builder. + case 428: { action.builder. consumeBaseSpecifier(false); break; } // - // Rule 428: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. + case 429: { action.builder. consumeBaseSpecifier(true); break; } // - // Rule 429: virtual_opt ::= virtual + // Rule 430: virtual_opt ::= virtual // - case 429: { action.builder. + case 430: { action.builder. consumePlaceHolder(); break; } // - // Rule 430: virtual_opt ::= $Empty + // Rule 431: virtual_opt ::= $Empty // - case 430: { action.builder. + case 431: { action.builder. consumeEmpty(); break; } // - // Rule 436: conversion_function_id_name ::= operator conversion_type_id + // Rule 437: conversion_function_id_name ::= operator conversion_type_id // - case 436: { action.builder. + case 437: { action.builder. consumeConversionName(); break; } // - // Rule 437: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 438: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 437: { action.builder. + case 438: { action.builder. consumeTypeId(true); break; } // - // Rule 438: conversion_type_id ::= type_specifier_seq + // Rule 439: conversion_type_id ::= type_specifier_seq // - case 438: { action.builder. + case 439: { action.builder. consumeTypeId(false); break; } // - // Rule 439: conversion_declarator ::= ptr_operator_seq + // Rule 440: conversion_declarator ::= ptr_operator_seq // - case 439: { action.builder. + case 440: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 445: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 446: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 445: { action.builder. + case 446: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 446: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 447: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 446: { action.builder. + case 447: { action.builder. consumeQualifiedId(false); break; } // - // Rule 449: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 450: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 449: { action.builder. + case 450: { action.builder. consumeTemplateId(); break; } // - // Rule 450: operator_id_name ::= operator overloadable_operator + // Rule 451: operator_id_name ::= operator overloadable_operator // - case 450: { action.builder. + case 451: { action.builder. consumeOperatorName(); break; } // - // Rule 493: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 494: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 493: { action.builder. + case 494: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 494: export_opt ::= export + // Rule 495: export_opt ::= export // - case 494: { action.builder. + case 495: { action.builder. consumePlaceHolder(); break; } // - // Rule 495: export_opt ::= $Empty + // Rule 496: export_opt ::= $Empty // - case 495: { action.builder. + case 496: { action.builder. consumeEmpty(); break; } // - // Rule 500: type_parameter ::= class identifier_name_opt - // - case 500: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 501: type_parameter ::= class identifier_name_opt = type_id + // Rule 501: type_parameter ::= class identifier_name_opt // case 501: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 502: type_parameter ::= typename identifier_name_opt - // - case 502: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 503: type_parameter ::= typename identifier_name_opt = type_id + // Rule 502: type_parameter ::= class identifier_name_opt = type_id // - case 503: { action.builder. + case 502: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 504: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 503: type_parameter ::= typename identifier_name_opt + // + case 503: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 504: type_parameter ::= typename identifier_name_opt = type_id // case 504: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 505: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // + case 505: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 505: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 505: { action.builder. + case 506: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 506: template_id_name ::= template_identifier < template_argument_list_opt > + // Rule 507: template_id_name ::= template_identifier < template_argument_list_opt > // - case 506: { action.builder. + case 507: { action.builder. consumeTemplateId(); break; } // - // Rule 515: explicit_instantiation ::= template declaration + // Rule 516: explicit_instantiation ::= template declaration // - case 515: { action.builder. + case 516: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 516: explicit_specialization ::= template < > declaration + // Rule 517: explicit_specialization ::= template < > declaration // - case 516: { action.builder. + case 517: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 517: try_block ::= try compound_statement handler_seq + // Rule 518: try_block ::= try compound_statement handler_seq // - case 517: { action.builder. + case 518: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 520: handler ::= catch ( exception_declaration ) compound_statement + // Rule 521: handler ::= catch ( exception_declaration ) compound_statement // - case 520: { action.builder. + case 521: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 521: handler ::= catch ( ... ) compound_statement + // Rule 522: handler ::= catch ( ... ) compound_statement // - case 521: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 522: exception_declaration ::= type_specifier_seq declarator - // - case 522: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 523: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 523: exception_declaration ::= type_specifier_seq declarator // case 523: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq + // Rule 524: exception_declaration ::= type_specifier_seq abstract_declarator // case 524: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 525: exception_declaration ::= type_specifier_seq + // + case 525: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 532: no_cast_start ::= ERROR_TOKEN + // Rule 533: no_cast_start ::= ERROR_TOKEN // - case 532: { action.builder. + case 533: { action.builder. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java index 9b7edb816ae..79860aa8426 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java @@ -37,493 +37,511 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseCheck { public final static short baseCheck[] = {0, - 0,0,0,0,0,1,1,1,1,1, - 0,1,2,1,1,1,1,1,1,1, - 1,1,1,1,3,1,1,1,1,1, - 1,1,1,2,1,1,0,1,0,4, - 2,2,2,3,2,3,2,2,1,0, - 1,1,1,4,4,4,8,8,3,3, - 4,4,3,3,2,2,7,7,7,7, - 4,4,6,7,4,1,1,1,2,2, - 2,2,2,2,2,2,2,4,7,7, - 3,1,0,1,2,2,1,2,3,4, - 1,0,3,1,0,3,5,1,1,3, - 3,1,3,3,3,1,3,3,1,3, - 3,1,3,3,3,3,1,3,3,1, - 3,1,3,1,3,1,3,1,3,1, - 5,1,2,1,1,3,3,3,3,3, - 3,3,3,3,3,3,1,1,2,1, - 3,1,0,1,0,1,1,0,1,1, - 1,1,1,1,1,1,1,3,3,2, - 2,1,4,2,1,2,5,7,5,1, - 4,5,7,9,8,2,2,3,2,3, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2,1,0,4,2,2, - 2,2,2,1,0,1,1,1,1,1, - 1,2,1,2,2,2,1,1,2,2, + 0,0,1,1,1,1,1,1,1,1, + 1,0,1,2,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3,1,1, + 1,1,1,1,1,1,2,1,1,0, + 1,0,4,2,2,2,3,2,3,2, + 2,1,0,1,1,1,4,4,4,8, + 8,3,3,4,4,3,3,2,2,7, + 7,7,7,4,4,6,7,4,1,1, + 1,2,2,2,2,2,2,2,2,2, + 4,7,7,3,1,0,1,2,2,1, + 2,3,4,1,0,3,1,0,3,5, + 1,1,3,3,1,3,3,3,1,3, + 3,1,3,3,1,3,3,3,3,1, + 3,3,1,3,1,3,1,3,1,3, + 1,3,1,5,1,2,1,1,3,3, + 3,3,3,3,3,3,3,3,3,1, + 1,2,1,3,1,0,1,0,1,1, + 0,1,1,1,1,1,1,1,1,1, + 3,3,2,2,1,4,2,1,2,5, + 7,5,1,4,5,7,9,8,2,2, + 3,2,3,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2,1,0, + 4,2,2,2,2,2,1,0,1,1, + 1,1,1,1,2,1,2,2,2,1, 1,2,2,1,2,2,1,2,2,1, + 2,2,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3,4,4,5,4,5, - 4,1,5,6,1,3,1,0,1,3, - 1,1,1,1,1,1,1,1,6,6, - 5,1,7,6,1,0,6,5,6,4, - 1,3,1,0,1,2,1,3,1,3, - 1,1,1,1,3,9,2,2,3,2, - 3,1,5,1,2,2,1,0,1,1, - 1,3,1,2,1,1,2,3,1,1, - 1,3,1,2,2,9,8,2,1,3, - 1,3,1,0,1,0,2,1,1,3, - 1,3,2,1,5,8,1,2,3,1, - 5,4,3,1,3,1,1,5,4,4, - 5,5,1,0,1,0,1,1,1,2, - 4,2,2,1,5,1,1,1,1,1, - 2,1,0,1,3,1,2,3,2,1, - 2,2,1,0,1,3,3,6,1,0, - 1,1,1,1,0,2,2,1,2,2, - 1,0,1,3,4,3,1,1,5,2, - 1,1,3,3,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3,4,4, + 5,4,5,4,1,5,6,1,3,1, + 0,1,3,1,1,1,1,1,1,1, + 1,6,6,5,1,7,6,1,0,6, + 5,6,4,1,3,1,0,1,2,1, + 3,1,3,1,1,1,1,3,9,2, + 2,3,2,3,1,5,1,2,2,1, + 0,1,1,1,3,1,2,1,1,2, + 3,1,1,1,3,1,2,2,9,8, + 2,1,3,1,3,1,0,1,0,2, + 1,1,3,1,3,2,1,5,8,1, + 2,3,1,5,4,3,1,3,1,1, + 5,4,4,5,5,1,0,1,1,1, + 2,4,2,2,1,5,1,1,1,1, + 1,2,1,0,1,3,1,2,3,2, + 1,2,2,1,0,1,3,3,6,1, + 0,1,1,1,1,0,2,2,1,2, + 2,1,0,1,3,4,3,1,1,5, + 2,1,1,3,3,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 2,2,7,1,0,1,3,1,1,2, - 4,2,4,7,9,5,1,1,3,1, - 0,1,1,1,2,4,4,1,2,5, - 5,3,3,1,4,3,1,0,1,3, - 1,1,-109,0,0,0,-2,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-11,0,0,0,0, - 0,0,0,0,0,0,-50,0,0,0, - 0,-4,0,0,-124,-70,0,0,0,0, - 0,0,0,0,0,0,0,-178,0,-76, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-229,0,0,-137,0,0,0,0, - 0,0,0,0,0,0,0,0,-22,0, - 0,0,-54,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-177,0,0,0,0, - -53,0,-71,0,0,0,0,0,0,0, - 0,0,0,0,-5,0,-6,0,0,0, - 0,0,0,-116,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-7,0,0,0,0,0,-182,0,0, - 0,-138,0,0,0,-8,0,0,-511,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-60,0,0,-133,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-129,0, - 0,0,-240,0,0,0,-9,0,-10,-140, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-230,0,0,-143,0,0,0,-12, - 0,0,0,0,0,0,0,0,-13,-63, - -223,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-395,0,-327,0,0,0,0,0, - 0,0,0,0,-186,0,0,0,0,-14, - 0,-509,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-341, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-519,0,0,0,-432,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-331,0,0,0,0,0,-201,0,0, - 0,0,-106,0,0,-3,0,0,0,-62, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-225,0,0,0,0,0,-57, - 0,0,0,0,-51,0,0,-136,0,0, - -131,0,-284,0,0,0,-107,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-353,0,0,0, - 0,0,0,0,0,-236,0,0,0,-317, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-171,0,0,0,0,0,0,0, - 0,0,0,-258,0,0,0,0,0,0, - 0,-16,0,-17,0,0,0,0,0,0, - 0,-318,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-58, - -29,0,0,-361,0,-472,0,0,0,-352, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-30,0, - 0,0,0,-261,0,0,0,0,0,-132, - 0,0,0,0,-31,0,0,0,0,-40, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-134,0,0, - -115,0,0,-400,0,0,0,-32,0,0, - 0,-42,0,0,0,-33,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-34,0,0,-340,0,0,0,0, - 0,0,0,0,-93,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-35,0,0,0,0,0,0,0, - 0,0,-145,0,0,0,-94,0,0,0, - -207,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-36,0,0,-37,0,0, - -38,0,0,0,-469,-139,0,0,-95,0, - 0,0,-39,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-144,0,0, - -96,0,0,0,-168,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-41,0,0,0,0,0,0, - 0,0,0,0,-300,0,0,0,-169,0, - 0,0,-97,0,0,0,-55,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-259,0,0,0,0, - 0,0,0,0,0,0,-184,0,0,0, - 0,-202,0,0,-98,0,0,0,-216,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-185,0, - 0,0,0,-212,0,0,-99,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-272, - 0,0,0,0,0,0,0,0,0,0, - -187,0,0,0,0,-237,0,0,-100,0, - 0,0,-298,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-308,0,0,0,0,-56,0,0,0, - 0,0,-189,0,0,0,0,-244,0,0, - -101,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-59,0,0,0,0,0,0, - 0,0,0,0,-192,0,0,0,0,-64, - 0,0,-102,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-360,0,0,0,0, - 0,0,0,-238,0,0,-200,0,0,0, - 0,-65,0,0,-103,0,0,0,-231,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-297,0,0, - 0,0,-66,0,0,-210,0,0,-214,0, - 0,0,0,-251,0,0,-166,0,0,0, - -68,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-430, - 0,0,0,0,0,0,0,0,0,0, - -306,0,0,0,-208,0,0,0,0,0, + 1,2,2,7,1,0,1,3,1,1, + 2,4,2,4,7,9,5,1,1,3, + 1,0,1,1,1,2,4,4,1,2, + 5,5,3,3,1,4,3,1,0,1, + 3,1,1,-109,0,0,0,0,-54,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-417,0,0, - 0,0,-114,0,0,0,0,0,-501,0, - 0,0,0,0,0,0,0,-351,0,0, - 0,0,0,0,0,0,0,-69,-366,0, - -504,0,0,0,0,0,0,0,0,0, + 0,0,-11,0,0,0,0,0,0,0, + 0,0,-2,0,0,0,-53,-70,0,0, + 0,0,-341,0,0,0,0,0,0,0, + -76,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-124,0,-310, + 0,0,0,0,-178,0,0,0,0,0, + -20,0,0,0,0,-4,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-71,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-177,0,0,0,0,-276,0,-5,0, + 0,0,0,0,0,-116,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-252, - 0,0,-309,0,0,0,-110,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-111,0,0,0,0, - 0,0,0,0,0,0,-112,0,0,0, - -312,0,0,0,-452,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-310,0,0,0,0,0,0, - 0,0,0,0,-267,0,0,0,-243,0, - 0,0,-250,0,0,0,-234,0,-141,0, - 0,0,-270,0,0,0,-337,0,0,0, + -50,0,0,0,-331,0,0,0,-411,0, + -512,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-133,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-369,0,0,-113,0,0, - -120,0,0,0,-358,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-127,0,0, - 0,0,-264,0,0,-502,0,0,-268,0, - 0,0,-275,0,0,0,-294,0,0,0, - 0,-128,-342,0,0,0,0,0,0,0, - -359,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-146,0, - 0,0,0,0,0,0,0,0,-403,0, + 0,0,0,0,0,0,-6,0,0,-7, + 0,0,-57,0,0,0,-51,0,0,0, + -8,0,-137,0,0,0,0,0,0,0, + 0,0,0,-140,0,0,0,0,0,0, + 0,0,0,0,0,0,-60,0,-225,0, + 0,-58,-223,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-287,0,0,0,0,-147,0,0,-396, - 0,0,-148,0,0,0,-367,0,-333,-354, - 0,-227,-385,0,0,0,-149,0,-253,-235, - 0,0,0,0,-105,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-184,-9,0,0,-361,0,-143,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-288,0, - 0,-349,-92,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -254,0,0,-150,0,0,-90,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-91, - 0,0,0,-293,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-276,0,0, - -52,0,0,0,-151,0,-313,0,-377,-447, - -481,0,0,0,0,0,0,0,0,0, - -370,-228,-471,-152,0,0,0,-87,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-153,0,-77,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -232,0,0,-154,0,0,0,0,0,-480, - 0,-368,-155,0,0,0,-21,0,0,0, - -156,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-386,0,0,0,-157,0, - 0,0,0,0,0,0,-257,0,-283,0, - 0,-492,0,0,0,0,0,0,0,0, - 0,-88,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-158,0,0,0,0,-89, - 0,0,0,-159,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-160,0,0,0,0,-81,0,0, - 0,-161,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -162,0,0,0,-82,0,0,0,-233,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-83,0,0,0,-321,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-163,0,0,0,-84,0, - 0,0,-164,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-357,0,0,0,-246,0,0,0,0, - 0,0,0,0,0,0,0,-85,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -339,0,0,-269,-295,-170,-301,-296,0,-465, - 0,0,0,0,-195,0,0,0,-497,0, - -173,-319,0,0,0,0,-325,0,0,0, - 0,-108,-249,0,0,0,-344,0,0,0, - 0,0,-328,-174,0,0,0,0,-290,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-277,0,0,0,0,-86,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-455,0,0,-322,0,0,-175,0,-330, - 0,0,0,0,-346,0,0,0,0,-363, - -176,0,0,0,0,0,0,0,-343,-362, - -122,0,0,0,-457,0,-179,0,0,0, - 0,0,0,0,0,-180,-376,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-181,0,-470,-118,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-190,0,-239,0,0,0,0,0,0, - 0,0,0,0,-475,-191,0,-196,-350,-1, - 0,-18,0,0,-167,0,-493,-380,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-19,0,0,0,-383,0,0,0, - 0,-477,-119,0,0,0,0,0,0,0, - -266,-121,-49,0,0,0,0,0,-405,0, + 0,0,0,0,-510,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-292,0, - 0,0,0,0,0,0,-415,0,-496,0, - 0,0,0,0,0,0,0,0,0,-197, - -412,0,-203,0,0,0,-479,-211,0,0, - 0,0,0,0,0,0,0,0,0,-72, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-21,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-221,-419,0,0,0,0,-222,0, - 0,-224,0,0,0,0,0,0,0,0, - 0,-503,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-242, - 0,0,-206,0,0,0,-245,0,-247,0, - 0,0,0,-262,-263,0,0,0,0,-413, - -280,-117,-498,-421,-316,0,0,0,-273,0, - 0,-209,-271,0,0,0,0,-422,0,0, - 0,0,0,-516,0,0,-332,0,0,0, - 0,0,0,0,0,0,0,0,0,-420, - 0,-302,0,0,0,0,0,0,0,0, - 0,0,0,-414,-44,0,0,-348,0,-454, + 0,-432,-520,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-248,-426,0,-274,0,0,0,-384,-278, - 0,0,0,0,0,0,-281,-73,0,0, - 0,0,0,0,0,-282,0,0,0,0, - 0,0,-285,0,0,0,0,-286,0,0, - 0,0,0,0,0,0,0,0,0,-401, - 0,-441,-165,0,0,0,0,0,0,0, - 0,0,0,-299,0,0,0,0,-304,-442, - -451,0,0,-204,0,0,0,0,-305,0, - 0,0,0,0,0,0,0,0,0,-123, - 0,0,0,0,0,0,-462,0,0,0, - 0,0,0,0,0,0,-445,0,0,0, - 0,0,0,0,0,0,0,0,0,-390, - 0,0,0,0,0,0,0,0,-315,-326, - 0,-336,0,0,-424,0,0,0,0,0, - 0,0,0,0,0,0,-338,-364,0,-466, - 0,-78,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-48,0,0,0,-464,-365, - 0,-449,0,0,0,0,-347,0,0,0, - 0,0,0,0,-371,-456,-458,0,0,0, - 0,-373,-378,-484,-495,0,0,0,0,0, - -375,-381,0,0,-474,-382,0,0,0,0, - -468,0,-391,0,0,0,-79,0,0,0, + 0,-63,0,0,-207,0,0,-114,0,0, + 0,0,0,0,0,-327,0,0,0,0, + -229,0,0,0,0,0,0,-351,0,0, + 0,0,-306,0,0,0,0,0,0,-3, + 0,0,0,0,-106,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-241, - 0,0,0,0,0,-80,0,0,0,0, + 0,0,0,-231,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-264,0, + 0,0,-17,0,0,0,0,0,0,0, + 0,-186,0,0,0,0,-284,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-394, - 0,-402,-404,0,-324,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -406,-388,0,0,0,-255,-379,-407,-408,0, - 0,-488,-482,-393,0,0,0,0,0,0, - 0,0,0,0,0,-499,-410,-483,-494,0, - -411,0,0,0,0,0,0,0,-507,0, - -416,0,0,0,-125,-15,0,0,0,0, - 0,-418,0,0,0,-423,0,0,0,0, - 0,0,0,-510,0,-392,-508,-513,0,0, - 0,0,0,0,0,-515,0,0,-130,0, - 0,0,-425,0,0,0,0,0,0,0, - 0,0,0,-518,0,0,0,0,0,-427, - 0,0,0,-104,-428,0,-429,0,0,0, - -431,0,-433,0,0,0,0,0,0,0, - 0,0,0,0,-409,0,-434,0,0,-439, - -397,0,0,0,0,0,-444,0,0,0, - 0,0,-183,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-453,-460, - -467,-486,0,0,-500,-435,-505,0,0,0, + -10,0,0,0,0,-129,0,0,-238,0, + 0,0,0,0,0,0,0,0,0,-317, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-171,0, + 0,-62,0,0,0,0,0,0,0,0, + 0,0,-12,0,-318,0,0,0,0,-131, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-185,0, + 0,0,0,0,0,0,-107,0,0,-13, + 0,0,0,-14,0,0,0,-473,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-300,0,0,-132, + 0,0,0,0,0,0,-16,0,0,0, + 0,-377,-40,0,0,0,0,-352,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-201,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-261,0,0,0,-333,-42,0,0,0, + 0,-29,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-93, + 0,0,0,0,-115,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-339,0,0,0,0,-134,0, + 0,-139,0,0,-30,0,0,0,0,0, + 0,0,-94,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-145,0,0,0,0,0,-349,0,0, + 0,-31,0,0,0,-95,0,0,0,0, + -144,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -368,0,0,0,-32,0,0,0,-96,0, + 0,0,0,-168,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-360,0,0, + 0,0,0,0,0,0,0,-33,-169,0, + 0,-97,0,0,0,0,-287,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-187,0,0,0,0, + 0,0,0,0,0,0,-189,0,0,0, + 0,0,0,0,-98,0,0,0,0,-288, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-210,0,0,0,0,0,-192, + 0,0,0,-34,0,0,0,-99,0,0, + 0,0,-202,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-200,0,0,0,0,0,0,0,0, + 0,0,-405,0,0,0,-35,0,0,0, + -100,0,0,0,0,-212,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-430, + 0,0,0,0,0,0,0,0,0,-36, + 0,0,0,-101,0,0,0,0,-216,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-214,0,0, + 0,0,0,0,0,-237,0,0,-227,0, + 0,0,-37,0,0,0,-102,0,0,0, + 0,-38,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-39,0, + 0,-228,0,0,0,-41,0,0,0,-103, + 0,0,0,0,-244,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-232,0,0,0,0,0,0, + 0,-251,0,0,-313,0,0,0,-55,0, + 0,0,-166,0,0,0,0,-252,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-117,0,0,-56,0,0,0,0,0, + 0,-59,0,-208,0,0,0,0,-64,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-257,0,0, + 0,0,0,0,0,0,0,0,-259,0, + 0,0,-344,0,0,0,-448,0,-141,0, + 0,0,0,-366,0,0,-505,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-458,0,0,0,0, + 0,0,0,0,0,-298,-253,0,0,-309, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-165,0, + 0,0,0,0,0,0,0,0,-312,0, + 0,0,0,-277,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -65,0,0,0,0,0,0,-236,0,0, + 0,0,0,-66,0,-342,0,0,0,0, + -234,0,0,-337,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-291,0,0,0,0,0,0,0, + 0,0,-358,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-136,0,0,0, + 0,0,0,0,-68,0,0,-69,0,0, + 0,-243,0,0,0,0,-413,-110,0,-386, + 0,0,0,0,0,0,0,-359,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-448,-256,0,0,0, + 0,0,-111,0,0,0,-403,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-135,0,0,0,0,0,0,0, - 0,-450,0,0,0,0,0,0,0,0, - 0,0,0,0,-45,0,-311,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-46,0,0,0,0,0, + -370,0,0,0,0,0,0,0,-112,0, + 0,-113,0,0,0,-250,0,0,0,0, + -354,0,0,-385,0,0,0,-416,0,0, + -120,-105,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-283,0,0,0,0, + 0,0,0,-269,0,0,0,0,-272,0, + -92,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-254,0,0,0,0,-127, + 0,0,-293,0,0,-90,0,0,0,0, + -308,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-91, + 0,0,0,0,-128,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-146,0,0,0,0,-118,0, + 0,-52,0,0,0,0,0,0,-249,0, + 0,0,0,-147,0,0,0,0,0,0, + 0,0,-395,0,0,0,-295,-148,-87,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-396,0,0,0,0,0,0,-321, + 0,0,-401,0,-296,0,-149,0,-388,0, + 0,0,0,-322,-150,0,-270,0,0,0, + 0,0,-44,-45,0,-151,0,0,0,0, + 0,0,0,0,0,0,0,0,-472,0, + 0,0,0,0,-152,-301,0,0,0,0, + 0,0,-153,0,0,0,0,0,-414,0, + 0,0,0,0,0,-319,0,0,0,-154, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-343,0,0,0,-155,0,0,0, + 0,0,0,-88,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-89,0,0,0,0,-502,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-81,0,0,0,0,-156,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-157,0,0,0,-82, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-400,0,0,0,-83,0,0, + 0,0,-158,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-159,0,0,0,-84,0,0,0,0, + -453,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-357, + 0,0,0,-246,0,0,0,0,0,0, + 0,0,0,0,0,0,-85,0,0,0, + 0,-160,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -161,0,0,-275,0,0,0,0,-325,-328, + -462,-213,-182,0,0,0,0,0,0,-330, + 0,0,0,0,0,-162,0,0,0,-230, + 0,0,-163,0,0,0,-294,0,0,0, + 0,-164,-362,0,-170,-173,-290,0,0,0, + 0,0,0,0,0,0,0,0,0,-476, + 0,-174,0,0,0,0,0,0,0,-233, + 0,0,-86,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-481, + 0,0,-346,-353,0,0,0,0,0,0, + 0,0,-412,-363,-376,-419,0,0,0,0, + -258,0,0,0,0,0,0,-504,0,0, + 0,0,0,0,0,0,0,0,0,0, + -175,0,0,0,0,0,0,0,0,0, + 0,0,0,-176,0,-77,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-380, + 0,-179,0,-108,0,0,0,0,0,-180, + -340,0,0,0,0,-181,0,0,-190,-191, + -323,0,-235,0,0,0,0,0,-302,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-196,0,0,0,0,0,0, + 0,-197,-498,0,0,0,-424,0,0,0, + 0,0,0,0,0,0,0,0,0,-167, + -138,-203,-420,0,0,-456,0,-267,-383,-442, + 0,0,-211,0,0,-15,0,0,0,0, + 0,-240,0,0,-209,0,0,0,-470,0, + 0,-271,0,0,0,0,0,0,0,0, + -221,0,0,-455,0,0,0,0,0,0, + 0,0,0,-443,0,0,0,0,0,0, + 0,0,0,0,-222,0,0,0,-224,0, + -415,-452,0,0,0,0,0,-1,0,-43, + 0,-471,0,0,0,-493,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-268, + -242,0,0,-334,0,0,0,-245,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-421,0,0, + 0,0,0,0,-247,0,-478,-262,-369,0, + 0,0,0,-18,-263,0,0,-49,0,0, + 0,-463,0,0,-273,0,0,0,0,0, + 0,0,0,0,0,-122,0,0,0,0, + -274,0,0,0,0,0,0,0,-278,-422, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-135,0,0,-465,0,0,-281, + 0,-480,-469,-119,0,0,0,0,0,0, + 0,0,-121,0,0,0,-282,0,0,-426, + 0,0,0,0,0,0,0,0,0,0, + -285,0,-130,0,0,0,0,0,-483,-446, + 0,-467,-123,0,0,0,0,-484,0,-495, + 0,0,0,0,0,0,0,-19,0,0, + 0,0,-450,-457,0,0,-459,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -286,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-299, + 0,0,-22,0,0,0,0,-304,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-305,0,0,0,-78, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-79,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-80,0,0, + 0,0,-125,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-324,0,0,0,0,-475,0,0,0, + 0,0,0,0,-389,-485,-73,-315,-494,0, + 0,0,-489,-239,-48,0,0,0,0,0, + -496,-497,-326,-499,-384,0,-336,-338,0,0, + -500,-364,-365,-503,0,0,0,-371,-373,0, + -183,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-476,0,0,-291,0,0,0,0, + -375,0,-381,0,0,0,0,0,0,0, + 0,0,0,0,0,-382,0,0,0,0, + 0,0,0,0,-23,0,0,0,0,-391, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-23,0,0,0, + 0,0,0,0,0,0,0,-24,0,0, + 0,0,-517,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -25,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-26,0,0,0,0,-394,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-402,0,-27, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-485,0,0,0,0,0,-43,0,0, - 0,0,0,0,0,0,-334,-194,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-487,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-387,-491,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-205, - 0,0,0,0,-47,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-512,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-199,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-517,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-215,0,0,0,0,-389,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-520,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-489,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-24,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-25,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-26, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-27,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-28,0,0,0,0,0,0, + 0,0,-28,0,0,0,0,-404,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,-61,0,0,0,0, + -406,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-74,0, + 0,0,0,-407,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-74,0,0, + 0,-75,0,0,0,0,-509,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-75, + 0,0,0,0,-126,0,0,0,0,-408, + 0,-410,-418,-423,-425,-508,-427,0,0,-428, + -429,0,-511,-514,-280,-142,0,0,0,0, + 0,-198,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-126,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-356,0,0,0,0, - 0,0,0,0,0,0,0,0,-198,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -443,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-506,-217,0,-398,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-314,0,0,0,0,0, - 0,0,0,0,0,0,0,-218,0,0, + 0,0,0,0,-72,0,-466,0,0,0, + -379,0,0,-431,-516,0,0,-433,0,0, + 0,0,-434,0,-194,0,0,0,0,-435, + 0,-519,-440,0,0,0,-392,0,0,-445, + -454,0,0,0,-461,0,-468,-487,0,0, + 0,-367,0,0,0,-501,0,0,-506,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-20,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-409,0,0,0, + -104,0,-67,0,-46,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-482,0,0,0,0,0,0,0, + 0,0,0,-255,0,0,0,-436,0,0, + 0,0,0,0,0,0,-297,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-444,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-449,0,0, + 0,0,0,-265,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-451,-256,-217,0,0,0,0, + 0,0,0,0,0,0,-47,-316,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -477,0,0,0,0,0,0,0,0,0, + 0,0,0,-311,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-248,0,0,0,0,0,-218,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-486, + 0,0,0,0,0,-437,0,0,0,0, + 0,0,0,-347,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -488,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-205,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-492,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-513,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -215,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-518,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-521,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-387, + 0,-378,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-348,0,0,0,0,0, 0,0,-355,0,0,0,0,0,0,0, - 0,0,0,0,-514,-436,0,0,0,0, - 0,0,0,0,0,0,-473,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-390,-474,0,0,0,0, + 0,0,0,0,0,0,0,0,-303,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-490,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-464,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-320,0,0,0,0, - 0,0,0,0,0,0,0,-303,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-463,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-265,0, + 0,0,0,-332,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-226, - 0,0,0,0,0,0,0,0,-142,0, + 0,0,0,0,-356,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-172, + 0,0,0,0,-195,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-188,0,0,0, + 0,-172,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -393,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-226,0,-199,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -188,0,0,0,0,0,0,0,0,0, + 0,-266,0,0,0,0,0,0,0,0, 0,0,-193,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-398, + 0,0,0,0,0,0,0,0,0,0, 0,0,0,-289,0,0,0,0,0,0, + 0,0,0,0,-350,0,0,-399,0,0, + 0,0,0,0,0,-307,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -307,0,0,0,0,0,0,0,0,-329, + 0,0,0,0,0,0,0,0,0,0, + -329,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-335,0,0,0,0,0,0,0,0, + 0,-219,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-372,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-374,0,0,0,0, + 0,0,0,0,0,-220,0,0,0,-447, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-460,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-479, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-204,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-260,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-206, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-241,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-314,0,0,0,0,0,0,-320, + 0,0,0,0,0,0,0,0,-345,0, + 0,0,0,-397,-439,0,-507,-438,0,0, + -441,0,0,-515,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-335,0,0,0, - 0,0,0,0,0,0,-461,0,0,0, - 0,0,0,0,0,0,0,-372,0,0, - 0,0,0,-374,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-459,0,0,0,0,0, - -478,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-213,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-260,0, - 0,0,0,-323,0,0,0,0,0,-219, - -438,0,0,0,0,-345,0,0,0,0, - 0,-220,0,0,0,0,0,-67,0,0, - -399,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-437,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-446,0, - 0,0,0,0,-440,0,0,0,0,0, - 0,0,0,0,0,0,-279,0,0,0, - 0,0,0,0,0,0,0,0,0,-490, + 0,0,0,0,0,0,-279,0,0,-491, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -533,7 +551,9 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -543,534 +563,559 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 172,4,193,194,195,136,80,34,65,39, - 196,196,197,197,198,198,15,15,15,15, - 15,15,15,15,16,16,16,14,10,10, - 8,8,8,8,8,1,66,66,5,5, - 11,11,11,11,47,47,137,137,138,62, - 62,45,45,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17, - 17,17,17,139,139,139,18,18,18,18, - 18,18,18,18,18,18,18,18,18,19, - 19,176,173,173,174,174,177,141,141,178, - 178,175,175,142,140,140,20,20,21,22, - 22,22,24,24,24,24,25,25,25,26, - 26,26,27,27,27,27,27,29,29,29, - 30,30,32,32,33,33,35,35,36,36, - 37,37,41,41,40,40,40,40,40,40, - 40,40,40,40,40,40,40,38,38,28, - 143,143,103,103,106,106,98,199,199,71, - 71,71,71,71,71,71,71,71,72,72, - 72,73,73,56,56,179,179,74,74,74, - 117,117,75,75,75,75,76,76,76,76, - 76,77,81,81,81,81,81,81,81,51, - 51,51,51,51,108,108,109,109,50,23, - 23,23,23,23,46,46,93,93,93,93, - 93,150,150,145,145,145,145,145,146,146, + 173,5,137,81,81,35,35,66,66,40, + 40,194,194,195,195,196,196,1,1,16, + 16,16,16,16,16,16,16,17,17,17, + 15,11,11,9,9,9,9,9,2,67, + 67,6,6,12,12,12,12,48,48,138, + 138,139,63,63,46,46,18,18,18,18, + 18,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18,18,140,140,140,19, + 19,19,19,19,19,19,19,19,19,19, + 19,19,20,20,177,174,174,175,175,178, + 142,142,179,179,176,176,143,141,141,21, + 21,22,23,23,23,25,25,25,25,26, + 26,26,27,27,27,28,28,28,28,28, + 30,30,30,31,31,33,33,34,34,36, + 36,37,37,38,38,42,42,41,41,41, + 41,41,41,41,41,41,41,41,41,41, + 39,39,29,144,144,104,104,107,107,99, + 197,197,72,72,72,72,72,72,72,72, + 72,73,73,73,74,74,57,57,180,180, + 75,75,75,118,118,76,76,76,76,77, + 77,77,77,77,78,82,82,82,82,82, + 82,82,52,52,52,52,52,109,109,110, + 110,51,24,24,24,24,24,47,47,94, + 94,94,94,94,151,151,146,146,146,146, 146,147,147,147,148,148,148,149,149,149, - 94,94,94,94,94,95,95,95,87,12, - 13,13,13,13,13,13,13,13,13,13, - 13,82,82,82,121,121,121,121,121,119, - 119,119,88,120,120,152,152,151,151,123, - 123,124,43,43,42,86,86,89,89,91, - 92,90,44,53,48,153,153,54,52,85, - 85,154,154,144,144,125,125,79,79,155, - 155,63,63,63,58,58,57,64,64,69, - 69,55,55,55,96,96,105,104,104,61, - 61,59,59,60,60,49,107,107,107,99, - 99,99,100,101,101,101,102,102,110,110, - 110,112,112,111,111,200,200,97,97,181, - 181,181,181,181,127,67,67,157,180,180, - 128,128,128,128,182,182,31,31,118,129, - 129,129,129,201,201,113,113,122,122,122, - 159,160,160,160,160,160,160,160,160,160, - 185,185,183,183,184,184,161,161,161,161, - 162,186,115,114,114,187,187,163,163,131, - 131,130,130,130,202,202,9,188,188,189, - 164,156,156,165,165,166,167,167,6,6, - 7,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169, - 169,169,169,68,70,70,170,170,132,132, - 133,133,133,133,133,133,2,3,171,171, - 168,168,134,134,134,83,84,78,158,158, - 116,116,190,190,190,135,135,126,126,191, - 191,172,172,1361,1838,1751,880,755,4530,31, - 1102,28,32,27,29,2656,259,26,24,53, - 1151,108,77,78,109,1179,905,1238,1195,1273, - 1246,3275,1355,1313,271,1361,1358,48,1373,1434, - 144,684,923,160,145,1623,2777,819,33,880, - 4563,4509,31,1102,28,32,60,29,1652,2979, - 3302,819,33,880,228,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,109,1179,2840,2099,274,69,819,33,880, - 273,272,31,1102,40,32,231,226,227,3302, - 1838,1751,880,1478,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 85,238,241,244,247,2771,1652,507,2973,880, - 34,564,2011,2890,819,33,880,491,4509,31, - 1102,28,32,59,29,1084,675,58,2808,2873, - 2882,3190,3445,4222,2273,819,33,880,2301,2863, - 31,1102,28,32,2786,29,810,259,26,24, - 53,1151,108,77,78,109,1179,345,1238,1195, - 1273,1246,2710,1355,1313,64,1361,1358,1551,1373, - 1434,144,2335,3543,512,145,2898,389,423,499, - 819,33,880,2682,3860,31,1102,28,32,27, - 29,492,1478,505,513,2273,819,33,880,2301, - 2863,31,1102,28,32,2786,29,810,259,26, - 24,53,1151,108,77,78,109,1179,345,1238, - 1195,1273,1246,335,1355,1313,25,1361,1358,905, - 1373,1434,144,2905,3778,512,145,3427,3174,3456, - 413,819,33,880,2682,3860,31,1102,28,32, - 62,29,63,2857,279,513,413,819,33,880, - 144,3860,31,1102,28,32,61,29,508,3487, - 1101,2610,819,33,880,2301,2863,31,1102,28, - 32,2786,29,810,259,26,24,53,1151,108, - 77,78,109,1179,345,1238,1195,1273,1246,3174, - 1355,1313,2777,1361,1358,2805,1373,1434,144,44, - 2933,512,145,2323,3507,69,819,33,880,1973, - 2682,31,1102,2202,32,1652,2322,2152,880,508, - 3488,513,2652,819,33,880,616,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,109,1179,3500,1238,1195,1273,1246, - 1854,1355,1313,2930,1361,1358,2805,1373,1434,144, - 46,2933,380,145,2724,819,33,880,3128,2863, - 31,1102,28,32,27,29,810,259,26,24, - 53,1151,108,77,78,109,1179,383,1238,1195, - 1273,1246,3529,1355,1313,509,1361,1358,2066,1373, - 1434,144,2824,1478,380,145,3049,819,33,880, - 488,2863,31,1102,28,32,27,29,810,259, - 26,24,53,1151,108,77,78,109,1179,381, - 1238,1195,1273,1246,2831,1355,1313,72,1361,1358, - 48,1373,1434,144,745,1542,160,145,48,3032, - 384,564,966,3049,819,33,880,1478,2863,31, - 1102,28,32,27,29,810,259,26,24,53, - 1151,108,77,78,109,1179,1492,1238,1195,1273, - 1246,1686,1355,1313,519,1361,1358,3607,1373,1434, - 144,71,385,374,145,1094,1652,507,276,880, - 3049,819,33,880,3054,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,109,1179,905,1238,1195,1273,1246,3942,1355, - 1313,454,1361,1358,2831,1373,1434,144,331,337, - 374,145,3522,377,585,1644,43,880,1047,675, - 42,1102,3049,819,33,880,441,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,109,1179,95,1238,1195,1273,1246, - 373,1355,1313,3623,1361,1358,92,1373,1434,144, - 2876,3576,374,145,3582,1094,2988,819,33,880, - 3529,2863,31,1102,28,32,27,29,810,259, - 26,24,53,1151,108,77,78,109,1179,1465, - 1238,1195,1273,1246,2794,1355,1313,372,1361,1358, - 564,1373,1434,144,437,1749,380,145,336,337, - 1767,819,33,880,375,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,109,1179,403,1238,1195,1273,1246,564,1355, - 1313,1478,1361,1358,2921,1373,1434,144,583,370, - 143,145,3049,819,33,880,3446,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,109,1179,56,1238,1195,1273,1246, - 453,1355,1313,2607,1361,1358,1580,1373,1434,144, - 357,4611,161,145,378,3049,819,33,880,527, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,4249,1238, - 1195,1273,1246,232,1355,1313,2005,1361,1358,450, - 1373,1434,144,564,441,156,145,3049,819,33, - 880,1717,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,109,1179, - 518,1238,1195,1273,1246,2225,1355,1313,220,1361, - 1358,404,1373,1434,144,2921,1478,155,145,3049, - 819,33,880,316,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 109,1179,928,1238,1195,1273,1246,616,1355,1313, - 88,1361,1358,54,1373,1434,144,1781,1478,154, - 145,3049,819,33,880,3450,2863,31,1102,28, - 32,27,29,810,259,26,24,53,1151,108, - 77,78,109,1179,2820,1238,1195,1273,1246,426, - 1355,1313,55,1361,1358,905,1373,1434,144,2016, - 4620,153,145,3049,819,33,880,1420,2863,31, - 1102,28,32,27,29,810,259,26,24,53, - 1151,108,77,78,109,1179,675,1238,1195,1273, - 1246,518,1355,1313,354,1361,1358,48,1373,1434, - 144,994,1478,152,145,3049,819,33,880,2718, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,355,1238, - 1195,1273,1246,2442,1355,1313,91,1361,1358,48, - 1373,1434,144,4500,1478,151,145,3049,819,33, - 880,388,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,109,1179, - 675,1238,1195,1273,1246,616,1355,1313,352,1361, - 1358,48,1373,1434,144,613,1478,150,145,3049, - 819,33,880,1101,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 109,1179,675,1238,1195,1273,1246,1579,1355,1313, - 2298,1361,1358,1290,1373,1434,144,1709,1478,149, - 145,3049,819,33,880,283,2863,31,1102,28, - 32,27,29,810,259,26,24,53,1151,108, - 77,78,109,1179,3524,1238,1195,1273,1246,865, - 1355,1313,2439,1361,1358,48,1373,1434,144,2539, - 925,148,145,3049,819,33,880,284,2863,31, - 1102,28,32,27,29,810,259,26,24,53, - 1151,108,77,78,109,1179,905,1238,1195,1273, - 1246,4674,1355,1313,3521,1361,1358,48,1373,1434, - 144,1694,1402,147,145,3049,819,33,880,2840, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,2831,1238, - 1195,1273,1246,1162,1355,1313,564,1361,1358,48, - 1373,1434,144,3102,1478,146,145,3149,819,33, - 880,1425,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,109,1179, - 905,1238,1195,1273,1246,4695,1355,1313,70,1361, - 1358,2700,1373,2938,166,3049,819,33,880,1094, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,3607,1238, - 1195,1273,1246,2270,1355,1313,329,1361,1358,3607, - 1373,1434,144,390,423,141,145,330,69,819, - 33,880,333,337,31,1102,2392,32,1498,2517, - 395,3188,819,33,880,1736,2863,31,1102,28, - 32,27,29,810,259,26,24,53,1151,108, - 77,78,109,1179,3207,1238,1195,1273,1246,2714, - 1355,1313,3110,1361,1358,521,1373,1434,144,656, - 1478,191,145,3302,819,33,880,1034,2863,31, - 1102,28,32,27,29,810,259,26,24,53, - 1151,108,77,78,109,1179,1098,1238,1195,1273, - 1246,910,1355,1313,69,1361,1358,1226,1373,2938, - 166,3302,819,33,880,2959,2863,31,1102,28, - 32,27,29,810,259,26,24,53,1151,108, - 77,78,109,1179,2472,1238,1195,1273,1246,588, - 1355,1313,3312,1361,1358,2840,1373,2938,166,2329, - 507,3126,880,2329,507,276,880,1652,281,1652, - 2062,387,880,1652,507,280,880,3302,819,33, - 880,290,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,109,1179, - 34,1238,1195,1273,1246,3607,1355,1313,1433,1361, - 1358,841,1373,2938,166,3302,819,33,880,2687, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,861,1238, - 1195,1273,1246,2695,1355,1313,3607,1361,1358,2840, - 1373,2938,166,1652,507,278,880,1652,507,3230, - 880,377,3526,1652,2062,387,880,286,3039,392, - 423,3302,819,33,880,419,2863,31,1102,28, - 32,27,29,810,259,26,24,53,1151,108, - 77,78,109,1179,427,1238,1195,1273,1246,669, - 1355,1313,520,1361,1358,316,1373,2938,166,3341, - 819,33,880,418,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 109,1179,3536,1238,1195,1273,1246,2701,1355,1313, - 3384,1361,1358,2608,1373,2938,166,2517,395,3448, - 760,447,48,1562,447,4668,1955,2708,4668,1478, - 2857,277,2867,391,423,3302,819,33,880,421, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,401,1238, - 1195,1273,1246,68,1355,1313,1445,1361,1358,2770, - 2593,327,3585,3302,819,33,880,3527,2863,31, - 1102,28,32,27,29,810,259,26,24,53, - 1151,108,77,78,109,1179,2053,1238,1195,1273, - 1246,1478,1355,1313,2709,1361,2531,3302,819,33, - 880,405,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,109,1179, - 3316,1238,1195,1273,1246,67,1355,1313,328,2503, - 3302,819,33,880,1478,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,109,1179,1445,1238,1195,1273,1246,2697,1355, - 2512,3380,2062,387,880,2713,3479,564,2677,3582, - 3582,2517,395,233,259,440,3295,3302,444,3295, - 3302,1418,3527,48,2822,3109,2049,966,3302,819, - 33,880,271,2863,31,1102,28,32,27,29, - 810,259,26,24,53,1151,108,77,78,109, - 1179,3429,1238,1195,1273,1246,2826,2429,3302,819, - 33,880,228,2863,31,1102,28,32,27,29, - 810,259,26,24,53,1151,108,77,78,109, - 1179,48,2137,274,2828,3043,184,99,273,272, - 945,294,3585,1751,231,226,227,3302,819,33, - 880,1992,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,86,238, - 241,244,247,2771,3565,1652,2062,387,880,2332, - 2011,304,292,3426,293,356,326,48,90,48, - 104,1728,3132,3035,527,527,2808,2873,2882,3190, - 3445,4222,3302,819,33,880,446,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,109,1179,3520,1238,1195,1273,2475, - 3302,819,33,880,3629,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,109,1179,660,1238,1195,1273,2484,3302,819, - 33,880,1682,2863,31,1102,28,32,27,29, - 810,259,26,24,53,1151,108,77,78,109, - 1179,650,1238,1195,2305,3302,819,33,880,2180, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,519,1238, - 1195,2324,3302,819,33,880,3404,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,109,1179,1687,1238,1195,2356,3302, - 819,33,880,1582,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 109,1179,2902,1238,1195,2384,2003,819,33,880, - 3706,4584,31,1102,28,32,341,29,3302,819, - 33,880,616,2863,31,1102,28,32,27,29, - 810,259,26,24,53,1151,108,77,78,109, - 1179,3539,1238,2393,1580,1478,587,2063,1478,4611, - 1857,952,285,3039,966,1989,2062,387,880,945, - 294,1671,48,322,2199,324,3287,48,616,317, - 2132,3088,2720,3390,277,353,3153,564,157,58, - 1560,3105,57,48,1702,3138,271,2839,164,843, - 819,33,880,4754,4584,31,1102,28,32,341, - 29,292,3464,293,2697,346,1449,1415,351,3302, - 819,33,880,3133,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 109,1179,3476,1238,2401,1478,2301,275,1995,2057, - 48,353,273,272,1160,48,322,2199,324,1154, - 48,2068,317,2132,2309,224,3412,100,353,1478, - 1478,897,2822,1613,880,905,4557,1686,2745,325, - 4701,346,1449,1415,351,1781,1480,48,3414,344, - 212,3220,209,202,210,211,213,367,346,1449, - 1415,351,51,103,2787,1212,1534,3551,2793,203, - 204,2301,3025,292,52,293,1660,425,875,588, - 235,259,1426,214,919,205,206,207,208,3543, - 224,295,296,297,298,675,1216,417,1357,2892, - 2093,3179,2138,2301,966,1502,966,675,48,4724, - 3703,2835,3531,3414,89,212,104,209,202,210, - 211,213,2616,1639,1733,387,880,48,157,228, - 157,1234,3567,832,203,204,2301,3025,531,3031, - 742,1692,1401,1356,1571,2301,4749,966,214,3585, - 205,206,207,208,51,224,295,296,297,298, - 301,236,226,227,224,292,52,293,1660,2705, - 820,162,309,2301,353,3703,2847,48,3414,675, - 212,4271,209,202,210,211,213,4479,181,406, - 2721,1812,2616,2315,228,966,499,3642,2226,203, - 204,2301,3025,228,346,1449,1415,351,1184,407, - 1356,3025,1534,214,966,205,206,207,208,157, - 224,295,296,297,298,96,240,226,227,3170, - 199,496,498,2088,1478,243,226,227,162,2325, - 3703,2919,2328,3414,300,212,1231,209,202,210, - 211,213,2076,819,33,880,3706,4584,31,1102, - 28,32,341,29,203,204,362,3025,445,3248, - 2316,3024,537,875,2062,387,880,943,214,1340, - 205,206,207,208,2960,3407,295,296,297,298, - 3585,2084,919,675,48,2831,3543,3543,2310,2882, - 408,411,1485,2180,271,3703,3033,3543,3620,322, - 2199,324,3606,1408,2714,317,2132,889,819,33, - 880,353,4647,31,1102,28,32,341,29,197, - 2827,522,1571,3232,33,880,3777,4647,31,1102, - 28,32,341,29,3585,48,3031,334,2831,2301, - 1478,346,1449,1415,351,3010,1094,335,299,523, - 273,272,2825,48,525,3417,2301,2742,345,87, - 3530,353,335,533,322,2199,324,67,2183,382, - 320,2132,966,196,3315,2616,2331,334,718,322, - 2199,324,224,3528,2682,317,2132,157,3531,2755, - 337,348,1449,1415,351,1887,157,2889,182,1094, - 1,2651,3585,919,533,2917,1323,212,3543,209, - 201,210,211,213,3534,171,285,3039,3057,2715, - 3585,3585,98,224,945,1733,387,880,157,3440, - 185,169,170,172,173,174,175,176,2889,182, - 1421,200,2760,337,1602,3105,2917,1478,212,361, - 209,201,210,211,213,51,171,48,334,198, - 218,1365,2274,3017,3019,183,292,52,293,48, - 2831,186,169,170,172,173,174,175,176,2707, - 2834,3762,2884,414,3247,935,819,33,880,3777, - 4647,31,1102,28,32,341,29,3549,2970,3042, - 3585,228,3302,819,33,880,2149,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,109,2143,945,1733,387,880,1478, - 3546,1094,48,246,226,227,2807,2825,3150,3988, - 334,2301,322,2199,324,3604,48,48,317,2132, - 2872,2937,2934,2892,3669,48,51,2301,2992,882, - 2616,2938,3548,3803,1925,3585,3605,292,52,293, - 1660,1478,1813,2692,3034,337,2616,3302,819,33, - 880,3057,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,109,2157, - 1989,2062,387,880,308,3844,3302,819,33,880, - 311,2863,31,1102,28,32,27,29,810,259, - 26,24,53,1151,108,77,78,109,2234,3171, - 2946,271,3596,3613,361,1642,819,33,880,3559, - 4647,31,1102,28,32,341,29,2770,3017,3019, - 499,3031,1652,2062,387,880,1356,3650,3032,3039, - 966,2301,3585,1478,241,819,33,880,3235,4584, - 31,1102,28,32,341,29,3585,3040,1478,1478, - 224,2562,75,428,162,497,498,273,272,3585, - 335,3043,322,2199,324,1674,2764,1819,318,2132, - 2301,4285,3627,3414,353,212,3636,209,202,210, - 211,213,2046,379,3585,307,3468,1478,1478,345, - 2301,319,3169,324,203,204,3585,3025,4385,1228, - 1733,387,880,3228,348,1449,1415,351,493,224, - 205,206,207,208,1478,1005,295,296,297,298, - 3639,3476,3926,303,2228,3673,228,3668,966,2655, - 51,3387,3414,3045,212,193,209,202,210,211, - 213,292,52,293,1660,173,2838,3640,3967,533, - 1431,2911,157,203,204,2301,3025,3675,249,226, - 227,2665,2585,945,1733,387,880,515,224,205, - 206,207,208,157,2616,295,296,297,298,3678, - 3517,3131,3676,2889,182,3679,259,3136,5276,2657, - 533,2917,5276,212,51,209,201,210,211,213, - 5276,171,5276,5276,5276,292,52,293,1660,224, - 2982,5276,5276,5276,157,5276,3530,169,170,172, - 173,174,175,176,2889,182,3658,1356,5276,5276, - 2301,966,2917,5276,212,450,209,201,210,211, - 213,5276,171,574,5276,5276,5276,2301,499,224, - 5276,5276,3733,5276,436,162,2301,178,169,170, - 172,173,174,175,176,48,345,1356,5276,2301, - 5276,966,3414,5276,212,224,209,202,210,211, - 213,5276,5276,496,498,48,5276,5276,345,2301, - 5276,5276,958,203,204,162,3025,5276,3414,5276, - 212,5276,209,202,210,211,213,310,345,205, - 206,207,208,5276,2682,295,296,297,298,203, - 204,3511,3025,3559,5276,1906,919,2301,5276,5276, - 2658,3543,5276,516,2682,205,206,207,208,5276, - 5276,295,296,297,298,1917,224,3302,819,33, - 880,5276,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,84,3414, - 2769,212,5276,209,202,210,211,213,5276,5276, - 5276,334,345,5276,5276,5276,533,5276,1041,5276, - 203,204,533,3025,5276,5276,5276,919,945,1733, - 387,880,3543,5276,215,224,205,206,207,208, - 157,345,295,296,297,298,157,1697,5276,5276, - 2889,182,3385,431,5276,5276,1017,533,2917,51, - 212,5276,209,201,210,211,213,2682,171,5276, - 292,52,293,1660,5276,2160,224,5276,963,5276, - 5276,157,334,189,169,170,172,173,174,175, - 176,2889,182,1356,517,5276,5276,966,533,2917, - 5276,212,5276,209,201,210,211,213,5276,171, - 945,1733,387,880,5276,48,5276,224,5276,2301, - 5276,162,157,4236,3567,169,170,172,173,174, - 175,176,2889,182,5276,603,5276,5276,345,533, - 2917,51,212,5276,209,201,210,211,213,5276, - 171,5276,292,52,293,1660,48,820,224,5276, - 2301,5276,5276,157,2682,192,169,170,172,173, - 174,175,176,2889,182,2008,689,5276,5276,345, - 533,2917,5276,212,5276,209,201,210,211,213, - 5276,171,945,1733,387,880,2974,2957,5276,224, - 5276,2301,5276,5276,157,2682,188,169,170,172, - 173,174,175,176,2889,182,1576,775,5276,5276, - 345,533,2917,51,212,5276,209,201,210,211, - 213,526,171,5276,292,52,293,1660,1902,2683, - 224,5276,966,5276,5276,157,2682,195,169,170, - 172,173,174,175,176,2889,182,529,5276,5276, - 5276,5276,5276,2917,5276,212,157,209,201,210, - 211,213,5276,171,5276,5276,164,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,194,169, - 170,172,173,174,175,176,3302,819,33,880, - 5276,2863,31,1102,28,32,27,29,810,259, - 26,24,53,1151,108,77,78,83,3302,819, - 33,880,5276,2863,31,1102,28,32,27,29, - 810,259,26,24,53,1151,108,77,78,82, - 3302,819,33,880,3439,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,81,3302,819,33,880,5276,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,80,3302,819,33,880,3070,2863, - 31,1102,28,32,27,29,810,259,26,24, - 53,1151,108,77,78,79,3089,819,33,880, - 5276,2863,31,1102,28,32,27,29,810,259, - 26,24,53,1151,108,77,78,106,3302,819, - 33,880,5276,2863,31,1102,28,32,27,29, - 810,259,26,24,53,1151,108,77,78,111, - 3302,819,33,880,5276,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,110,3444,2062,387,880,5276,3479,5276,5276, - 5276,5276,5276,5276,234,259,889,819,33,880, - 5276,4647,31,1102,28,32,341,29,5276,3302, - 819,33,880,271,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 107,1458,819,33,880,3777,4584,31,1102,28, - 32,341,29,228,5276,1947,2340,5276,48,966, - 966,335,2301,322,2199,324,5276,5276,5276,318, - 2132,5276,5276,5276,274,1989,2062,387,880,273, - 272,345,5276,157,157,232,226,227,2385,5276, - 5276,5276,966,164,1744,5276,5276,5276,322,2199, - 324,5276,5276,5276,317,2132,271,2682,5276,5276, - 239,242,245,248,2771,5276,157,5276,503,5276, - 1925,2011,3263,819,33,880,1880,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 87,77,78,2011,3232,33,880,3777,4584,31, - 1102,28,32,341,29,2020,1169,73,5276,966, - 533,3468,273,272,5276,5276,311,327,819,33, - 880,3777,4584,31,1102,28,32,341,29,345, - 5276,5276,5276,157,157,3171,5276,5276,5276,5276, - 5276,5276,5276,164,190,3559,1989,2062,387,880, - 322,2199,324,5276,5276,4462,317,2132,155,819, - 33,880,3777,4584,31,1102,28,32,341,29, - 5276,5276,2651,5276,322,2199,324,271,5276,5276, - 317,2132,155,819,33,880,3777,4584,31,1102, - 28,32,341,29,5276,5276,1925,5276,5276,1438, - 819,33,880,3072,4584,31,1102,28,32,341, - 29,3494,5276,5276,5276,322,2199,324,5276,5276, - 1614,317,2132,3197,2301,4749,5276,5276,342,1654, - 1733,387,880,273,272,5276,5276,2745,402,322, - 2199,324,312,224,5276,317,2132,5276,5276,5276, - 1650,1733,387,880,415,3247,319,3169,324,5276, - 51,3562,5276,5276,5276,5276,4479,5276,406,5276, - 5276,292,52,293,1660,5276,1331,1654,1733,387, - 880,51,5276,1228,1733,387,880,1184,407,5276, - 3025,3013,292,52,293,1660,5276,1499,5276,5276, - 5276,5276,5276,5276,1228,1733,387,880,51,5276, - 5276,5276,2665,5276,51,5276,5276,5276,5276,292, - 52,293,1660,5276,49,292,52,293,1660,5276, - 49,1228,1733,387,880,51,5276,5276,5276,803, - 1654,1733,387,880,5276,1967,292,52,293,1660, - 3024,2566,5276,5276,2657,5276,5276,5276,5276,5276, - 5276,5276,51,5276,5276,5276,4426,1228,1733,387, - 880,51,5276,292,52,293,1660,2953,49,408, - 410,2301,292,52,293,1660,5276,49,1228,1733, - 387,880,5276,2063,1228,1733,387,880,51,5276, - 345,5276,1828,1476,5276,2881,5276,5276,5276,292, - 52,293,1660,5276,2612,3129,1733,387,880,51, - 5276,3134,1733,387,880,51,3304,5276,5276,4426, - 292,52,293,1660,5276,49,292,52,293,1660, - 5276,49,5276,5276,1993,5276,51,5276,2301,3543, - 2425,5276,51,5276,5276,5276,3402,292,52,293, - 1660,5276,49,292,52,293,1660,2616,49,945, - 1733,387,880,5276,1993,5276,5276,2390,2301,3543, - 2430,977,5276,2669,966,533,1989,2062,387,880, - 5276,5276,2475,5276,5276,5276,966,2616,1105,334, - 51,48,533,5276,224,2301,5276,5276,157,157, - 5276,292,52,293,1660,5276,1583,271,2159,164, - 157,345,5276,5276,345,5276,157,2917,5276,334, - 2231,2660,5276,5276,1233,5276,742,5276,533,5276, - 3042,361,5276,5276,5276,5276,5276,2682,5276,5276, - 2682,5276,5276,5276,1618,3017,3019,345,1366,48, - 5276,501,157,2301,5276,1297,5276,3428,74,533, - 3385,361,190,273,272,5276,5276,2520,5276,5276, - 5276,966,345,4462,1618,3017,3019,3250,345,5276, - 2565,5276,5276,157,966,5276,5276,5276,5276,5276, - 5276,5276,5276,190,5276,157,5276,5276,2682,5276, - 5276,5276,5276,5276,4462,2307,5276,5276,157,530, - 5276,5276,5276,5276,5276,5276,5276,5276,3467,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,3279,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,3321,5276,0,5311,39,0,158,532, - 0,507,30,0,448,1000,0,5311,38,0, - 2562,127,0,1,438,0,2038,39,0,452, - 1011,0,451,1190,0,507,41,0,1008,93, - 0,35,302,0,386,294,0,33,387,0, - 30,386,0,507,30,386,0,1969,39,0, - 1,556,0,1,5546,0,1,5545,0,1, - 5544,0,1,5543,0,1,5542,0,1,5541, - 0,1,5540,0,1,5539,0,1,5538,0, - 1,5537,0,1,5536,0,1,5311,39,0, - 1,1104,0,1702,39,0,39,2836,0,5506, - 237,0,5505,237,0,5616,237,0,5615,237, - 0,5533,237,0,5532,237,0,5531,237,0, - 5530,237,0,5529,237,0,5528,237,0,5527, - 237,0,5526,237,0,5546,237,0,5545,237, - 0,5544,237,0,5543,237,0,5542,237,0, - 5541,237,0,5540,237,0,5539,237,0,5538, - 237,0,5537,237,0,5536,237,0,2038,39, - 237,0,5314,237,0,35,282,258,0,507, - 386,0,1702,50,0,45,5312,0,45,37, - 0,2562,129,0,2562,128,0,2883,233,0, - 27,514,0,5608,439,0,1487,439,0,1, - 94,0,49,37,0,1,5314,0,1,39, - 0,1,5314,225,0,1,39,225,0,5311, - 37,0,5312,47,0,37,47,0,5311,36, - 0,5311,5,37,0,5285,404,0,1,4438, - 0,1,3446,0,1,1969,0,5608,97,0, - 1487,97,0,2672,321,0,1,5608,0,1, - 1487,0,3406,278,0,1,1839,0,1,2147, - 0,495,3466,0,1,225,0,1,225,3383, - 0,5285,225,0,158,177,0,294,3297,0, - 225,165,0,187,3885,0 + 150,150,150,95,95,95,95,95,96,96, + 96,88,13,14,14,14,14,14,14,14, + 14,14,14,14,83,83,83,122,122,122, + 122,122,120,120,120,89,121,121,153,153, + 152,152,124,124,125,44,44,43,87,87, + 90,90,92,93,91,45,54,49,154,154, + 55,53,86,86,155,155,145,145,126,126, + 80,80,156,156,64,64,64,59,59,58, + 65,65,70,70,56,56,56,97,97,106, + 105,105,62,62,60,60,61,61,50,108, + 108,108,100,100,100,101,102,102,102,103, + 103,111,111,111,113,113,112,112,198,198, + 98,98,182,182,182,182,182,128,68,68, + 158,181,181,129,129,129,129,183,183,32, + 32,119,130,130,130,130,114,114,123,123, + 123,160,161,161,161,161,161,161,161,161, + 161,186,186,184,184,185,185,162,162,162, + 162,163,187,116,115,115,188,188,164,164, + 132,132,131,131,131,199,199,10,189,189, + 190,165,157,157,166,166,167,168,168,7, + 7,8,170,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,69,71,71,171,171,133, + 133,134,134,134,134,134,134,3,4,172, + 172,169,169,135,135,135,84,85,79,159, + 159,117,117,191,191,191,136,136,127,127, + 192,192,173,173,1477,2300,2118,2115,1204,775, + 4582,34,1247,31,35,30,32,2775,262,29, + 27,56,1302,111,80,81,112,1375,2402,1465, + 1422,1594,1508,424,1680,1637,274,1732,1723,3425, + 1759,1766,147,1146,492,163,148,863,1888,38, + 1200,36,1204,1229,3746,34,1247,31,35,63, + 32,3534,38,1200,36,1204,231,3248,34,1247, + 31,35,30,32,1163,262,29,27,56,1302, + 111,80,81,112,1375,3230,2364,277,1603,2930, + 686,294,276,275,4653,686,38,3045,234,229, + 230,3493,38,1200,36,1204,1211,3248,34,1247, + 31,35,30,32,1163,262,29,27,56,1302, + 90,80,81,241,244,247,250,3156,493,2250, + 38,1200,36,1204,2231,3746,34,1247,31,35, + 62,32,686,38,508,3021,1204,3357,679,76, + 2369,3194,3203,3233,3383,3725,2451,38,1200,36, + 1204,2372,3248,34,1247,31,35,2920,32,1163, + 262,29,27,56,1302,111,80,81,112,1375, + 348,1465,1422,1594,1508,1498,1680,1637,67,1732, + 1723,58,1759,1766,147,3677,686,513,148,686, + 2990,2918,38,1200,36,1204,2914,4199,34,1247, + 31,35,30,32,289,3145,506,514,2451,38, + 1200,36,1204,2372,3248,34,1247,31,35,2920, + 32,1163,262,29,27,56,1302,111,80,81, + 112,1375,348,1465,1422,1594,1508,507,1680,1637, + 1523,1732,1723,58,1759,1766,147,1804,748,513, + 148,1606,1842,1579,38,1200,36,1204,2914,66, + 34,1247,43,35,1686,38,1200,36,1204,514, + 4199,34,1247,31,35,65,32,775,93,2504, + 107,509,3283,2980,38,1200,36,1204,2372,3248, + 34,1247,31,35,2920,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,348,1465,1422, + 1594,1508,28,1680,1637,2912,1732,1723,2926,1759, + 1766,147,58,1813,513,148,3318,819,1686,38, + 1200,36,1204,2914,4199,34,1247,31,35,64, + 32,2851,2834,509,514,2790,38,1200,36,1204, + 442,3248,34,1247,31,35,30,32,1163,262, + 29,27,56,1302,111,80,81,112,1375,236, + 1465,1422,1594,1508,2372,1680,1637,2962,1732,1723, + 2926,1759,1766,147,334,340,383,148,3534,38, + 1200,36,1204,2694,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 89,386,3749,2863,38,1200,36,1204,510,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,438,1465,1422, + 1594,1508,1520,1680,1637,3113,1732,1723,1902,1759, + 1766,147,451,360,383,148,1579,38,1200,36, + 1204,1849,528,34,1247,1418,35,365,1579,38, + 1200,36,1204,1811,387,34,1247,1461,35,384, + 3127,38,1200,36,1204,775,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,1849,1465,1422,1594,1508,793, + 1680,1637,793,1732,1723,672,1759,1766,147,234, + 75,163,148,1721,38,1852,46,1204,3543,520, + 45,1247,686,38,1762,1719,1204,3127,38,1200, + 36,1204,388,3248,34,1247,31,35,30,32, + 1163,262,29,27,56,1302,111,80,81,112, + 1375,1837,1465,1422,1594,1508,424,1680,1637,3622, + 1732,1723,3795,1759,1766,147,392,424,377,148, + 3127,38,1200,36,1204,625,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,583,1465,1422,1594,1508,424, + 1680,1637,1031,1732,1723,4281,1759,1766,147,393, + 424,377,148,771,679,3127,38,1200,36,1204, + 863,3248,34,1247,31,35,30,32,1163,262, + 29,27,56,1302,111,80,81,112,1375,58, + 1465,1422,1594,1508,4615,1680,1637,775,1732,1723, + 1920,1759,1766,147,2249,376,377,148,3065,38, + 1200,36,1204,1237,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 112,1375,74,1465,1422,1594,1508,424,1680,1637, + 863,1732,1723,4761,1759,1766,147,2856,375,383, + 148,455,3318,2936,38,1200,36,1204,3677,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,2853,1465,1422, + 1594,1508,3424,1680,1637,1994,1732,1723,3169,1759, + 1766,147,3303,373,146,148,3220,3127,38,1200, + 36,1204,3107,3248,34,1247,31,35,30,32, + 1163,262,29,27,56,1302,111,80,81,112, + 1375,454,1465,1422,1594,1508,3184,1680,1637,95, + 1732,1723,404,1759,1766,147,402,381,164,148, + 3127,38,1200,36,1204,775,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,3738,1465,1422,1594,1508,863, + 1680,1637,775,1732,1723,3108,1759,1766,147,359, + 59,159,148,3127,38,1200,36,1204,528,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,91,1465,1422, + 1594,1508,863,1680,1637,3129,1732,1723,3316,1759, + 1766,147,412,442,158,148,3127,38,1200,36, + 1204,775,3248,34,1247,31,35,30,32,1163, + 262,29,27,56,1302,111,80,81,112,1375, + 3752,1465,1422,1594,1508,98,1680,1637,406,1732, + 1723,3316,1759,1766,147,158,58,157,148,3127, + 38,1200,36,1204,3621,3248,34,1247,31,35, + 30,32,1163,262,29,27,56,1302,111,80, + 81,112,1375,57,1465,1422,1594,1508,424,1680, + 1637,307,1732,1723,4836,1759,1766,147,3226,1891, + 156,148,3127,38,1200,36,1204,3726,3248,34, + 1247,31,35,30,32,1163,262,29,27,56, + 1302,111,80,81,112,1375,58,1465,1422,1594, + 1508,1001,1680,1637,357,1732,1723,2837,1759,1766, + 147,418,1044,155,148,3127,38,1200,36,1204, + 2839,3248,34,1247,31,35,30,32,1163,262, + 29,27,56,1302,111,80,81,112,1375,358, + 1465,1422,1594,1508,863,1680,1637,330,1732,1723, + 58,1759,1766,147,159,2800,154,148,3127,38, + 1200,36,1204,775,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 112,1375,58,1465,1422,1594,1508,1109,1680,1637, + 331,1732,1723,3316,1759,1766,147,2169,94,153, + 148,3127,38,1200,36,1204,775,3248,34,1247, + 31,35,30,32,1163,262,29,27,56,1302, + 111,80,81,112,1375,332,1465,1422,1594,1508, + 424,1680,1637,184,1732,1723,4869,1759,1766,147, + 1610,355,152,148,3127,38,1200,36,1204,3306, + 3248,34,1247,31,35,30,32,1163,262,29, + 27,56,1302,111,80,81,112,1375,58,1465, + 1422,1594,1508,4113,1680,1637,775,1732,1723,58, + 1759,1766,147,60,2988,151,148,3127,38,1200, + 36,1204,336,3248,34,1247,31,35,30,32, + 1163,262,29,27,56,1302,111,80,81,112, + 1375,677,1465,1422,1594,1508,793,1680,1637,1875, + 1732,1723,3311,1759,1766,147,1590,3090,150,148, + 3127,38,1200,36,1204,775,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,58,1465,1422,1594,1508,3012, + 1680,1637,775,1732,1723,863,1759,1766,147,2926, + 2256,149,148,3024,38,1200,36,1204,775,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,73,1465,1422, + 1594,1508,1543,1680,1637,3178,1732,1723,3451,1759, + 2993,169,2858,72,3127,38,1200,36,1204,1144, + 3248,34,1247,31,35,30,32,1163,262,29, + 27,56,1302,111,80,81,112,1375,58,1465, + 1422,1594,1508,3927,1680,1637,102,1732,1723,2173, + 1759,1766,147,863,333,144,148,3318,337,686, + 38,2345,390,1204,2174,38,396,3451,38,1200, + 36,1204,1584,3248,34,1247,31,35,30,32, + 1163,262,29,27,56,1302,111,80,81,112, + 1375,37,1465,1422,1594,1508,424,1680,1637,2743, + 1732,1723,4890,1759,1766,147,1520,775,194,148, + 3534,38,1200,36,1204,391,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,103,1465,1422,1594,1508,1543, + 1680,1637,71,1732,1723,3451,1759,2993,169,3534, + 38,1200,36,1204,3357,3248,34,1247,31,35, + 30,32,1163,262,29,27,56,1302,111,80, + 81,112,1375,996,1465,1422,1594,1508,3493,1680, + 1637,3191,1732,1723,329,1759,2993,169,686,38, + 508,279,1204,528,1209,337,686,38,2345,390, + 1204,686,38,284,3534,38,1200,36,1204,293, + 3248,34,1247,31,35,30,32,1163,262,29, + 27,56,1302,111,80,81,112,1375,428,1465, + 1422,1594,1508,1543,1680,1637,3005,1732,1723,3451, + 1759,2993,169,3534,38,1200,36,1204,1893,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,58,1465,1422, + 1594,1508,1020,1680,1637,1542,1732,1723,1660,1759, + 2993,169,1745,38,508,3207,1204,3316,1274,337, + 686,38,2345,390,1204,92,1603,107,3534,38, + 1200,36,1204,420,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 112,1375,447,1465,1422,1594,1508,200,1680,1637, + 3402,1732,1723,1339,1759,2993,169,3575,38,1200, + 36,1204,419,3248,34,1247,31,35,30,32, + 1163,262,29,27,56,1302,111,80,81,112, + 1375,3367,1465,1422,1594,1508,3435,1680,1637,1404, + 1732,1723,1789,1759,2993,169,1745,38,508,279, + 1204,70,38,448,598,38,448,4815,686,3810, + 4815,938,3534,38,1200,36,1204,422,3248,34, + 1247,31,35,30,32,1163,262,29,27,56, + 1302,111,80,81,112,1375,58,1465,1422,1594, + 1508,4038,1680,1637,3217,1732,1723,187,2772,2173, + 4726,3534,38,1200,36,1204,3800,3248,34,1247, + 31,35,30,32,1163,262,29,27,56,1302, + 111,80,81,112,1375,775,1465,1422,1594,1508, + 969,1680,1637,775,1732,2756,3534,38,1200,36, + 1204,2173,3248,34,1247,31,35,30,32,1163, + 262,29,27,56,1302,111,80,81,112,1375, + 70,1465,1422,1594,1508,286,1680,1637,2739,2712, + 3534,38,1200,36,1204,3117,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,246,1465,1422,1594,1508,1544, + 1680,2731,3616,2300,2345,390,1204,287,3223,3627, + 38,280,238,262,334,236,262,441,3448,3449, + 445,3448,3449,2195,3740,3741,1013,775,3119,3534, + 38,1200,36,1204,274,3248,34,1247,31,35, + 30,32,1163,262,29,27,56,1302,111,80, + 81,112,1375,3246,1465,1422,1594,1508,426,2606, + 3691,231,61,1,231,775,3737,3202,534,686, + 38,2345,390,1204,775,3234,2767,686,38,508, + 283,1204,3326,58,58,277,601,227,2372,2372, + 276,275,160,239,229,230,234,229,230,58, + 60,429,1633,185,1020,862,514,348,348,328, + 3051,725,215,1469,212,204,213,214,216,3316, + 174,241,244,247,250,3156,58,793,3240,186, + 1839,4154,2231,2914,2914,189,172,173,175,176, + 177,178,179,775,2128,2173,625,1026,2369,3194, + 3203,3233,3383,3725,3534,38,1200,36,1204,199, + 3248,34,1247,31,35,30,32,1163,262,29, + 27,56,1302,111,80,81,112,1375,106,1465, + 1422,1594,2643,3534,38,1200,36,1204,2402,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,1237,1465,1422, + 1594,2662,3534,38,1200,36,1204,2248,3248,34, + 1247,31,35,30,32,1163,262,29,27,56, + 1302,111,80,81,112,1375,1627,1465,1422,2456, + 3534,38,1200,36,1204,522,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,2788,1465,1422,2475,3534,38, + 1200,36,1204,3243,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 112,1375,3245,1465,1422,2483,3534,38,1200,36, + 1204,3284,3248,34,1247,31,35,30,32,1163, + 262,29,27,56,1302,111,80,81,112,1375, + 3299,1465,1422,2500,1618,38,1200,36,1204,2073, + 4704,34,1247,31,35,344,32,3534,38,1200, + 36,1204,1471,3248,34,1247,31,35,30,32, + 1163,262,29,27,56,1302,111,80,81,112, + 1375,2835,1465,2517,686,38,508,281,1204,58, + 58,324,2832,2495,4395,4715,2372,2372,3451,3451, + 58,519,325,1560,327,1258,852,793,320,1517, + 3321,38,282,1734,356,348,2694,686,38,508, + 3433,1204,2401,775,3281,2168,2928,2187,38,1200, + 36,1204,2931,4704,34,1247,31,35,344,32, + 2173,3416,3122,952,349,1509,1474,354,337,338, + 1054,294,3221,3534,38,1200,36,1204,2845,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,2447,1465,2587, + 686,2021,297,58,2402,325,1560,327,866,3005, + 364,320,1517,1983,58,58,775,356,1020,1252, + 4425,2504,319,1775,3098,3125,304,2444,2845,38, + 1200,36,1204,2073,4704,34,1247,31,35,344, + 32,3332,160,295,3441,296,370,349,1509,1474, + 354,446,3034,202,3340,1646,3534,38,1200,36, + 1204,380,3248,34,1247,31,35,30,32,1163, + 262,29,27,56,1302,111,80,81,112,1375, + 58,2384,2498,2851,3181,4994,325,1560,327,1979, + 963,3217,320,1517,288,3145,604,4726,356,1788, + 2355,2832,3238,3321,38,280,2372,3451,523,1736, + 38,3437,36,1204,3094,4782,34,1247,31,35, + 344,32,2269,3161,1628,2694,339,340,349,1509, + 1474,354,3369,686,2021,297,524,1675,38,1200, + 36,1204,3094,4782,34,1247,31,35,344,32, + 1519,3252,3223,3646,356,2742,3753,337,1849,58, + 3316,2372,378,3111,2634,337,3169,325,1560,327, + 2734,2372,3448,320,1517,2178,295,3743,296,2788, + 227,3451,1054,294,349,1509,1474,354,526,1364, + 348,3341,347,337,775,325,1560,327,3402,364, + 203,320,1517,4601,3316,215,4514,212,205,213, + 214,216,1775,3098,3125,3347,787,2671,4905,3216, + 356,58,3316,1013,206,207,3976,3135,2263,3407, + 1152,338,3779,1020,4514,534,3763,2372,217,4905, + 208,209,210,211,201,356,298,299,300,301, + 349,1509,1474,354,348,427,227,160,1646,160, + 1849,3229,221,314,1543,4081,2790,532,67,1197, + 3451,415,3438,395,424,351,1509,1474,354,4601, + 2914,215,3052,212,205,213,214,216,58,47, + 2982,1025,3811,1897,1296,692,519,3852,3368,2402, + 206,207,2372,3135,2310,3661,288,3145,335,1020, + 49,2982,775,1020,217,3123,208,209,210,211, + 337,227,298,299,300,301,1844,2021,2929,1547, + 1204,3619,4631,160,2311,3161,451,165,3066,3724, + 2600,4081,3419,817,4601,3998,215,4140,212,205, + 213,214,216,520,1871,437,380,775,54,2372, + 1941,4535,3899,775,940,206,207,2372,3135,295, + 55,296,1859,953,1072,394,424,3327,348,217, + 58,208,209,210,211,2986,227,298,299,300, + 301,3623,4181,776,2021,2034,390,1204,4222,775, + 58,573,3316,1662,1277,3009,4081,3432,775,4601, + 775,215,1345,212,205,213,214,216,3199,2021, + 2034,390,1204,58,58,54,231,58,3062,3127, + 206,207,3192,3135,2558,231,295,55,296,1859, + 1536,2954,4453,3444,217,382,208,209,210,211, + 54,3624,298,299,300,301,4555,2989,243,229, + 230,295,55,296,1859,231,982,246,229,230, + 3740,4081,3434,3534,38,2118,2115,1204,3440,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,88,3653,249,229,230, + 3534,38,1200,36,1204,37,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,2398,3534,38,1200,36,1204,1622, + 3248,34,1247,31,35,30,32,1163,262,29, + 27,56,1302,111,80,81,112,2437,3534,38, + 1200,36,1204,1900,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 112,2445,1961,38,1200,36,1204,3316,4782,34, + 1247,31,35,344,32,3334,3642,2357,2193,2173, + 2372,2858,1020,3316,1543,686,2021,2034,390,1204, + 3451,58,2173,3442,2173,177,885,956,3727,348, + 534,3316,2860,3747,2402,231,160,311,3767,3444, + 527,686,2021,2034,390,1204,1412,54,338,227, + 325,1560,327,4997,160,2914,321,1517,295,55, + 296,1859,356,988,1633,185,530,252,229,230, + 3745,310,3051,54,215,312,212,204,213,214, + 216,3644,174,3768,295,55,296,1859,303,3049, + 302,521,351,1509,1474,354,3769,188,172,173, + 175,176,177,178,179,3534,38,1200,36,1204, + 986,3248,34,1247,31,35,30,32,1163,262, + 29,27,56,1302,111,80,81,87,3534,38, + 1200,36,1204,3650,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 86,3534,38,1200,36,1204,99,3248,34,1247, + 31,35,30,32,1163,262,29,27,56,1302, + 111,80,81,85,3534,38,1200,36,1204,3645, + 3248,34,1247,31,35,30,32,1163,262,29, + 27,56,1302,111,80,81,84,2983,3770,385, + 3534,38,1200,36,1204,2433,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,83,3534,38,1200,36,1204,3776,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,82,3397,38,1200,36, + 1204,3649,3248,34,1247,31,35,30,32,1163, + 262,29,27,56,1302,111,80,81,109,3534, + 38,1200,36,1204,3793,3248,34,1247,31,35, + 30,32,1163,262,29,27,56,1302,111,80, + 81,114,3534,38,1200,36,1204,775,3248,34, + 1247,31,35,30,32,1163,262,29,27,56, + 1302,111,80,81,113,3681,2300,2345,390,1204, + 3804,3223,3808,3317,3773,3205,3316,2647,237,262, + 3777,2694,3785,3316,775,2908,864,2021,2034,390, + 1204,3451,3534,38,1200,36,1204,274,3248,34, + 1247,31,35,30,32,1163,262,29,27,56, + 1302,111,80,81,110,335,5004,2030,54,4304, + 1020,3925,1020,306,3587,3316,2372,231,3812,295, + 55,296,1859,89,985,686,2021,2034,390,1204, + 3795,3745,775,3802,165,227,160,3707,277,4940, + 3803,3816,2372,276,275,1667,167,3863,3813,235, + 229,230,2174,38,396,196,3817,54,4601,1669, + 215,227,212,205,213,214,216,4345,295,55, + 296,1859,5524,2933,242,245,248,251,3156,206, + 207,5524,3135,5524,4601,2231,215,5524,212,205, + 213,214,216,494,5524,208,209,210,211,5524, + 5524,298,299,300,301,206,207,265,3135,1431, + 5524,2404,534,1217,3423,58,1020,101,534,516, + 2372,208,209,210,211,5524,5524,298,299,300, + 301,227,5524,2174,38,396,160,348,5524,348, + 160,5524,160,5524,335,5524,1633,185,353,1020, + 2763,5524,817,534,3051,5524,215,2504,212,204, + 213,214,216,2914,174,2914,3506,5524,5524,5524, + 5524,5524,227,165,1372,5524,2209,160,5524,3803, + 172,173,175,176,177,178,179,1633,185,5524, + 5524,5524,5524,5524,5524,3051,5524,215,5524,212, + 204,213,214,216,5524,174,3185,38,1200,36, + 1204,3094,4704,34,1247,31,35,344,32,2851, + 181,172,173,175,176,177,178,179,3972,5524, + 5524,5524,5524,2372,1571,38,1200,36,1204,2939, + 4704,34,1247,31,35,344,32,3826,2397,5524, + 5524,5524,227,5524,3998,335,2508,5524,5524,2372, + 1020,1020,336,340,325,1560,327,58,2504,5524, + 320,1517,2372,5524,403,4601,5524,215,227,212, + 205,213,214,216,165,160,2671,5524,5524,5524, + 5524,348,322,3308,327,1802,206,207,5524,3135, + 5524,4601,5524,215,5524,212,205,213,214,216, + 313,3826,208,209,210,211,2372,2914,298,299, + 300,301,206,207,335,3135,5524,5524,2212,1020, + 2851,5524,314,5524,5524,227,517,5524,208,209, + 210,211,5524,1534,298,299,300,301,2372,2555, + 5524,3052,5524,165,1020,5524,5524,5524,4601,2435, + 215,3811,212,205,213,214,216,2694,5524,5524, + 441,5524,5524,2833,340,534,1282,5524,160,206, + 207,534,3135,5524,1534,5524,5524,5524,1818,2372, + 2476,5524,5524,218,227,208,209,210,211,160, + 348,298,299,300,301,160,5524,5524,2694,1633, + 185,529,5524,5524,5524,193,534,3051,5524,215, + 5524,212,204,213,214,216,4469,174,2513,686, + 2021,2034,390,1204,5524,227,5524,5524,5524,5524, + 160,364,192,172,173,175,176,177,178,179, + 1633,185,617,5524,2303,3098,3125,534,3051,5524, + 215,54,212,204,213,214,216,5524,174,5524, + 5524,5524,295,55,296,1859,227,982,5524,5524, + 5524,160,364,3829,172,173,175,176,177,178, + 179,1633,185,705,3142,2773,3098,3125,534,3051, + 5524,215,5524,212,204,213,214,216,5524,174, + 5524,686,2021,2034,390,1204,5524,227,5524,5524, + 5524,5524,160,5524,195,172,173,175,176,177, + 178,179,1633,185,793,5524,5524,5524,5524,534, + 3051,5524,215,54,212,204,213,214,216,5524, + 174,5524,5524,5524,295,55,296,1859,227,2379, + 5524,5524,5524,160,5524,191,172,173,175,176, + 177,178,179,1633,185,881,5524,5524,5524,5524, + 534,3051,5524,215,5524,212,204,213,214,216, + 335,174,3762,5524,5524,1020,5524,2372,5524,227, + 5524,5524,5524,5524,160,5524,198,172,173,175, + 176,177,178,179,1633,185,2694,5524,5524,165, + 5524,5524,3051,5524,215,2504,212,204,213,214, + 216,5524,174,1814,38,3437,36,1204,3094,4704, + 34,1247,31,35,344,32,5524,197,172,173, + 175,176,177,178,179,2504,1970,38,1200,36, + 1204,3094,4704,34,1247,31,35,344,32,1852, + 38,1200,36,1204,3094,4704,34,1247,31,35, + 344,32,5524,2077,5524,5524,5524,2851,1020,5524, + 500,325,1560,327,2846,5524,5524,320,1517,1852, + 38,1200,36,1204,3094,4704,34,1247,31,35, + 344,32,160,1364,325,1560,327,2851,5524,5524, + 320,1517,167,5524,5524,498,499,325,1560,327, + 2844,340,5524,320,1517,5524,2671,5524,5524,5524, + 5524,5524,5524,5524,1045,38,1200,36,1204,2444, + 4782,34,1247,31,35,344,32,325,1560,327, + 3118,340,5524,320,1517,1045,38,1200,36,1204, + 5524,4782,34,1247,31,35,344,32,5524,3818, + 5524,5524,315,5524,5524,686,2300,2345,390,1204, + 3736,5524,5524,5524,5524,416,3438,5524,5524,5524, + 338,5524,325,1560,327,5524,5524,5524,323,1517, + 5524,5524,3206,2021,2034,390,1204,274,5524,5524, + 5524,338,5524,325,1560,327,5524,5524,5524,321, + 1517,1935,38,1200,36,1204,2967,4704,34,1247, + 31,35,344,32,54,1778,5524,58,5524,5524, + 2372,4923,2372,5524,5524,295,55,296,1859,5524, + 1689,864,2021,2034,390,1204,5524,5524,278,227, + 5524,348,1861,276,275,4555,5524,2372,4923,5524, + 5524,5524,5524,776,2021,2034,390,1204,5524,322, + 3308,327,4004,54,407,5524,227,2914,5524,5524, + 5524,5524,5524,5524,295,55,296,1859,1716,52, + 5524,5524,5524,1292,408,54,3135,5524,5524,4004, + 58,407,5524,5524,2760,2372,295,55,296,1859, + 5524,52,5524,5524,776,2021,2034,390,1204,5524, + 1292,408,5524,3135,348,3762,2041,5524,58,5524, + 2372,5524,5524,2372,5524,5524,776,2021,2034,390, + 1204,5524,5524,5524,5524,5524,54,5524,5524,2694, + 2914,5524,348,5524,5524,5524,3128,295,55,296, + 1859,504,2430,5524,5524,5524,5524,2476,54,5524, + 5524,864,2021,2034,390,1204,5524,4980,2914,295, + 55,296,1859,3128,52,409,411,5524,5524,502, + 5524,5524,776,2021,2034,390,1204,5524,5524,2036, + 5524,5524,2602,54,5524,5524,5524,1020,5524,1889, + 5524,4642,409,412,295,55,296,1859,5524,52, + 5524,5524,5524,500,54,776,2021,2034,390,1204, + 5524,160,5524,5524,1008,295,55,296,1859,5524, + 2690,1947,5524,5524,5524,5524,776,2021,2034,390, + 1204,5524,5524,5524,5524,4980,2649,54,497,499, + 58,1020,5524,5524,5524,2372,5524,5524,295,55, + 296,1859,5524,52,5524,5524,5524,5524,54,2260, + 2021,2034,390,1204,348,160,5524,5524,2130,295, + 55,296,1859,5524,52,2295,3442,5524,5524,5524, + 2505,2021,2034,390,1204,5524,5524,5524,5524,2439, + 2914,54,5524,5524,5524,686,2021,2034,390,1204, + 5524,531,295,55,296,1859,5524,52,5524,5524, + 5524,5524,54,686,2021,2034,390,1204,5524,5524, + 5524,5524,2830,295,55,296,1859,54,52,5524, + 511,2300,2345,390,1204,5524,5524,5524,295,55, + 296,51,5524,2963,5524,54,686,2300,2345,390, + 1204,5524,5524,5524,5524,5524,295,55,296,1859, + 5524,1946,274,686,2300,2345,390,1204,5524,5524, + 686,2300,2345,390,1204,5524,5524,5524,274,686, + 2300,2345,390,1204,3805,1087,5524,2124,1347,2372, + 534,1412,1020,534,2200,274,534,5524,5524,1020, + 5524,5524,274,5524,5524,5524,5524,5524,2694,227, + 5524,274,348,3091,160,348,160,160,276,275, + 160,5524,5524,160,167,5524,167,193,5524,78, + 193,5524,3051,167,276,275,3777,2696,4469,5524, + 2743,4469,1020,5524,5524,1020,76,5524,5524,5524, + 5524,276,275,345,5524,5524,5524,5524,276,275, + 5524,5524,77,5524,5524,5524,160,276,275,160, + 5524,5524,5524,5524,5524,5524,1805,5524,5524,3707, + 5524,5524,500,5524,5524,5524,5524,5524,5524,5524, + 5524,5524,3232,5524,3744,5524,5524,5524,5524,5524, + 5524,3802,5524,5524,5524,5524,3187,5524,5524,3193, + 5524,5524,5524,5524,5524,5524,5524,497,499,5524, + 5524,5524,5524,5524,5524,5524,5524,5524,5524,5524, + 5524,5524,5524,5524,5524,5524,5524,5524,5524,5524, + 5524,5524,5524,5524,5524,5524,5524,5524,5524,5524, + 5524,5524,5524,5524,5524,3784,5524,0,5542,42, + 0,5541,42,0,161,533,0,508,33,0, + 449,783,0,5542,41,0,5541,41,0,2638, + 130,0,1,439,0,453,1170,0,452,1240, + 0,508,44,0,2107,96,0,38,305,0, + 389,297,0,36,390,0,33,389,0,508, + 33,389,0,1899,42,0,1,563,0,1, + 5797,0,1,5796,0,1,5795,0,1,5794, + 0,1,5793,0,1,5792,0,1,5791,0, + 1,5790,0,1,5789,0,1,5788,0,1, + 5787,0,1,5542,42,0,1,5541,42,0, + 1,1063,0,5757,240,0,5756,240,0,5867, + 240,0,5866,240,0,5784,240,0,5783,240, + 0,5782,240,0,5781,240,0,5780,240,0, + 5779,240,0,5778,240,0,5777,240,0,5797, + 240,0,5796,240,0,5795,240,0,5794,240, + 0,5793,240,0,5792,240,0,5791,240,0, + 5790,240,0,5789,240,0,5788,240,0,5787, + 240,0,5542,42,240,0,5541,42,240,0, + 5565,240,0,38,285,261,0,508,389,0, + 5542,53,0,5541,53,0,48,5563,0,48, + 40,0,2638,132,0,2638,131,0,3138,236, + 0,30,515,0,5859,440,0,862,440,0, + 1,97,0,52,40,0,1,5565,0,1, + 42,0,1,5565,228,0,1,42,228,0, + 228,414,0,5542,40,0,5541,40,0,5563, + 50,0,40,50,0,5542,39,0,5541,39, + 0,5542,2,40,0,5541,2,40,0,5534, + 405,0,5533,405,0,1,4439,0,1,2996, + 0,1,1899,0,228,413,0,5859,100,0, + 862,100,0,2496,324,0,1,5859,0,1, + 862,0,3914,281,0,1,1904,0,1,3822, + 0,5532,1,0,496,3807,0,1,228,0, + 1,228,3638,0,5534,228,0,5533,228,0, + 3793,228,0,161,180,0,297,3257,0,8, + 10,0,228,168,0,228,220,0,228,219, + 0,190,4263,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1084,388 +1129,415 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,0,48,49, - 50,51,52,53,54,55,56,0,58,2, - 60,61,62,63,64,65,0,67,0,1, - 4,71,4,73,6,75,76,77,78,79, - 80,81,82,83,84,85,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,0,48,49,50,51,52,53, - 54,55,56,0,58,2,60,61,62,63, - 64,65,0,67,0,1,2,3,4,73, - 6,75,76,77,78,79,80,81,82,83, - 84,85,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,0, - 48,49,50,51,52,53,54,55,56,0, - 58,0,60,61,62,63,64,65,7,67, - 0,1,2,3,4,73,6,75,76,77, - 78,79,80,81,82,83,84,85,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,0,48,49,50,51, - 52,53,54,55,56,0,58,98,60,61, - 62,63,64,65,0,67,0,1,2,3, - 4,73,6,75,76,77,78,79,80,81, - 82,83,84,85,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,0,48,49,50,51,52,53,54,55, - 56,0,58,0,60,61,62,63,64,65, - 0,67,0,1,99,3,4,73,6,75, - 76,77,78,79,80,81,82,83,84,85, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,0,48,49, - 50,51,52,53,54,55,56,0,58,2, - 60,61,62,63,64,65,0,67,0,1, - 97,3,4,73,6,75,76,77,78,79, - 80,81,82,83,84,85,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,0,48,49,50,51,52,53, - 54,55,56,0,58,2,60,61,62,63, - 64,65,0,67,0,1,0,5,2,73, - 6,75,76,77,78,79,80,81,82,83, - 84,85,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,0, - 48,49,50,51,52,53,54,55,56,0, - 58,0,60,61,62,63,64,65,0,67, - 0,89,90,5,0,73,113,75,76,77, - 78,79,80,81,82,83,84,85,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,0,48,49,50,51, - 52,53,54,55,56,71,58,98,60,61, - 62,63,64,65,0,67,97,89,90,0, - 1,73,3,75,76,77,78,79,80,81, - 82,83,84,85,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,0,48,49,50,51,52,53,54,55, - 56,0,58,0,60,61,62,63,64,65, - 0,67,0,1,2,3,4,73,6,75, - 76,77,78,79,80,81,82,83,84,85, - 0,1,2,3,4,5,6,7,114,9, - 10,11,12,42,0,1,45,46,4,48, - 49,50,51,52,53,54,55,56,0,1, - 2,3,4,5,6,7,0,1,0,3, - 60,59,42,43,0,45,46,3,48,49, - 50,51,52,53,54,55,56,57,0,59, - 60,3,0,5,0,7,66,3,68,69, - 70,71,72,73,0,1,2,3,4,5, - 6,7,0,47,0,1,86,87,88,89, - 90,91,92,93,94,95,96,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,114,115,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,0,48,49,50,51,52,53, - 54,55,56,0,58,93,114,61,62,63, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,0,44,45,46,0,48,49, - 50,51,52,53,54,55,56,0,58,66, - 0,61,62,63,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,47,44,45, - 46,68,48,49,50,51,52,53,54,55, - 56,0,58,66,3,61,62,63,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,44,45,46,0,48,49,50,51, - 52,53,54,55,56,0,58,0,1,61, - 62,63,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,60,44,45,46,68, - 48,49,50,51,52,53,54,55,56,0, - 58,66,3,61,62,63,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,0, - 44,45,46,0,48,49,50,51,52,53, - 54,55,56,0,58,0,0,61,62,63, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 0,0,42,47,3,45,46,68,48,49, + 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,56,0,58,0, - 0,61,62,63,0,0,2,72,3,5, - 0,7,0,9,10,11,12,0,1,2, - 3,4,42,6,43,45,46,0,48,49, - 50,51,52,53,54,55,56,0,1,2, - 3,4,42,6,0,45,46,43,48,49, - 50,51,52,53,54,55,56,0,59,0, - 43,57,57,59,0,1,2,3,71,5, - 66,7,68,69,70,71,72,0,66,2, - 43,0,5,2,7,75,9,10,11,12, - 86,87,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,112,113,114,115, - 43,0,1,59,3,66,5,68,7,72, - 0,1,88,3,57,5,59,7,94,0, - 59,0,1,66,3,68,69,70,71,72, - 0,1,2,3,4,5,6,7,0,0, - 1,0,3,86,87,88,89,90,91,92, - 93,94,95,96,97,98,99,100,101,102, - 103,104,105,106,107,108,109,110,111,112, - 113,114,115,0,1,2,3,4,5,6, - 7,8,0,1,45,3,13,14,15,16, - 17,18,19,20,21,22,23,59,0,1, - 70,0,1,2,3,4,5,6,7,0, - 1,0,1,0,1,42,43,44,45,46, - 47,48,49,50,51,52,53,54,55,56, - 0,58,2,0,61,62,63,64,40,41, - 99,0,60,70,71,0,0,74,7,40, - 41,0,1,2,3,4,5,6,7,8, - 59,0,0,2,13,14,15,16,17,18, - 19,20,21,22,23,42,0,1,45,46, - 4,48,49,50,51,52,53,54,55,56, - 117,118,119,42,43,44,45,46,47,48, + 60,61,62,63,64,65,0,67,68,0, + 1,2,72,4,74,0,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,56,70,58,0,60,61, + 62,63,64,65,0,67,68,0,0,100, + 72,95,74,6,76,77,78,79,80,81, + 0,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,0,58,0,60,61,62,63, + 64,65,9,67,68,0,88,89,91,92, + 74,6,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,0,58,0,60,61,62,63,64,65, + 95,67,68,0,0,0,91,92,74,6, + 76,77,78,79,80,81,12,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,75, + 58,0,60,61,62,63,64,65,95,67, + 68,10,11,0,91,92,74,4,76,77, + 78,79,80,81,99,83,84,85,86,87, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,0,58,0, + 60,61,62,63,64,65,0,67,68,3, + 0,1,2,0,74,5,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,56,0,58,74,60,61, + 62,63,64,65,0,67,68,0,1,2, + 0,4,74,0,76,77,78,79,80,81, + 0,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,70,58,0,60,61,62,63, + 64,65,0,67,68,0,1,2,88,89, + 74,0,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,70,58,0,60,61,62,63,64,65, + 0,67,68,3,0,0,1,2,74,0, + 76,77,78,79,80,81,12,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,75, + 58,0,60,61,62,63,64,65,0,67, + 68,0,0,0,1,2,74,0,76,77, + 78,79,80,81,12,83,84,85,86,87, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,0,58,0, + 60,61,62,63,64,65,0,67,68,88, + 89,100,0,0,74,0,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,115,10,11, + 12,13,14,44,0,0,47,48,49,50, + 51,52,53,54,55,56,44,58,61,47, + 48,49,50,51,52,53,54,55,56,0, + 58,26,44,45,59,47,48,49,50,51, + 52,53,54,55,56,0,58,59,73,61, + 0,69,70,3,66,10,11,69,70,71, + 72,73,74,75,0,1,2,3,4,5, + 6,7,8,0,1,2,88,89,90,91, + 92,93,94,95,96,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,0,58,0,60,4,62,63, + 64,0,1,2,3,4,5,6,7,8, + 9,10,11,0,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,44,0,46,47,48, 49,50,51,52,53,54,55,56,0,58, - 0,66,61,62,63,64,70,9,10,9, - 10,70,71,47,0,74,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, + 0,60,4,62,63,64,0,1,2,3, + 4,5,6,7,8,9,10,11,0,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,117,118, - 119,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, + 34,35,36,37,38,39,40,41,42,43, + 44,116,46,47,48,49,50,51,52,53, + 54,55,56,0,58,47,60,0,62,63, + 64,0,1,2,3,4,5,6,7,8, + 9,10,11,0,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, - 39,40,41,0,43,44,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, + 39,40,41,42,43,44,116,46,47,48, + 49,50,51,52,53,54,55,56,0,58, + 0,60,69,62,63,64,0,1,2,3, + 4,5,6,7,8,9,10,11,0,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,45,43, - 44,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, + 34,35,36,37,38,39,40,41,42,43, + 44,0,46,47,48,49,50,51,52,53, + 54,55,56,0,58,0,60,69,62,63, + 64,0,1,2,3,4,5,6,7,8, + 9,10,11,0,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, - 39,40,41,0,43,44,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, + 39,40,41,42,43,44,0,46,47,48, + 49,50,51,52,53,54,55,56,0,58, + 0,60,69,62,63,64,0,1,2,3, + 4,5,6,7,8,9,10,11,0,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,0,1, - 44,0,0,1,0,3,2,5,0,7, - 9,10,0,1,2,3,4,5,6,7, - 0,1,2,3,4,0,6,2,72,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,59,0,44,72,0,1,0,3,2, - 5,69,7,0,59,0,1,2,3,4, - 70,6,0,0,1,93,3,0,5,2, - 7,72,0,1,2,3,4,5,6,7, + 34,35,36,37,38,39,40,41,0,0, + 44,3,0,47,48,49,50,51,52,53, + 54,55,56,0,58,0,60,0,62,63, + 64,0,0,0,3,12,4,6,6,8, + 8,10,11,12,13,14,88,89,15,16, + 17,18,19,20,21,22,23,24,25,99, + 0,1,2,3,4,5,57,7,0,1, + 2,59,12,5,66,7,45,44,0,0, + 47,48,49,50,51,52,53,54,55,56, + 59,58,0,1,2,0,4,66,75,0, + 69,70,71,72,73,45,75,0,1,2, + 3,4,5,6,7,8,0,0,95,88, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,102,103,104,105,106,107,108, + 109,110,111,112,113,114,115,116,117,0, + 71,0,3,61,59,6,0,8,0,10, + 11,12,13,14,0,1,2,3,4,5, + 6,7,8,66,57,0,1,2,71,4, + 5,102,7,104,105,106,107,108,109,110, + 111,112,113,114,45,44,97,98,47,48, + 49,50,51,52,53,54,55,56,59,58, + 0,1,2,97,98,66,60,7,69,70, + 71,72,73,0,75,0,1,2,3,4, + 5,6,7,8,0,1,2,88,89,90, + 91,92,93,94,95,96,97,98,99,100, + 101,102,103,104,105,106,107,108,109,110, + 111,112,113,114,115,116,117,0,1,2, + 3,4,5,6,7,8,9,0,0,12, + 122,4,15,16,17,18,19,20,21,22, + 23,24,25,0,1,2,73,4,73,6, + 0,8,0,0,1,2,3,4,5,0, + 7,44,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,0,60,0,62, + 63,64,65,0,1,2,59,4,0,72, + 73,0,1,2,3,4,5,69,7,82, + 0,1,2,3,4,5,6,7,8,9, + 0,59,12,3,0,15,16,17,18,19, + 20,21,22,23,24,25,73,0,1,2, + 0,4,5,3,7,59,119,120,121,0, + 57,0,1,2,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,73,62,63,64,65,88,89,0,119, + 120,121,72,73,0,1,2,3,4,5, + 0,7,82,44,57,5,47,48,49,50, + 51,52,53,54,55,56,66,58,57,0, + 0,1,2,3,4,5,6,7,8,0, + 1,2,3,4,5,101,7,0,59,119, + 120,121,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,59,73,44,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,0, - 1,44,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,0,0,44,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,0, - 1,44,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,0,0,47,3,3,95, - 96,0,0,1,0,100,2,0,0,1, - 0,0,5,3,0,1,0,112,66,0, + 38,39,40,41,42,43,66,45,46,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,47,60,44,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,95,96,44,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,0,1,44,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,0,1,44,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,0,1,44,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,0,0,44,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,0,86,87,0,88,0,0,2,0, - 0,94,8,0,0,5,0,0,0,0, - 4,60,0,0,0,24,2,0,1,0, - 0,2,71,0,1,2,3,4,5,6, + 41,42,43,0,45,46,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 0,45,46,0,1,2,3,4,5,6, 7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,0,47,2,57,4,5,0, - 7,2,9,10,11,12,0,1,59,3, - 4,68,6,60,71,66,66,68,25,89, - 90,72,0,0,71,88,88,93,86,87, - 0,94,94,40,41,13,14,15,16,17, - 18,19,20,21,22,23,117,118,119,0, - 57,0,59,47,0,0,0,0,59,66, - 0,68,69,0,42,2,43,45,46,0, - 48,49,50,51,52,53,54,55,56,86, - 87,88,89,90,91,92,0,1,95,96, - 97,98,99,100,101,102,103,104,105,106, - 107,108,109,110,111,0,46,2,48,4, - 5,0,7,0,9,10,11,12,69,0, - 1,0,3,4,68,6,72,0,72,8, - 25,0,1,47,0,1,5,86,87,70, - 0,86,87,86,87,40,41,93,8,100, - 0,102,103,104,105,106,107,108,109,110, - 111,112,57,0,59,2,47,0,47,2, - 57,66,0,68,69,0,0,2,47,58, - 69,47,0,70,57,0,0,47,0,0, - 2,86,87,88,89,90,91,92,58,0, - 95,96,97,98,99,100,101,102,103,104, - 105,106,107,108,109,110,111,0,1,2, - 3,4,5,6,7,8,9,10,11,12, + 37,38,39,40,41,42,43,0,0,46, + 3,0,0,0,1,2,8,0,1,2, + 3,4,0,6,12,8,0,1,2,3, + 4,5,0,7,0,1,2,5,75,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,66,72,46,0,0,0,0, + 1,2,66,4,5,61,7,10,11,0, + 1,2,0,1,2,3,4,5,6,7, + 8,9,10,11,75,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,57,59,46,0, + 1,2,3,4,5,6,7,8,9,10, + 11,0,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,0,0,46,0,1,2,3, + 4,5,6,7,8,9,10,11,0,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 0,0,46,0,1,2,3,4,5,6, + 7,8,9,10,11,61,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,0,0,46, + 0,1,2,3,4,5,6,7,8,9, + 10,11,61,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,0,1,2,0,4,0, + 6,101,8,0,0,1,2,0,1,2, + 3,4,5,6,7,8,9,10,11,69, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,69,72,70, - 0,0,2,2,0,66,116,68,0,0, - 2,2,0,1,0,93,2,60,0,1, + 33,34,35,36,37,38,39,40,41,42, + 43,48,49,46,0,1,2,3,4,5, + 6,7,8,9,10,11,69,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,0,0, + 46,0,1,2,3,4,5,6,7,8, + 9,10,11,0,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,0,0,46,0,1, 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, + 61,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,0,0,1, - 0,0,2,0,1,0,0,0,0,0, - 0,0,0,0,0,0,0,59,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,116,0,0,0,116,0,0, - 0,24,24,0,0,120,0,0,0,0, - 0,113,0,1,2,3,4,5,6,7, + 32,33,34,35,36,37,38,39,40,41, + 42,43,0,0,46,0,1,2,3,4, + 5,6,7,8,9,10,11,61,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,0, + 0,46,0,1,2,3,4,5,6,7, + 8,9,10,11,61,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,0,46,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,0,1,2,0,4,0,6,0,8, + 4,3,8,12,0,1,2,3,4,5, + 61,7,0,1,2,0,4,0,6,0, + 8,72,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, + 38,39,40,41,66,118,75,0,1,2, + 66,4,0,6,59,8,59,0,1,2, + 0,4,5,61,7,0,95,0,69,70, + 3,0,0,0,72,0,1,2,3,4, + 5,6,7,8,9,10,11,0,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,0, + 1,2,3,4,5,6,7,8,9,10, + 11,66,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,0,1,2,3,4,5, + 6,7,8,9,10,11,0,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,0,0,0,3, + 0,0,0,1,2,4,0,5,0,13, + 14,0,0,0,3,61,0,1,2,3, + 4,5,6,7,8,9,10,11,115,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,0,57, + 59,3,66,5,6,59,8,0,10,11, + 0,13,14,3,0,1,2,3,4,5, + 0,7,12,71,4,27,12,90,0,1, + 2,0,12,96,0,0,1,2,90,103, + 42,43,102,0,96,0,0,1,2,0, + 4,6,0,117,114,0,4,59,0,45, + 26,12,4,0,66,45,0,69,70,71, + 42,43,0,66,0,0,66,42,43,69, + 70,0,1,2,9,75,88,89,90,91, + 92,93,94,47,45,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,113,0,0,59,3,3,5,6,70, + 8,90,10,11,69,13,14,96,0,1, + 2,59,0,59,6,0,1,2,57,27, + 0,69,67,69,12,0,0,0,93,94, + 0,1,2,90,42,43,0,12,12,96, + 4,0,0,0,3,93,94,93,94,0, + 0,59,3,3,0,12,0,45,66,3, + 0,69,70,71,71,57,0,0,41,3, + 45,45,57,0,0,0,0,0,0,59, + 88,89,90,91,92,93,94,57,12,97, + 98,99,100,101,102,103,104,105,106,107, + 108,109,110,111,112,113,0,1,2,3, + 4,5,6,7,8,9,10,11,75,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,69,72,0, + 73,0,3,0,3,0,3,0,1,2, 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, + 10,11,66,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,0, - 1,0,3,0,3,0,0,8,0,0, - 1,8,13,14,15,16,17,18,19,20, - 21,22,23,0,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,42,0,0,45,46,0,48,49,50, - 51,52,53,54,55,56,47,58,57,0, - 61,62,63,0,1,0,3,0,65,0, - 47,8,66,47,68,0,13,14,15,16, - 17,18,19,20,21,22,23,0,1,2, - 3,4,5,6,7,0,1,2,3,4, - 5,6,7,57,68,42,0,0,45,46, - 43,48,49,50,51,52,53,54,55,56, - 0,58,57,0,61,62,63,68,59,42, - 43,66,57,0,47,68,0,42,43,0, - 0,0,47,0,57,0,0,0,0,0, - 0,64,65,0,67,0,91,92,0,64, - 65,74,67,57,57,0,71,0,0,74, - 0,1,2,3,4,5,6,7,0,1, - 2,3,4,5,6,7,0,1,2,3, - 4,5,6,7,58,0,57,2,57,59, - 57,0,57,57,0,66,11,12,59,0, - 57,0,42,43,59,0,69,47,70,69, - 42,43,57,0,0,47,0,69,42,43, - 91,92,0,47,64,65,69,67,70,0, - 39,71,64,65,74,67,0,43,0,71, - 64,65,74,67,59,0,0,71,0,0, - 74,0,1,2,3,4,5,6,7,0, - 1,2,3,4,5,6,7,0,1,2, - 3,4,5,6,7,70,60,0,0,43, - 0,68,0,69,0,0,101,0,0,60, - 0,0,70,42,43,57,0,0,47,0, - 115,42,43,57,66,0,47,0,60,42, - 43,66,0,0,47,64,65,0,67,70, - 0,0,71,64,65,74,67,0,0,91, - 92,64,65,74,67,0,0,60,0,0, - 0,74,0,1,2,3,4,5,6,7, - 72,69,0,69,69,68,0,69,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,42,43,0,0,0,47, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,64,65,0,67, - 0,0,0,0,0,0,74,0,0,0, + 30,31,32,33,34,35,36,37,38,39, + 40,41,0,1,2,3,4,5,6,7, + 8,9,10,11,57,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,0,1,2,3,4,5,6, + 7,8,9,10,11,0,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,0,1,2,3,4,5, + 6,7,8,9,10,11,0,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,0,1,2,0,4, + 0,0,0,0,9,0,0,1,2,0, + 15,16,17,18,19,20,21,22,23,24, + 25,0,0,0,0,0,3,3,0,0, + 0,3,0,12,0,69,70,12,0,44, + 0,12,47,48,49,50,51,52,53,54, + 55,56,0,58,0,60,0,62,63,64, + 0,1,2,57,4,0,66,66,70,9, + 0,1,2,71,71,15,16,17,18,19, + 20,21,22,23,24,25,0,1,2,3, + 4,5,6,7,8,70,75,57,12,70, + 75,72,70,0,44,0,0,47,48,49, + 50,51,52,53,54,55,56,0,58,0, + 60,0,62,63,64,4,0,57,0,73, + 44,45,0,1,2,3,4,5,6,7, + 8,0,0,57,12,59,0,0,0,0, + 9,65,0,67,68,0,0,0,0,1, + 2,3,4,5,6,7,8,0,82,66, + 12,66,0,0,0,3,44,45,59,73, + 59,0,0,0,0,59,3,0,71,57, + 3,0,0,9,3,0,0,65,57,67, + 68,60,44,45,72,0,1,2,3,4, + 5,6,7,8,82,57,70,12,71,71, + 0,69,73,65,0,67,68,71,73,0, + 72,0,1,2,3,4,5,6,7,8, + 82,57,0,12,60,3,118,73,0,44, + 45,0,0,71,0,0,0,76,0,0, + 118,0,57,71,0,70,0,71,0,0, + 65,0,67,68,26,44,45,72,0,1, + 2,3,4,5,6,7,8,82,57,0, + 12,0,0,0,0,0,65,0,67,68, + 0,0,0,72,0,1,2,3,4,5, + 6,7,8,82,59,0,12,0,0,0, + 0,0,44,45,0,0,0,0,0,0, + 0,0,0,0,0,57,0,0,0,0, + 0,0,0,65,0,67,68,0,44,45, + 72,0,1,2,3,4,5,6,7,8, + 82,57,0,12,0,0,0,0,0,65, + 0,67,68,0,0,0,0,0,1,2, + 3,4,5,6,7,8,82,0,0,12, + 0,0,0,0,0,44,45,0,0,0, + 0,0,0,0,0,0,0,0,57,0, + 0,0,0,0,0,0,65,0,67,68, + 0,44,45,0,0,0,0,0,0,0, + 0,0,0,82,57,0,0,0,0,0, + 0,0,65,0,67,68,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0 + 0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1473,387 +1545,414 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5276,5257,5254,5254,5254,5254,5254,5254,1,1, + 5524,5490,5487,5487,5487,5487,5487,5487,5487,1, + 1,1,5500,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5497,3733,1,1,1, + 1,1,1,1,1,1,1,1,1,139, + 1,2201,1,1,1,2423,362,2228,3589,5524, + 5171,5168,5531,5565,558,162,3732,2489,2177,2127, + 3608,3877,5524,3730,729,3684,2843,3661,8,5509, + 5509,5509,5509,5509,5509,5509,5509,5509,5509,5509, + 5509,5509,5509,5509,5509,5509,5509,5509,5509,5509, + 5509,5509,5509,5509,5509,5509,5509,5509,5509,5509, + 5509,5509,5509,5509,5509,5509,5509,5509,5509,5509, + 5509,5509,5509,5509,5509,5509,5509,5509,5509,5509, + 5509,5509,5509,5509,5509,1297,5509,5524,5509,5509, + 5509,5509,5509,5509,5524,5509,5509,119,125,2306, + 5509,5885,5509,3378,5509,5509,5509,5509,5509,5509, + 5524,5509,5509,5509,5509,5509,5524,5490,5487,5487, + 5487,5487,5487,5487,5487,1,1,1,5494,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5497,3733,1,1,1,1,1,1,1, + 1,1,1,309,1,1,1,2201,1,1, + 1,2423,5832,2228,3589,121,2707,2803,3354,3330, + 558,3378,3732,2489,2177,2127,3608,3877,5524,3730, + 729,3684,2843,3661,5524,5490,5487,5487,5487,5487, + 5487,5487,5487,1,1,1,5494,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5497, + 3733,1,1,1,1,1,1,1,1,1, + 1,5524,1,1,1,2201,1,1,1,2423, + 5887,2228,3589,120,1,137,3354,3330,558,3378, + 3732,2489,2177,2127,3608,3877,166,3730,729,3684, + 2843,3661,5524,5490,5487,5487,5487,5487,5487,5487, + 5487,1,1,1,5494,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5497,3733,1, + 1,1,1,1,1,1,1,1,1,166, + 1,122,1,2201,1,1,1,2423,3229,2228, + 3589,2886,591,42,3354,3330,558,5565,3732,2489, + 2177,2127,3608,3877,2340,3730,729,3684,2843,3661, + 5524,5490,5487,5487,5487,5487,5487,5487,5487,1, + 1,1,5494,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5261,3452,1,1,1,1,1, - 1,1,1,1,1,1,1,5276,1,3768, - 2321,1,1,1,2140,3441,5276,3380,5276,5311, - 4305,5284,1969,1808,3446,3427,3084,2109,3030,3382, - 3525,3409,3431,3408,2931,3401,5276,5257,5254,5254, - 5254,5254,5254,5254,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5497,3733,1,1,1, + 1,1,1,1,1,1,1,5524,1,5524, + 1,2201,1,1,1,2423,5524,2228,3589,3060, + 5524,5541,5542,1,558,4956,3732,2489,2177,2127, + 3608,3877,5524,3730,729,3684,2843,3661,5524,5490, + 5487,5487,5487,5487,5487,5487,5487,1,1,1, + 5494,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5497,3733,1,1,1,1,1, + 1,1,1,1,1,5524,1,2750,1,2201, + 1,1,1,2423,5524,2228,3589,5524,5171,5168, + 129,5565,558,511,3732,2489,2177,2127,3608,3877, + 5524,3730,729,3684,2843,3661,5524,5490,5487,5487, + 5487,5487,5487,5487,5487,1,1,1,5494,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5497,3733,1,1,1,1,1,1,1, + 1,1,1,823,1,5524,1,2201,1,1, + 1,2423,5524,2228,3589,5524,5541,5542,2707,2803, + 558,366,3732,2489,2177,2127,3608,3877,5524,3730, + 729,3684,2843,3661,5524,5490,5487,5487,5487,5487, + 5487,5487,5487,1,1,1,5494,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5497, + 3733,1,1,1,1,1,1,1,1,1, + 1,909,1,5524,1,2201,1,1,1,2423, + 5524,2228,3589,3138,5524,5524,5363,5360,558,5524, + 3732,2489,2177,2127,3608,3877,5530,3730,729,3684, + 2843,3661,5524,5490,5487,5487,5487,5487,5487,5487, + 5487,1,1,1,5494,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5497,3733,1, + 1,1,1,1,1,1,1,1,1,5529, + 1,140,1,2201,1,1,1,2423,5524,2228, + 3589,128,5524,53,5363,5360,558,5524,3732,2489, + 2177,2127,3608,3877,5528,3730,729,3684,2843,3661, + 5524,3638,1,1,1,1,1,1,1,1, + 1,1,5534,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5533,3733,1,1,1, + 1,1,1,1,1,1,1,5524,1,223, + 1,2201,1,1,1,2423,5524,2228,3589,2707, + 2803,2306,224,5524,558,33,3732,2489,2177,2127, + 3608,3877,30,3730,729,3684,2843,3661,5524,5353, + 5353,5353,5353,5353,5353,5353,5353,5527,5353,5353, + 5353,5353,5353,5780,5524,5524,5783,5866,5867,5777, + 5784,5756,5782,5781,5778,5779,5780,5757,1189,5783, + 5866,5867,5777,5784,5756,5782,5781,5778,5779,5524, + 5757,3170,5353,5353,508,5353,5353,5353,5353,5353, + 5353,5353,5353,5353,5353,124,5353,5353,421,5353, + 96,5381,5381,5204,5353,2886,591,5353,5353,5353, + 5353,5353,5353,5353,5524,5171,5168,4439,1063,1899, + 862,2996,5859,291,5541,5542,5353,5353,5353,5353, + 5353,5353,5353,5353,5353,5353,5353,5353,5353,5353, + 5353,5353,5353,5353,5353,5353,5353,5353,5353,5353, + 5353,5353,5353,5353,5353,5353,5524,5487,5487,5487, + 5487,5487,5487,5487,5487,1,1,1,5512,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5512,5685,1,1,1,1,1,1,1, + 1,1,1,5524,1,5524,1,2981,1,1, + 1,5524,1,1,1,1,1,1,1,1, + 1,1,1,5524,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5524,5685,1,1, + 1,1,1,1,1,1,1,1,508,1, + 5524,1,5210,1,1,1,5524,1,1,1, + 1,1,1,1,1,1,1,1,431,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5167,5685,1,1,1,1,1,1,1, + 1,1,1,5524,1,5954,1,5524,1,1, + 1,5524,1,1,1,1,1,1,1,1, + 1,1,1,5524,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5174,5685,1,1, + 1,1,1,1,1,1,1,1,5524,1, + 5524,1,2776,1,1,1,5524,1,1,1, + 1,1,1,1,1,1,1,1,5524,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5524,5685,1,1,1,1,1,1,1, + 1,1,1,5524,1,5524,1,2792,1,1, + 1,5524,1,1,1,1,1,1,1,1, + 1,1,1,5524,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5261, - 3452,1,1,5276,1,1,1,1,1,1, - 1,1,1,5276,1,2883,2321,1,1,1, - 2140,3441,5276,3380,1,5056,4438,5060,1969,1808, - 3446,3427,3084,2109,3030,3382,3525,3409,3431,3408, - 2931,3401,5276,5257,5254,5254,5254,5254,5254,5254, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5524,5685,1,1, + 1,1,1,1,1,1,1,1,127,1, + 138,1,2871,1,1,1,42,5171,5168,3134, + 1063,3303,3561,2996,3584,1149,3538,3515,5524,3633, + 3610,5789,5787,5796,5795,5791,5792,5790,5793,5794, + 5797,5788,5547,928,780,1101,5549,791,631,863, + 5550,5548,777,5543,5545,5546,5544,1253,1,40, + 5780,2980,5524,5783,5866,5867,5777,5784,5756,5782, + 5781,5778,5779,1,5757,5524,5922,5524,618,5923, + 5924,390,42,222,5213,367,5565,5213,862,5213, + 5859,5213,5213,5213,5213,5213,2707,2803,5789,5787, + 5796,5795,5791,5792,5790,5793,5794,5797,5788,2340, + 1,5266,5262,5445,5270,5451,5563,5448,5524,5541, + 5542,2453,5534,1899,1813,2996,5213,5780,5524,143, + 5783,5866,5867,5777,5784,5756,5782,5781,5778,5779, + 5213,5757,5524,5171,5168,5524,5565,5213,367,133, + 5213,5213,5213,5213,5213,5533,5213,371,5266,5262, + 2777,5270,1899,1,2996,1,134,52,367,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,389, + 1770,225,5216,1590,2454,5216,5524,5216,190,5216, + 5216,5216,5216,5216,317,5266,5262,4439,5270,1899, + 5469,2996,5466,1813,2028,5524,5171,5168,1077,1063, + 1899,2232,2996,1727,1684,1641,1598,1555,1512,1469, + 1426,1383,1340,3881,5216,5780,2553,2524,5783,5866, + 5867,5777,5784,5756,5782,5781,5778,5779,5219,5757, + 41,5186,5183,2553,2524,5216,3903,822,5216,5216, + 5216,5216,5216,5524,5216,5524,5266,5262,4439,5270, + 1899,5469,2996,5466,39,5428,5425,5216,5216,5216, + 5216,5216,5216,5216,5216,5216,5216,5216,5216,5216, + 5216,5216,5216,5216,5216,5216,5216,5216,5216,5216, + 5216,5216,5216,5216,5216,5216,5216,5524,5406,5406, + 228,5402,228,228,228,228,1,396,5524,5410, + 5521,5210,1,1,1,1,1,1,1,1, + 1,1,1,439,1,1,1854,1,2044,5192, + 5524,5192,5524,1,5266,5262,4439,5270,1899,5524, + 2996,1,228,5934,1,1,1,1,1,1, + 1,1,1,1,496,1,5524,1,126,1, + 1,1,1059,397,5171,5168,508,5565,425,414, + 228,1,5266,5262,4439,5270,1899,2884,2996,6019, + 5524,5406,5406,228,5402,228,228,228,228,1, + 1,3885,5454,4617,141,1,1,1,1,1, + 1,1,1,1,1,1,2044,5524,5171,5168, + 352,1063,5223,1708,2996,4037,5956,5957,5958,226, + 42,5524,9933,9933,1,228,5934,1,1,1, + 1,1,1,1,1,1,1,496,1,33, + 1,2264,1,1,1,1059,2707,2803,5524,5956, + 5957,5958,413,228,1,5266,5262,5445,5270,5451, + 5524,5448,6019,5780,804,4973,5783,5866,5867,5777, + 5784,5756,5782,5781,5778,5779,1813,5757,5563,5524, + 350,5171,5168,2777,1063,1899,862,2996,5859,1, + 5266,5262,4439,5270,1899,2271,2996,5524,5177,5956, + 5957,5958,5524,1,1,1,1,1,1,1, + 1,1,1,1,5534,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5261,3452,1,1,136, - 1,1,1,1,1,1,1,1,1,5276, - 1,132,2321,1,1,1,2140,3441,2328,3380, - 1,5056,5218,5060,5224,1808,5221,3427,3084,2109, - 3030,3382,3525,3409,3431,3408,2931,3401,5276,5257, - 5254,5254,5254,5254,5254,5254,1,1,1,1, + 1,1,1,1,1,1,1813,5533,5685,5524, 1,1,1,1,1,1,1,1,1,1, + 1,168,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5261,3452,1,1,5276,1,1,1,1, - 1,1,1,1,1,138,1,2237,2321,1, - 1,1,2140,3441,5276,3380,1,5056,4438,5060, - 1969,1808,3446,3427,3084,2109,3030,3382,3525,3409, - 3431,3408,2931,3401,5276,5257,5254,5254,5254,5254, - 5254,5254,1,1,1,1,1,1,1,1, + 1,1,1,5524,168,5685,5524,1,1,1, + 1,1,1,1,1,1,1,1,168,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5261,3452,1, - 1,5276,1,1,1,1,1,1,1,1, - 1,5276,1,134,2321,1,1,1,2140,3441, - 5276,3380,5276,4965,2203,1104,1969,1808,3446,3427, - 3084,2109,3030,3382,3525,3409,3431,3408,2931,3401, - 5276,5257,5254,5254,5254,5254,5254,5254,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5261,3452,1,1,5276,1,1, - 1,1,1,1,1,1,1,93,1,4998, - 2321,1,1,1,2140,3441,5276,3380,5276,4965, - 2270,1104,1969,1808,3446,3427,3084,2109,3030,3382, - 3525,3409,3431,3408,2931,3401,5276,5257,5254,5254, - 5254,5254,5254,5254,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5261, - 3452,1,1,5276,1,1,1,1,1,1, - 1,1,1,1,1,3906,2321,1,1,1, - 2140,3441,116,3380,38,4977,233,3356,5167,1808, - 1150,3427,3084,2109,3030,3382,3525,3409,3431,3408, - 2931,3401,5276,5257,5254,5254,5254,5254,5254,5254, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5261,3452,1,1,137, - 1,1,1,1,1,1,1,1,1,135, - 1,5276,2321,1,1,1,2140,3441,118,3380, - 5276,3327,3252,3356,5276,1808,5282,3427,3084,2109, - 3030,3382,3525,3409,3431,3408,2931,3401,5276,5257, - 5254,5254,5254,5254,5254,5254,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5261,3452,1,1,5276,1,1,1,1, - 1,1,1,1,1,5284,1,2237,2321,1, - 1,1,2140,3441,5276,3380,2270,3327,3252,5276, - 4965,1808,5314,3427,3084,2109,3030,3382,3525,3409, - 3431,3408,2931,3401,5276,3383,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5285,3452,1, - 1,5276,1,1,1,1,1,1,1,1, - 1,220,1,5276,2321,1,1,1,2140,3441, - 5276,3380,1,5056,2699,5060,1969,1808,3446,3427, - 3084,2109,3030,3382,3525,3409,3431,3408,2931,3401, - 5276,5145,5145,5145,5145,5145,5145,5145,4964,5145, - 5145,5145,5145,5529,5276,2038,5532,5615,3350,5616, - 5526,5533,5505,5531,5530,5527,5528,5506,5276,4965, - 4438,1104,1969,1487,3446,5608,396,5063,5276,5314, - 1529,1747,5145,5145,39,5145,5145,5314,5145,5145, - 5145,5145,5145,5145,5145,5145,5145,5145,39,5145, - 5145,5314,5276,1487,5276,5608,5145,722,5145,5145, - 5145,5145,5145,5145,314,5056,4438,5060,1969,5239, - 3446,5236,359,39,5276,1702,5145,5145,5145,5145, - 5145,5145,5145,5145,5145,5145,5145,5145,5145,5145, - 5145,5145,5145,5145,5145,5145,5145,5145,5145,5145, - 5145,5145,5145,5145,5145,5145,5276,5254,5254,5254, - 5254,5254,5254,5254,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5270, - 5434,1,1,5276,1,1,1,1,1,1, - 1,1,1,5276,1,5634,4968,1,1,1, - 5276,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,159,5434,1,1,5276,1,1, - 1,1,1,1,1,1,1,5276,1,2671, - 37,1,1,1,5276,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5312,5434,1, - 1,1242,1,1,1,1,1,1,1,1, - 1,507,1,2694,5004,1,1,1,5276,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,510,5434,1,1,5276,1,1,1,1, - 1,1,1,1,1,5276,1,5276,5152,1, - 1,1,5276,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2381,5434,1,1,821, - 1,1,1,1,1,1,1,1,1,1, - 1,2748,387,1,1,1,5276,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,363, - 5434,1,1,5276,1,1,1,1,1,1, - 1,1,1,5276,1,1,49,1,1,1, - 39,4986,2842,1104,629,4068,3446,4090,1083,4046, - 3727,4134,4112,5538,5536,5545,5544,5540,5541,5539, - 5542,5543,5546,5537,5296,2397,712,789,5298,726, - 4352,787,5299,5297,677,5292,5294,5295,5293,1200, - 221,35,5529,1056,5001,5532,5615,2909,5616,5526, - 5533,5505,5531,5530,5527,5528,5506,1,5673,452, - 222,575,5674,5675,387,395,5007,163,5004,5007, - 5276,5007,5276,5007,5007,5007,5007,1,5056,5218, - 5060,5224,5529,5221,5001,5532,5615,5276,5616,5526, - 5533,5505,5531,5530,5527,5528,5506,1,5056,4438, - 5060,1969,5529,3446,112,5532,5615,5007,5616,5526, - 5533,5505,5531,5530,5527,5528,5506,5276,4989,27, - 5285,5007,507,5007,347,39,2845,5314,5284,1487, - 5007,5608,5007,5007,5007,5007,5007,386,2761,5010, - 314,1,5010,2845,5010,3561,5010,5010,5010,5010, - 5007,5007,5007,5007,5007,5007,5007,5007,5007,5007, - 5007,5007,5007,5007,5007,5007,5007,5007,5007,5007, - 5007,5007,5007,5007,5007,5007,5007,5007,5007,5007, - 5010,438,1,1747,1,5170,4983,5170,4983,5283, - 439,39,4178,5314,5013,5176,5010,5173,4200,5276, - 1747,5276,4965,5010,5314,5010,5010,5010,5010,5010, - 5276,5056,4438,5060,1969,5239,3446,5236,451,430, - 39,139,5314,5010,5010,5010,5010,5010,5010,5010, - 5010,5010,5010,5010,5010,5010,5010,5010,5010,5010, - 5010,5010,5010,5010,5010,5010,5010,5010,5010,5010, - 5010,5010,5010,5276,5195,225,5191,225,225,225, - 225,1,5276,5066,5705,5314,1,1,1,1, - 1,1,1,1,1,1,1,4992,5276,1702, - 1977,347,4965,2699,1104,1969,1487,3446,5608,5276, - 5152,5276,5311,50,5152,1,225,5685,1,1, - 495,1,1,1,1,1,1,1,1,1, - 5276,1,4286,223,1,1,1,2043,4156,970, - 2203,133,1655,225,413,5276,5276,5770,2328,4156, - 970,5276,5195,225,5191,225,225,225,225,1, - 1747,5276,5276,4318,1,1,1,1,1,1, - 1,1,1,1,1,5529,37,5182,5532,5615, - 5182,5616,5526,5533,5505,5531,5530,5527,5528,5506, - 5707,5708,5709,1,225,5685,1,1,495,1, - 1,1,1,1,1,1,1,1,119,1, - 121,5782,1,1,1,2043,1785,2358,590,2358, - 590,225,412,1959,5276,5770,142,4965,2842,1104, - 629,4068,3446,4090,556,4046,3727,4134,4112,5538, - 5536,5545,5544,5540,5541,5539,5542,5543,5546,5537, - 5296,2397,712,789,5298,726,4352,787,5299,5297, - 677,5292,5294,5295,5293,1200,39,39,5707,5708, - 5709,5276,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,430,5285,5434,5276,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5705,165, - 5434,5276,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5276,165,5434,5276,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5276,2038, - 5434,120,1,5188,5276,5185,4760,1487,5276,5608, - 2358,590,368,5056,2699,5060,1969,1,3446,1, - 1,5056,4438,5060,1969,349,3446,1739,165,5276, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1747,1,5434,364,94,1,5276,1,4772, - 5179,1013,5179,5276,1747,1,5056,2699,5060,1969, - 1977,3446,5276,97,39,364,5314,5276,5230,3406, - 5227,165,5276,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1747,2750,572,5276,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,288, - 5567,5434,5276,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,130,140,5434,5276,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5276, - 9445,5434,1,5056,2842,5060,629,4068,3446,4090, - 5020,4046,3727,4134,4112,5047,5053,5026,5029,5041, - 5038,5044,5035,5032,5023,5050,5296,2397,712,789, - 5298,726,4352,787,5299,5297,677,5292,5294,5295, - 5293,1200,39,39,5276,5276,5312,783,3117,2480, - 2452,5276,5276,3505,5276,2165,3607,5276,36,5208, - 5276,131,2437,3229,45,5158,5276,3504,511,5276, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5155,3103,5434,5276,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,2480,2452,5434,5276, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5276,5567,5434,5276,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,396,5311,5434,5276, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5276,3152,5434,5276,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,122,115,5434,1, - 5056,2842,5060,629,4068,3446,4090,5020,4046,3727, - 4134,4112,5047,5053,5026,5029,5041,5038,5044,5035, - 5032,5023,5050,5296,2397,712,789,5298,726,4352, - 787,5299,5297,677,5292,5294,5295,5293,1200,39, - 39,39,4965,2842,1104,629,4068,3446,4090,556, - 4046,3727,4134,4112,5538,5536,5545,5544,5540,5541, - 5539,5542,5543,5546,5537,5296,2397,712,789,5298, - 726,4352,787,5299,5297,677,5292,5294,5295,5293, - 1200,5276,2628,2719,306,4178,105,5276,3647,5276, - 117,4200,5581,5276,1,3356,5276,114,113,5276, - 4766,3305,126,5276,5276,3048,2672,37,5182,1, - 5276,2845,5284,39,4965,2842,1104,629,4068,3446, - 4090,556,4046,3727,4134,4112,5538,5536,5545,5544, - 5540,5541,5539,5542,5543,5546,5537,5296,2397,712, - 789,5298,726,4352,787,5299,5297,677,5292,5294, - 5295,5293,1200,1,1963,633,3085,5739,5733,321, - 5737,5233,5731,5732,5762,5763,5276,4965,1747,1104, - 5017,924,3446,3305,5284,343,5725,343,5740,3327, - 3252,343,219,404,5284,4178,4178,5636,2628,2719, - 5276,4200,4200,1457,1607,5538,5536,5545,5544,5540, - 5541,5539,5542,5543,5546,5537,5707,5708,5709,140, - 5742,125,661,790,1,124,5276,123,1747,5743, - 338,5764,5741,278,5529,5242,5215,5532,5615,424, - 5616,5526,5533,5505,5531,5530,5527,5528,5506,5753, - 5752,5765,5734,5735,5758,5759,5276,5199,5756,5757, - 5736,5738,5760,5761,5766,5746,5747,5748,5744,5745, - 5754,5755,5750,5749,5751,5276,5615,633,5616,5739, - 5733,289,5737,30,5731,5732,5762,5763,1705,5276, - 4965,1,1104,5017,4839,3446,364,5276,5283,5245, - 5740,37,5182,5312,47,5205,2437,2628,2719,2654, - 1,2628,2719,2628,2719,1457,1607,364,5245,2165, - 5276,1663,1621,1579,1537,1495,1453,1411,1369,1327, - 1285,3504,5742,5276,661,3843,806,5276,3280,3947, - 507,5743,5276,5764,5741,5276,5276,3483,5312,5248, - 1883,5202,1,420,3645,5276,1,3280,315,5276, - 2323,5753,5752,5765,5734,5735,5758,5759,5248,5276, - 5756,5757,5736,5738,5760,5761,5766,5746,5747,5748, - 5744,5745,5754,5755,5750,5749,5751,39,4965,2842, - 1104,629,4068,3446,4090,556,4046,3727,4134,4112, - 5538,5536,5545,5544,5540,5541,5539,5542,5543,5546, - 5537,5296,2397,712,789,5298,726,4352,787,5299, - 5297,677,5292,5294,5295,5293,1200,1156,5283,5676, - 5276,5276,4386,4814,5276,3407,3513,3303,5276,5276, - 4761,4845,5276,3537,5276,3413,4657,3305,39,4965, - 2842,1104,629,4068,3446,4090,556,4046,3727,4134, - 4112,5538,5536,5545,5544,5540,5541,5539,5542,5543, - 5546,5537,5296,2397,712,789,5298,726,4352,787, - 5299,5297,677,5292,5294,5295,5293,1200,39,4965, - 2842,1104,629,4068,3446,4090,556,4046,3727,4134, - 4112,5538,5536,5545,5544,5540,5541,5539,5542,5543, - 5546,5537,5296,2397,712,789,5298,726,4352,787, - 5299,5297,677,5292,5294,5295,5293,376,5276,9190, - 5276,517,4870,5276,9190,187,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,1228,39,4965, - 2842,1104,629,4068,3446,4090,556,4046,3727,4134, - 4112,5538,5536,5545,5544,5540,5541,5539,5542,5543, - 5546,5537,5296,2397,712,789,5298,726,4352,787, - 5299,5297,677,5292,5294,5295,5293,39,4965,2842, - 1104,629,4068,3446,4090,556,4046,3727,4134,4112, - 5538,5536,5545,5544,5540,5541,5539,5542,5543,5546, - 5537,5296,2397,712,789,5298,726,4352,787,5299, - 5297,677,5292,5294,5295,5293,1200,5276,1,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,3513,5276,5276,5276,3513,5276,5276, - 5276,3090,3323,5276,5276,5273,5276,5276,5276,5276, - 5276,5282,39,4965,4778,1104,629,4068,3446,4090, - 556,4046,3727,4134,4112,5538,5536,5545,5544,5540, - 5541,5539,5542,5543,5546,5537,5296,2397,712,789, - 5298,726,4352,787,5299,5297,677,5292,5294,5295, - 5293,39,4965,2842,1104,629,4068,3446,4090,556, - 4046,3727,4134,4112,5538,5536,5545,5544,5540,5541, - 5539,5542,5543,5546,5537,5296,2397,712,789,5298, - 726,4352,787,5299,5297,677,5292,5294,5295,5293, - 39,4965,2842,1104,629,4068,3446,4090,556,4046, - 3727,4134,4112,5538,5536,5545,5544,5540,5541,5539, - 5542,5543,5546,5537,5296,2397,712,789,5298,726, - 4352,787,5299,5297,677,5292,5294,5295,5293,5276, - 4986,50,5314,306,1702,5276,5276,779,5276,5276, - 5211,5581,5538,5536,5545,5544,5540,5541,5539,5542, - 5543,5546,5537,37,5182,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,287,5276,5276,5276, - 5276,5529,5276,5276,5532,5615,5276,5616,5526,5533, - 5505,5531,5530,5527,5528,5506,5312,5673,1702,422, - 575,5674,5675,237,5138,127,5142,5276,1770,350, - 5312,779,3560,3164,3303,5276,5129,5135,5108,5111, - 5123,5120,5126,5117,5114,5105,5132,1,5254,225, - 5254,225,225,225,225,1,5254,225,5254,225, - 225,225,225,3665,1944,5093,30,5276,5084,5078, - 5285,5075,5102,5081,5072,5087,5090,5099,5096,5069, - 5276,5673,2589,5276,575,5674,5675,1276,1747,9037, - 225,4980,3865,5276,5251,4373,5276,9037,225,129, - 102,448,5251,41,3456,386,1,371,442,101, - 369,2140,863,5276,3380,323,2535,2508,416,2140, - 863,5770,3380,4971,567,5276,217,502,5276,5770, - 1,5254,225,5254,225,225,225,225,1,5254, - 225,5254,225,225,225,225,1,5254,225,5254, - 225,225,225,225,2311,76,2589,2950,4974,4857, - 4995,528,5149,507,5276,5161,5341,5342,1921,5276, - 2693,5276,9037,225,1747,5276,1060,5251,2150,1112, - 9037,225,2848,443,500,5251,5276,2071,9037,225, - 2535,2508,5276,5251,2140,863,4288,3380,2015,1, - 3311,217,2140,863,5770,3380,177,5285,128,216, - 2140,863,5770,3380,3118,5276,5,217,5276,5276, - 5770,1,5254,225,5254,225,225,225,225,1, - 5254,225,5254,225,225,225,225,1,5254,225, - 5254,225,225,225,225,5456,2321,5276,1,5264, - 5276,2153,35,4781,5276,5276,576,313,504,3282, - 5276,5276,3566,9037,225,2589,5276,5276,5251,5276, - 663,9037,225,37,5164,5276,5251,5276,3296,9037, - 225,3632,5276,5276,5251,2140,863,5276,3380,5455, - 5276,5276,217,2140,863,5770,3380,5276,5276,2535, - 2508,2140,863,5770,3380,5276,5276,5267,5276,5276, - 5276,5770,1,5254,225,5254,225,225,225,225, - 524,2775,5276,2775,1841,4397,5276,729,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,9037,225,5276,5276,5276,5251, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,2140,863,5276,3380, - 5276,5276,5276,5276,5276,5276,5770 + 5524,168,5685,5524,1,1,1,1,1,1, + 1,1,1,1,1,168,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,236,135,5685, + 5378,5524,5524,397,5541,5542,2399,350,42,42, + 2980,5565,5524,862,5532,5859,1,5266,5262,2777, + 5270,1899,5524,2996,5524,5541,5542,4989,168,5524, + 1,1,1,1,1,1,1,1,1,1, + 1,168,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1813,5531,5685,5524,123,5524,5524, + 5171,5168,1813,1063,5223,3210,2996,2886,591,5524, + 9799,9169,5524,1,1,1,1,1,1,1, + 1,1,1,1,168,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,868,721,636,5524, + 1,1,1,1,1,1,1,1,1,1, + 1,5524,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5524,5524,5685,5524,1,1,1, + 1,1,1,1,1,1,1,1,5524,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 142,5524,5685,5524,1,1,1,1,1,1, + 1,1,1,1,1,1794,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5524,5524,5685, + 1,5266,5262,3134,5270,3303,3561,2996,3584,5226, + 3538,3515,2201,3633,3610,5253,5259,5232,5235,5247, + 5244,5250,5241,5238,5229,5256,5547,928,780,1101, + 5549,791,631,863,5550,5548,777,5543,5545,5546, + 5544,1253,42,42,440,42,42,5524,5565,5524, + 5387,2271,5384,341,5524,9799,9169,5524,1,1, + 1,1,1,1,1,1,1,1,1,512, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5866,5867,5685,5524,1,1,1,1,1, + 1,1,1,1,1,1,6031,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5524,1, + 5685,5524,1,1,1,1,1,1,1,1, + 1,1,1,5524,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5524,5524,5685,5524,1, + 1,1,1,1,1,1,1,1,1,1, + 3253,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5524,5524,5685,5524,1,1,1,1, + 1,1,1,1,1,1,1,3254,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5524, + 5524,5685,5524,1,1,1,1,1,1,1, + 1,1,1,1,5506,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5524,5524,5685,42, + 5171,5168,3134,1063,3303,3561,2996,3584,563,3538, + 3515,5532,3633,3610,5789,5787,5796,5795,5791,5792, + 5790,5793,5794,5797,5788,5547,928,780,1101,5549, + 791,631,863,5550,5548,777,5543,5545,5546,5544, + 1253,1,5399,5399,136,5396,1,862,324,5859, + 390,5463,2399,367,1,5266,5262,2777,5270,1899, + 3431,2996,97,1,1,449,1,44,5390,5524, + 5390,5531,42,5171,5168,3134,1063,3303,3561,2996, + 3584,563,3538,3515,5532,3633,3610,5789,5787,5796, + 5795,5791,5792,5790,5793,5794,5797,5788,5547,928, + 780,1101,5549,791,631,863,5550,5548,777,5543, + 5545,5546,5544,1253,1813,3788,367,100,42,42, + 1813,5565,5524,5460,5180,5457,5201,5524,5171,5168, + 5524,1063,1899,3431,2996,453,367,5524,3781,4362, + 4026,5524,5524,5524,5531,145,5171,5168,3134,1063, + 3303,3561,2996,3584,563,3538,3515,5524,3633,3610, + 5789,5787,5796,5795,5791,5792,5790,5793,5794,5797, + 5788,5547,928,780,1101,5549,791,631,863,5550, + 5548,777,5543,5545,5546,5544,1253,42,42,1, + 5266,5262,3134,5270,3303,3561,2996,3584,5226,3538, + 3515,5195,3633,3610,5253,5259,5232,5235,5247,5244, + 5250,5241,5238,5229,5256,5547,928,780,1101,5549, + 791,631,863,5550,5548,777,5543,5545,5546,5544, + 1253,42,42,42,5171,5168,3134,1063,3303,3561, + 2996,3584,563,3538,3515,5528,3633,3610,5789,5787, + 5796,5795,5791,5792,5790,5793,5794,5797,5788,5547, + 928,780,1101,5549,791,631,863,5550,5548,777, + 5543,5545,5546,5544,42,5171,5168,3134,1063,3303, + 3561,2996,3584,563,3538,3515,5524,3633,3610,5789, + 5787,5796,5795,5791,5792,5790,5793,5794,5797,5788, + 5547,928,780,1101,5549,791,631,863,5550,5548, + 777,5543,5545,5546,5544,1253,79,115,5524,3775, + 143,53,40,5393,5393,5542,389,5393,118,5592, + 5593,5524,292,5524,4119,3431,42,5171,5168,3134, + 1063,3303,3561,2996,3584,563,3538,3515,5527,3633, + 3610,5789,5787,5796,5795,5791,5792,5790,5793,5794, + 5797,5788,5547,928,780,1101,5549,791,631,863, + 5550,5548,777,5543,5545,5546,5544,1253,1,2122, + 5542,539,3417,5988,5982,5357,5986,452,5980,5981, + 1,6011,6012,2980,1,5266,5262,4439,5270,1899, + 38,2996,346,1950,5207,5989,317,3679,5524,5541, + 5542,117,5207,3702,5524,5524,5363,5360,3679,578, + 1809,1845,2232,5524,3702,5524,431,42,42,5524, + 5565,1878,5524,659,3881,130,3002,5991,5524,317, + 3024,5534,3190,116,577,5207,5524,5992,6013,5990, + 3656,1152,132,5198,131,309,1813,3656,1152,346, + 346,48,5369,5369,5832,346,6002,6001,6014,5983, + 5984,6007,6008,5954,5533,6005,6006,5985,5987,6009, + 6010,6015,5995,5996,5997,5993,5994,6003,6004,5999, + 5998,6000,5524,318,2666,539,2469,5988,5982,4403, + 5986,3679,5980,5981,5189,6011,6012,3702,40,5393, + 5393,2666,405,2666,1878,40,5393,5393,5366,5989, + 1,5372,1670,5375,5439,5524,180,529,2610,2582, + 5524,5416,5413,3679,1809,1845,5524,5534,5503,3702, + 3418,5524,5524,1,4792,2610,2582,2610,2582,5524, + 5524,5991,4846,3914,5524,5530,5524,5442,577,4025, + 5524,5992,6013,5990,1208,5563,108,5524,3491,4094, + 5533,5503,2216,5524,5524,5524,1,5524,5524,508, + 6002,6001,6014,5983,5984,6007,6008,5563,5481,6005, + 6006,5985,5987,6009,6010,6015,5995,5996,5997,5993, + 5994,6003,6004,5999,5998,6000,42,5171,5168,3134, + 1063,3303,3561,2996,3584,563,3538,3515,5529,3633, + 3610,5789,5787,5796,5795,5791,5792,5790,5793,5794, + 5797,5788,5547,928,780,1101,5549,791,631,863, + 5550,5548,777,5543,5545,5546,5544,5974,5531,5524, + 5925,281,2496,5524,5472,5524,4360,50,5422,5422, + 42,5171,5168,3134,1063,3303,3561,2996,3584,563, + 3538,3515,1369,3633,3610,5789,5787,5796,5795,5791, + 5792,5790,5793,5794,5797,5788,5547,928,780,1101, + 5549,791,631,863,5550,5548,777,5543,5545,5546, + 5544,1253,42,5171,5168,3883,1063,3303,3561,2996, + 3584,563,3538,3515,5419,3633,3610,5789,5787,5796, + 5795,5791,5792,5790,5793,5794,5797,5788,5547,928, + 780,1101,5549,791,631,863,5550,5548,777,5543, + 5545,5546,5544,42,5171,5168,3134,1063,3303,3561, + 2996,3584,563,3538,3515,5524,3633,3610,5789,5787, + 5796,5795,5791,5792,5790,5793,5794,5797,5788,5547, + 928,780,1101,5549,791,631,863,5550,5548,777, + 5543,5545,5546,5544,42,5171,5168,3134,1063,3303, + 3561,2996,3584,563,3538,3515,5524,3633,3610,5789, + 5787,5796,5795,5791,5792,5790,5793,5794,5797,5788, + 5547,928,780,1101,5549,791,631,863,5550,5548, + 777,5543,5545,5546,5544,5524,5171,5168,290,5565, + 353,105,374,372,1106,5524,5524,5435,5431,5524, + 5789,5787,5796,5795,5791,5792,5790,5793,5794,5797, + 5788,1,5524,5524,5524,5524,3415,3735,5524,5524, + 5524,4146,423,525,5524,3815,4362,5530,5524,5780, + 5524,5532,5783,5866,5867,5777,5784,5756,5782,5781, + 5778,5779,5524,5757,5524,5922,443,618,5923,5924, + 240,5346,5342,5563,5350,5524,1813,5047,620,1106, + 40,5393,5393,1120,1165,5333,5339,5312,5315,5327, + 5324,5330,5321,5318,5309,5336,1,5487,5487,228, + 5487,228,228,228,228,4850,525,3300,228,953, + 5529,5531,2921,104,5297,326,5524,5288,5282,5279, + 5306,5285,5276,5291,5294,5303,5300,417,5273,5524, + 5922,53,618,5923,5924,5541,5524,5563,379,2221, + 9926,228,1,5487,5487,228,5487,228,228,228, + 228,1,518,5484,5515,3734,444,503,501,5524, + 5475,2423,5524,2393,3589,5524,38,5524,1,5487, + 5487,228,5487,228,228,228,228,5524,6019,1989, + 5515,1813,5524,5524,5524,4998,9926,228,2740,2083, + 5541,5524,5524,5524,1,2910,4995,5524,2138,5484, + 5001,5524,5524,5475,2741,316,505,2423,3443,2393, + 3589,5478,9926,228,220,1,5487,5487,228,5487, + 228,228,228,228,6019,5484,2224,5518,4690,4718, + 5524,4024,5707,2423,5524,2393,3589,1936,3918,5524, + 220,1,5487,5487,228,5487,228,228,228,228, + 6019,3443,5524,5515,5478,5050,3788,5706,1,9926, + 228,5524,5524,1936,5524,2,5524,3817,5524,5524, + 3788,5524,5484,1907,5524,4426,5524,731,5524,5524, + 2423,5524,2393,3589,3520,9926,228,219,1,5487, + 5487,228,5487,228,228,228,228,6019,5484,5524, + 5515,5524,5524,5524,5524,5524,2423,5524,2393,3589, + 5524,5524,5524,220,1,5487,5487,228,5487,228, + 228,228,228,6019,40,5524,228,5524,5524,5524, + 5524,5524,9926,228,5524,5524,5524,5524,5524,5524, + 5524,5524,5524,5524,5524,5484,5524,5524,5524,5524, + 5524,5524,5524,2423,5524,2393,3589,5524,9926,228, + 220,1,5487,5487,228,5487,228,228,228,228, + 6019,5484,5524,228,5524,5524,5524,5524,5524,2423, + 5524,2393,3589,5524,5524,5524,5524,1,5487,5487, + 228,5487,228,228,228,228,6019,5524,5524,228, + 5524,5524,5524,5524,5524,9926,228,5524,5524,5524, + 5524,5524,5524,5524,5524,5524,5524,5524,5484,5524, + 5524,5524,5524,5524,5524,5524,2423,5524,2393,3589, + 5524,9926,228,5524,5524,5524,5524,5524,5524,5524, + 5524,5524,5524,6019,5484,5524,5524,5524,5524,5524, + 5524,5524,2423,5524,2393,3589,5524,5524,5524,5524, + 5524,5524,5524,5524,5524,5524,5524,5524,5524,6019 }; }; public final static char termAction[] = TermAction.termAction; @@ -1861,58 +1960,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 1013,1,387,1,62,623,724,724,724,724, - 59,623,170,724,770,170,1050,1013,1052,388, - 388,388,388,388,388,388,388,388,965,971, - 976,973,980,978,985,983,987,986,988,219, - 989,387,370,31,31,31,31,268,227,3, - 168,31,67,482,170,170,3,800,170,482, - 889,30,667,60,273,279,370,949,949,878, - 878,227,1013,388,388,388,388,388,388,388, - 388,388,388,388,388,388,388,388,388,388, - 388,388,387,387,387,387,387,387,387,387, - 387,387,387,1013,388,482,482,153,371,839, - 839,839,839,115,482,3,158,936,947,768, - 947,527,947,766,947,931,947,947,59,268, - 67,67,3,67,30,387,425,666,482,424, - 268,426,424,482,67,973,973,971,971,971, - 978,978,978,978,976,976,983,980,980,986, - 985,987,1064,988,158,282,490,436,435,450, - 59,1052,623,623,623,623,268,268,839,179, - 838,168,268,164,72,268,530,115,529,274, - 768,270,268,268,268,115,839,388,31,969, - 118,482,60,268,268,426,667,387,153,67, - 1004,482,492,494,268,667,1013,1013,1013,1013, - 623,623,371,161,164,72,530,275,530,115, - 530,270,270,268,115,268,482,969,158,666, - 268,60,425,482,440,429,543,494,115,425, - 482,482,482,482,227,227,164,163,627,268, - 72,1064,116,264,1056,72,530,530,443,268, - 270,627,625,626,268,970,970,969,1013,118, - 427,60,341,387,541,541,329,329,268,488, - 158,549,482,268,482,482,164,667,724,424, - 484,1057,421,623,715,446,268,627,388,268, - 227,388,67,268,427,341,387,387,494,268, - 667,482,492,429,341,461,425,86,425,530, - 530,421,1009,158,268,718,388,1064,337,443, - 58,268,482,67,268,540,494,341,1010,86, - 425,530,768,59,1057,421,666,388,388,59, - 540,482,540,838,724,324,324,1010,768,352, - 715,268,623,268,623,533,540,86,673,86, - 837,837,547,353,59,268,227,268,495,533, - 322,841,616,623,767,708,86,31,31,547, - 352,1064,388,1064,1010,623,623,623,353,623, - 268,581,1010,1010,616,268,768,351,482,544, - 535,629,839,616,322,672,768,884,768,59, - 838,69,623,1064,353,370,370,369,887,370, - 1010,1010,616,217,547,31,535,673,672,673, - 1010,336,1009,482,672,672,59,672,268,525, - 549,482,421,482,581,1010,623,482,547,672, - 387,727,421,1010,627,672,672,268,672,268, - 324,482,482,474,353,217,353,1010,581,1013, - 353,350,627,482,726,627,268,627,1010,837, - 768,768,922,387,351,1012,1010,482,726,1010, - 424,353,482,1012,1010,626,353,482,726,353 + 1078,7,974,7,1,490,797,797,797,797, + 65,490,515,797,567,515,1115,1078,1117,975, + 975,975,975,975,975,975,975,975,879,885, + 890,887,894,892,899,897,901,900,902,153, + 903,974,957,37,37,37,37,1014,161,9, + 512,37,312,443,515,515,9,598,515,443, + 801,36,690,67,321,328,957,862,862,1057, + 1057,161,1078,975,975,975,975,975,975,975, + 975,975,975,975,975,975,975,975,975,975, + 975,975,974,974,974,974,974,974,974,974, + 974,974,974,1078,975,443,443,241,958,637, + 637,637,637,149,443,9,247,849,860,788, + 860,644,860,785,860,844,860,860,65,1014, + 312,312,9,312,36,974,1012,689,443,1011, + 1014,1013,1011,443,312,887,887,885,885,885, + 892,892,892,892,890,890,897,894,894,900, + 899,901,1074,902,247,271,407,361,360,369, + 65,1117,490,490,490,490,1014,1014,637,525, + 636,512,1014,508,105,1014,648,149,647,323, + 788,266,1014,1014,1014,149,637,975,37,883, + 206,443,67,1014,1014,1013,690,974,241,312, + 918,443,409,411,1014,690,1078,1078,1078,1078, + 490,490,958,251,508,105,648,324,648,149, + 648,266,266,1014,149,1014,443,883,247,689, + 1014,67,1012,443,503,353,364,411,149,1012, + 443,443,443,443,161,161,508,507,641,1014, + 105,1074,151,199,1064,105,648,648,341,1014, + 266,641,639,640,1014,884,884,883,1078,206, + 204,67,331,974,362,362,253,253,1014,405, + 247,69,443,1014,443,443,508,690,797,1011, + 349,1066,1008,490,741,345,1014,641,975,1014, + 161,975,312,1014,204,331,974,974,411,1014, + 690,443,409,353,331,380,1012,120,1012,648, + 648,1008,923,247,1014,790,975,1074,261,341, + 64,1014,443,312,1014,499,411,331,924,120, + 1012,648,788,65,1066,1008,689,975,975,65, + 499,443,499,636,797,315,315,924,788,938, + 741,1014,490,1014,490,492,499,120,697,120, + 635,635,565,939,65,1014,161,1014,412,492, + 799,1019,481,490,786,733,120,37,37,565, + 938,1074,975,1074,924,490,490,490,939,490, + 1014,446,924,924,481,1014,788,937,443,365, + 494,651,637,481,799,696,788,927,788,65, + 636,102,490,930,1074,939,957,957,955,1017, + 957,924,924,481,563,565,37,494,697,696, + 697,924,260,923,443,696,696,65,696,1014, + 100,69,443,1008,443,446,924,490,443,565, + 696,974,746,1008,924,641,696,696,1014,696, + 1014,315,443,443,393,939,563,939,924,446, + 1078,939,936,641,443,744,641,1014,641,924, + 635,788,788,834,974,937,1076,924,443,744, + 924,1011,939,443,1076,924,640,939,443,744, + 939 }; }; public final static char asb[] = Asb.asb; @@ -1920,113 +2020,119 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 114,0,26,40,27,28,41,6,29,30, - 31,32,39,33,34,35,36,37,24,11, - 12,7,5,9,10,4,25,66,38,2, - 49,13,14,58,46,15,61,50,42,16, - 51,52,17,18,53,54,19,20,55,62, - 56,8,63,21,22,48,23,45,1,3, - 0,70,72,43,114,68,113,0,67,65, - 116,74,6,117,118,119,64,2,7,5, - 4,70,71,43,44,49,13,14,58,46, - 15,61,50,42,16,51,52,17,18,53, - 54,19,20,55,62,56,8,63,21,45, - 22,48,23,3,1,47,0,94,88,9, - 10,89,90,86,87,57,91,92,95,96, - 97,98,99,100,112,70,93,69,102,103, - 104,105,106,107,108,109,110,111,113,71, - 43,114,66,68,72,2,59,1,7,3, - 5,0,39,46,6,48,4,1,3,73, - 60,70,93,113,72,71,43,114,59,2, - 115,94,101,88,11,12,7,5,9,10, - 89,90,86,87,57,91,92,95,96,97, - 98,99,100,112,102,103,104,105,106,107, - 108,109,110,111,66,68,69,0,66,70, - 93,68,113,71,43,114,72,13,14,26, - 40,15,27,28,16,17,18,41,29,19, - 20,30,31,32,39,33,34,21,22,23, - 35,36,37,24,2,11,12,7,5,9, - 10,25,38,6,4,3,8,1,0,1, - 71,0,43,3,57,60,70,0,57,3, - 0,40,41,113,8,27,31,29,26,34, - 14,23,13,19,17,18,20,21,16,15, - 22,35,38,36,37,33,28,32,4,6, - 3,2,11,12,7,5,9,10,25,30, - 1,24,0,66,69,68,1,0,73,60, - 66,70,93,72,59,2,68,43,69,0, - 46,39,48,66,93,69,68,72,0,116, - 120,71,73,64,65,67,76,78,84,82, - 75,80,81,83,85,60,77,79,43,44, - 61,58,62,63,49,54,55,42,53,52, - 45,50,46,48,51,56,39,40,41,8, - 27,31,29,26,34,14,23,13,19,17, - 18,20,21,16,15,22,35,38,36,37, - 24,33,28,32,11,12,9,10,25,30, - 7,5,2,3,6,1,4,0,7,5, - 6,4,3,1,2,66,69,68,59,72, - 93,0,1,45,3,117,118,119,0,13, - 14,15,16,17,18,19,20,21,22,23, - 49,46,50,42,51,52,53,54,55,56, - 45,48,43,6,1,59,2,7,5,4, - 3,72,0,60,70,73,0,4,6,2, - 59,5,7,93,49,13,14,46,15,61, - 50,42,16,51,52,17,18,53,54,19, - 20,55,62,56,8,63,21,45,22,48, - 23,1,3,72,58,0,47,1,3,60, - 70,0,46,48,73,2,60,70,43,39, - 66,69,93,72,68,0,116,0,49,13, - 14,58,46,15,61,50,42,16,51,52, - 17,18,53,54,19,20,55,62,56,8, - 63,21,45,22,48,23,1,3,93,0, - 13,14,26,40,15,27,28,16,17,18, - 41,29,19,20,30,31,32,39,33,34, - 8,21,22,23,35,36,37,24,11,12, - 9,10,25,38,44,7,5,43,4,6, - 1,3,2,0,69,68,71,0,67,49, - 13,14,58,46,15,61,50,74,42,16, - 51,52,17,18,53,65,54,19,20,55, - 62,56,8,63,21,64,45,22,48,23, - 2,7,3,43,60,5,6,1,4,47, - 0,71,14,58,46,15,61,50,16,51, - 52,17,18,53,54,19,20,55,62,56, - 63,21,45,22,48,23,13,49,2,7, - 5,43,64,67,74,42,47,6,1,4, - 3,8,65,0,60,68,0,70,59,2, - 69,68,43,57,0,71,40,41,39,11, - 12,7,5,9,10,4,25,30,2,6, - 35,38,36,37,24,33,28,32,14,23, - 13,19,17,18,20,21,16,15,22,8, - 27,31,29,26,34,3,1,60,0,49, - 13,14,58,46,15,61,50,42,16,51, - 52,17,18,53,54,19,20,55,62,56, - 8,63,21,45,22,48,23,1,3,41, - 40,9,10,5,89,90,97,7,98,4, - 25,57,105,106,102,103,104,110,109,111, - 87,86,107,108,95,96,91,92,99,100, - 11,12,88,101,2,59,69,68,66,0, - 14,58,46,15,61,50,16,51,52,17, - 18,53,54,19,20,55,62,56,8,63, - 21,45,22,48,23,13,49,2,7,5, - 43,64,65,67,74,42,57,6,3,47, - 4,1,0,60,69,0,75,0,40,41, - 11,12,9,10,25,30,35,38,36,37, - 24,33,28,32,14,23,13,19,17,18, - 20,21,16,15,22,8,27,31,29,26, - 34,7,5,2,59,4,6,1,3,0, - 8,61,58,62,63,14,23,13,19,17, - 18,20,21,16,15,22,73,60,4,3, - 1,48,45,56,55,54,6,53,52,51, - 42,50,46,49,115,101,11,12,59,2, - 94,88,5,89,90,9,10,87,86,57, - 91,92,95,96,7,97,98,99,66,93, - 72,114,69,102,103,104,105,106,107,108, - 109,110,111,70,113,71,100,112,68,43, - 0,72,13,14,26,15,27,28,16,17, - 18,29,19,20,30,31,32,39,33,34, - 8,21,22,23,35,36,37,24,2,11, - 12,7,5,9,10,25,3,38,44,4, - 6,1,41,40,0,43,4,6,2,1, - 3,5,7,70,0 + 12,73,115,75,45,70,116,0,28,42, + 29,30,43,7,31,32,33,34,41,35, + 36,37,38,39,26,13,14,8,6,10, + 11,5,27,69,40,3,50,15,16,60, + 48,17,62,51,44,18,52,53,19,20, + 54,55,21,22,56,63,58,9,64,23, + 24,49,25,47,1,2,4,0,50,15, + 16,48,17,62,51,44,18,52,53,19, + 20,54,55,21,22,56,63,58,9,64, + 23,47,24,49,25,1,2,4,95,60, + 0,68,67,118,82,7,119,120,121,65, + 12,3,8,6,5,73,72,45,46,50, + 15,16,60,48,17,62,51,44,18,52, + 53,19,20,54,55,21,22,56,63,58, + 9,64,23,47,24,49,25,4,1,2, + 57,0,69,73,95,70,115,72,45,116, + 12,75,15,16,28,42,17,29,30,18, + 19,20,43,31,21,22,32,33,34,41, + 35,36,23,24,25,37,38,39,26,3, + 13,14,8,6,10,11,27,40,7,1, + 2,4,9,5,0,96,90,10,11,91, + 92,88,89,59,93,94,97,98,99,100, + 101,102,114,73,95,71,104,105,106,107, + 108,109,110,111,112,113,115,72,45,116, + 12,69,70,75,3,66,1,2,8,4, + 6,0,74,61,69,73,95,75,66,3, + 12,70,45,71,0,1,2,12,72,0, + 42,43,9,29,33,31,28,36,16,25, + 15,21,19,20,22,23,18,17,24,37, + 40,38,39,26,35,30,34,5,7,4, + 3,13,14,8,6,10,11,27,32,1, + 2,115,12,0,69,71,70,1,2,0, + 12,45,4,59,61,73,0,59,4,0, + 48,41,49,12,69,95,71,70,75,0, + 1,2,47,4,119,120,121,0,61,73, + 74,0,8,6,7,5,4,1,2,3, + 66,69,71,95,75,12,70,0,15,16, + 17,18,19,20,21,22,23,24,25,50, + 48,51,44,52,53,54,55,56,58,47, + 49,45,12,75,7,1,2,66,3,8, + 6,5,4,0,5,7,3,66,6,8, + 95,50,15,16,60,48,17,62,51,44, + 18,52,53,19,20,54,55,21,22,56, + 63,58,9,64,23,47,24,49,25,1, + 2,4,75,12,0,15,16,28,42,17, + 29,30,18,19,20,43,31,21,22,32, + 33,34,41,35,36,9,23,24,25,37, + 38,39,26,13,14,10,11,27,40,46, + 12,8,6,45,5,7,1,2,4,3, + 0,48,49,74,3,61,73,45,41,69, + 71,70,12,75,95,0,41,48,7,49, + 5,1,2,4,74,12,61,73,95,115, + 75,72,45,116,66,3,117,96,103,90, + 13,14,8,6,10,11,91,92,88,89, + 59,93,94,97,98,99,100,101,102,114, + 104,105,106,107,108,109,110,111,112,113, + 69,70,71,0,118,0,50,15,16,60, + 48,17,62,51,44,18,52,53,19,20, + 54,55,21,22,56,63,58,9,64,23, + 47,24,49,25,1,2,4,43,42,10, + 11,6,91,92,99,8,100,5,27,59, + 107,108,104,105,106,112,111,113,89,88, + 109,110,97,98,93,94,101,102,13,14, + 90,103,3,66,71,70,69,0,71,70, + 72,12,0,57,1,2,4,61,73,0, + 68,50,15,16,60,48,17,62,51,82, + 44,18,52,53,19,20,54,67,55,21, + 22,56,63,58,9,64,23,65,47,24, + 49,25,12,3,8,4,45,61,6,7, + 1,2,5,57,0,72,60,48,17,62, + 51,18,52,53,19,20,54,55,21,22, + 56,63,58,64,23,47,24,49,25,16, + 15,50,12,3,8,6,45,65,68,82, + 44,57,7,1,2,5,4,9,67,0, + 61,70,0,12,72,42,43,41,13,14, + 8,6,10,11,5,27,32,3,7,37, + 40,38,39,26,35,30,34,16,25,15, + 21,19,20,22,23,18,17,24,9,29, + 33,31,28,36,4,1,2,61,0,73, + 12,66,3,71,70,45,59,0,26,0, + 42,43,13,14,10,11,27,32,37,40, + 38,39,26,35,30,34,16,25,15,21, + 19,20,22,23,18,17,24,9,29,33, + 31,28,36,8,6,3,66,5,7,1, + 2,4,0,9,62,60,63,64,16,25, + 15,21,19,20,22,23,18,17,24,74, + 61,4,5,2,1,49,47,58,56,55, + 7,54,53,52,44,51,48,50,117,103, + 13,14,66,3,96,90,6,91,92,10, + 11,89,88,59,93,94,97,98,8,99, + 100,101,69,95,75,116,71,104,105,106, + 107,108,109,110,111,112,113,73,115,72, + 102,114,70,45,12,0,61,71,0,82, + 119,120,121,57,73,118,122,72,74,65, + 67,68,77,79,86,84,76,81,83,85, + 87,61,78,80,12,45,46,62,60,63, + 64,50,55,56,44,54,53,47,51,48, + 49,52,58,41,42,43,9,29,33,31, + 28,36,16,25,15,21,19,20,22,23, + 18,17,24,37,40,38,39,26,35,30, + 34,13,14,10,11,27,32,8,6,3, + 4,7,5,1,2,0,76,0,60,48, + 17,62,51,18,52,53,19,20,54,55, + 21,22,56,63,58,9,64,23,47,24, + 49,25,16,15,50,12,3,8,6,45, + 65,67,68,82,44,59,7,4,57,5, + 1,2,0,45,12,5,7,3,1,2, + 4,6,8,73,0,12,75,15,16,28, + 17,29,30,18,19,20,31,21,22,32, + 33,34,41,35,36,9,23,24,25,37, + 38,39,26,3,13,14,8,6,10,11, + 27,4,40,46,5,7,1,2,43,42, + 0 }; }; public final static byte asr[] = Asr.asr; @@ -2034,58 +2140,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 138,11,30,11,11,11,11,11,11,11, - 158,11,11,11,184,11,21,168,135,30, - 30,19,30,30,30,30,30,30,11,11, - 11,11,11,11,11,11,11,11,11,30, - 11,30,188,206,206,206,206,135,141,112, - 56,4,80,194,11,11,112,186,11,194, - 30,52,126,11,11,11,188,11,11,12, - 12,141,168,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30, - 30,30,30,168,30,194,194,120,1,11, - 11,11,11,84,194,28,157,202,203,11, - 203,133,203,158,203,196,11,11,158,135, - 80,80,28,80,206,59,176,35,194,175, - 10,135,175,194,80,11,11,11,11,11, + 156,11,26,11,11,11,11,11,11,11, + 136,11,11,11,147,11,173,95,168,26, + 26,171,26,26,26,26,26,26,11,11, + 11,11,11,11,11,11,11,11,11,26, + 11,26,159,216,216,216,216,168,163,108, + 33,4,70,187,11,11,108,149,11,187, + 26,57,90,11,11,11,159,11,11,14, + 14,163,95,26,26,26,26,26,26,26, + 26,26,26,26,26,26,26,26,26,26, + 26,26,26,26,26,26,26,26,26,26, + 26,26,26,95,26,187,187,123,1,11, + 11,11,11,48,187,24,135,200,201,11, + 201,166,201,9,201,194,11,11,136,168, + 70,70,24,70,216,74,182,138,187,181, + 183,168,181,187,70,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,157,76,120,72,72,11, - 158,135,11,11,11,11,25,10,11,11, - 11,150,135,112,112,22,112,223,112,11, - 11,112,223,135,10,11,11,30,206,112, - 49,194,11,10,135,10,126,30,148,80, - 11,194,226,112,135,126,168,168,168,168, - 11,11,28,11,54,216,112,112,17,125, - 17,112,104,10,125,25,194,74,150,35, - 10,11,25,194,11,106,11,228,124,25, - 194,194,194,194,141,141,112,54,43,135, - 146,11,11,91,209,216,17,17,116,25, - 104,43,11,11,25,97,97,11,168,150, - 11,11,112,30,11,11,72,72,135,106, - 157,228,194,25,194,194,54,126,11,158, - 112,153,108,11,11,221,223,43,30,104, - 141,30,80,10,11,54,30,30,112,10, - 126,194,226,171,112,11,176,112,223,112, - 47,173,146,157,135,11,30,11,114,68, - 70,10,194,80,10,112,228,54,146,228, - 176,47,62,93,108,173,126,30,30,158, - 64,194,112,11,11,87,87,146,62,99, - 11,223,11,223,11,112,64,228,179,112, - 11,11,112,160,93,10,141,10,192,54, - 11,179,210,11,10,91,228,206,206,66, - 165,11,30,11,146,11,11,11,166,11, - 11,144,146,146,112,11,82,11,194,194, - 112,112,11,153,11,112,11,11,11,158, - 11,45,11,11,166,205,205,231,11,205, - 146,146,108,11,112,206,64,179,112,179, - 146,89,11,194,128,112,158,112,223,11, - 206,194,108,194,233,146,11,194,66,128, - 59,30,108,146,43,179,128,223,128,102, - 87,194,194,112,166,11,166,146,233,168, - 166,45,43,194,112,43,102,43,146,11, - 82,82,106,30,11,233,146,194,39,146, - 175,166,194,233,146,43,166,194,39,166 + 11,11,11,11,135,66,123,64,64,11, + 136,168,11,11,11,11,19,183,11,11, + 11,153,168,108,108,174,108,226,108,11, + 11,108,226,168,10,11,11,26,216,108, + 59,187,11,10,168,10,90,26,151,70, + 11,187,110,108,168,90,95,95,95,95, + 11,11,24,11,36,219,108,108,51,89, + 51,108,115,183,89,19,187,55,153,138, + 10,11,19,187,11,102,11,112,88,19, + 187,187,187,187,163,163,108,36,44,168, + 121,11,11,53,208,219,51,51,84,19, + 115,44,11,11,19,22,22,11,95,153, + 11,11,108,26,11,11,64,64,168,102, + 135,112,187,19,187,187,36,90,11,136, + 108,131,104,11,11,224,226,44,26,115, + 163,26,70,10,11,36,26,26,108,10, + 90,187,110,177,108,11,182,108,226,108, + 31,179,121,135,168,11,26,11,62,127, + 129,183,187,70,10,108,112,36,121,112, + 182,31,117,80,104,179,90,26,26,136, + 38,187,108,11,11,72,72,121,117,77, + 11,226,11,226,11,108,38,112,203,108, + 11,11,108,189,80,183,163,183,185,36, + 11,203,209,11,10,53,112,216,216,98, + 92,11,26,11,121,11,11,11,93,11, + 10,119,121,121,108,10,12,11,187,187, + 108,108,11,131,11,108,11,11,11,136, + 11,46,11,11,11,93,215,215,229,11, + 215,121,121,104,11,108,216,38,203,108, + 203,121,100,11,187,142,108,136,108,226, + 11,216,187,104,187,231,121,11,187,98, + 142,74,26,104,121,44,203,142,226,142, + 10,72,187,187,108,93,11,93,121,231, + 95,93,46,44,187,108,44,10,44,121, + 11,12,12,102,26,11,231,121,187,40, + 121,181,93,187,231,121,44,93,187,40, + 93 }; }; public final static char nasb[] = Nasb.nasb; @@ -2093,30 +2200,30 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 2,12,7,5,150,148,122,147,146,1, - 0,5,1,7,139,0,114,0,5,12, - 7,1,2,0,3,2,0,49,4,5, - 7,1,12,0,66,138,137,0,12,1, - 7,5,65,0,116,0,156,0,4,177, - 0,173,0,61,0,4,189,0,4,28, - 0,157,0,126,0,158,0,5,163,131, - 0,69,0,178,0,12,1,7,5,80, - 0,56,0,136,66,0,113,0,180,0, - 153,0,167,5,166,0,140,0,4,65, - 0,43,0,124,0,101,100,64,5,1, - 7,4,0,186,0,5,131,187,0,100, - 101,4,0,136,1,66,0,108,4,46, - 70,0,2,5,1,47,0,4,172,0, - 4,103,0,4,38,39,0,101,100,5, - 55,0,1,64,7,4,96,5,0,4, - 46,38,179,0,65,46,71,4,38,0, - 101,100,64,55,5,7,1,0,4,46, - 70,81,0,4,49,169,0,4,49,38, - 0,49,4,34,0,1,5,122,118,119, - 120,12,93,0,117,4,49,0,39,5, - 1,7,4,155,0,4,46,70,67,5, - 130,0,1,62,0,5,96,23,4,0, - 46,50,4,106,0 + 3,13,8,151,149,123,148,147,6,1, + 0,57,0,6,2,8,140,0,4,3, + 0,141,0,50,5,6,8,2,13,0, + 157,0,5,190,0,62,0,127,0,13, + 2,8,6,66,0,117,0,137,67,0, + 115,0,154,0,179,0,174,0,5,178, + 0,187,0,70,0,13,2,8,6,81, + 0,114,0,5,29,0,5,66,0,168, + 6,167,0,6,132,188,0,137,2,67, + 0,66,47,72,5,39,0,159,0,181, + 0,102,101,65,6,2,8,5,0,6, + 97,24,5,0,125,0,158,0,5,39, + 40,0,101,102,5,0,6,164,132,0, + 2,65,8,5,97,6,0,67,139,138, + 0,109,5,47,71,0,5,50,170,0, + 102,101,6,56,0,5,173,0,5,50, + 39,0,5,104,0,3,6,1,48,0, + 6,13,8,2,3,0,102,101,65,56, + 6,8,2,0,50,5,35,0,5,47, + 39,180,0,1,6,123,119,120,121,13, + 94,0,5,47,71,82,0,40,6,2, + 8,5,156,0,118,5,50,0,5,47, + 71,68,6,131,0,1,63,0,47,51, + 5,107,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2124,19 +2231,19 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, - 115,2,32,14,11,81,10,102,12,13, - 8,9,50,54,62,70,76,77,88,89, - 104,107,109,114,15,57,63,69,86,90, - 92,96,99,101,111,112,113,46,97,60, - 80,68,122,123,106,56,95,108,49,66, - 72,75,78,85,91,100,20,55,1,3, - 65,93,103,105,79,21,48,45,34,31, - 121,120,98,67,110,51,52,58,59,61, - 71,73,74,87,94,18,19,7,16,17, - 22,23,33,5,24,25,26,27,28,29, - 6,35,36,37,38,39,40,41,42,43, - 44,30,119,124,4,53,82,83,84,64, - 116,117,118 + 115,116,2,32,14,11,81,10,102,12, + 13,117,8,9,50,54,62,70,76,77, + 88,89,104,107,109,114,15,57,63,69, + 86,90,92,96,99,101,111,112,113,46, + 97,60,80,68,122,123,106,56,108,49, + 66,72,75,78,85,91,95,100,20,55, + 3,65,93,103,105,1,79,48,21,45, + 34,121,31,98,120,110,51,52,58,59, + 61,67,71,73,74,87,94,18,19,7, + 16,17,22,23,33,5,24,25,26,27, + 28,29,6,35,36,37,38,39,40,41, + 42,43,44,30,119,124,4,53,82,83, + 84,64,118 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -2144,27 +2251,26 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 135,137,238,0,0,136,234,134,0,133, - 0,145,0,132,0,0,144,149,0,0, - 150,159,180,160,161,162,163,152,164,165, - 138,166,167,127,168,169,0,131,129,170, - 0,197,143,0,140,0,139,0,153,177, - 0,0,0,0,156,173,0,204,0,147, - 187,0,201,205,128,0,178,0,206,0, - 172,0,0,0,0,0,0,0,176,126, - 130,148,0,0,0,0,0,0,0,0, - 0,0,186,0,0,202,212,158,208,209, - 210,0,0,0,0,0,207,179,0,0, - 0,211,0,0,0,241,175,189,190,191, - 192,193,195,196,199,0,214,217,219,220, - 0,237,0,240,0,0,141,142,146,0, - 155,0,171,0,181,182,183,184,185,188, - 0,194,0,198,203,0,215,216,0,221, - 224,226,228,0,231,232,233,0,235,236, - 239,125,0,151,0,0,154,157,174,200, - 213,218,0,222,223,225,227,229,230,242, - 243,0,0,0,0,0,0,0,0,0, - 0,0 + 131,136,138,239,0,0,137,235,135,0, + 134,0,146,0,133,0,0,145,150,0, + 0,151,160,181,161,162,163,164,153,165, + 166,139,167,168,127,169,170,0,132,129, + 171,0,198,144,0,141,0,140,0,154, + 178,0,0,0,0,157,174,0,205,0, + 148,188,0,202,206,128,0,179,0,207, + 0,173,0,0,0,0,0,0,0,177, + 126,130,149,0,0,0,0,0,0,0, + 0,0,0,187,0,0,203,213,159,209, + 210,211,0,0,0,0,0,208,180,0, + 0,0,212,0,0,0,242,176,190,191, + 192,193,194,196,197,200,0,215,218,220, + 221,0,238,0,241,0,0,142,143,147, + 0,156,0,172,0,182,183,184,185,186, + 189,0,195,0,199,204,0,216,217,0, + 222,225,227,229,0,232,233,234,0,236, + 237,240,125,0,152,0,0,155,158,175, + 201,214,219,0,223,224,226,228,230,231, + 243,244,0,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2210,18 +2316,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 67,17,17,75,17,17,17,17,75,163, - 85,48,92,91,120,68,53,75,74,19, - 67,17,75,2,6,160,118,67,90,120, - 119,121,54,48,133,139,75,17,17,133, - 102,57,135,78,166,160,128,119,119,121, - 50,56,178,18,17,17,17,17,17,11, - 116,160,128,75,74,74,37,139,74,19, - 17,17,17,17,102,75,167,163,180,100, - 107,59,69,58,155,79,121,76,72,142, - 178,176,16,160,121,117,139,129,129,55, - 139,75,139,67,160,73,137,47,137,47, - 166,117,118,67,67,57 + 68,18,18,76,18,18,18,18,76,164, + 86,49,93,92,121,69,54,76,75,20, + 68,18,76,3,7,161,119,68,91,121, + 120,122,55,49,134,140,76,18,18,134, + 103,58,136,79,167,161,129,120,120,122, + 51,57,179,19,18,18,18,18,18,12, + 117,161,129,76,75,75,38,140,75,20, + 18,18,18,18,103,76,168,164,181,101, + 108,60,70,59,156,80,122,77,73,143, + 179,177,17,161,122,118,140,130,130,56, + 140,76,140,68,161,74,138,48,138,48, + 167,118,119,68,68,58 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2229,18 +2335,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 116,72,72,72,72,72,72,72,72,1, - 71,43,71,71,71,66,1,72,120,72, - 60,2,43,66,66,43,71,60,71,71, - 1,1,1,1,66,3,43,1,1,66, - 72,72,72,116,72,43,71,1,1,1, - 43,71,113,72,72,72,72,72,113,1, - 72,1,68,72,72,72,70,3,72,2, - 66,66,66,66,72,43,1,1,72,72, - 2,1,113,72,1,1,1,43,70,72, - 113,72,72,1,47,69,4,1,1,5, - 1,75,47,73,43,43,3,3,3,3, - 2,1,60,1,1,2 + 118,75,75,75,75,75,75,75,75,1, + 72,45,72,72,72,69,1,75,122,75, + 61,3,45,69,69,45,72,61,72,72, + 1,1,1,1,69,4,45,1,1,69, + 75,75,75,118,75,45,72,1,1,1, + 45,72,115,75,75,75,75,75,115,1, + 75,1,70,75,75,75,73,4,75,3, + 69,69,69,69,75,45,1,1,75,75, + 3,1,115,75,1,1,1,45,73,75, + 115,75,75,1,57,71,5,1,1,6, + 1,76,57,74,45,45,4,4,4,4, + 3,1,61,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2267,70 +2373,70 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 314,2,39,0,127,0,313,2,116,0, - 127,173,0,127,179,73,0,216,0,291, - 127,57,126,0,21,0,293,127,57,47, - 0,21,55,0,34,132,0,21,55,0, - 0,293,127,57,47,193,0,21,130,0, - 291,127,57,130,0,185,128,0,138,0, - 226,2,290,0,290,0,2,0,127,0, - 185,128,254,253,254,0,131,189,170,128, - 0,129,0,189,170,128,0,134,129,0, - 169,0,307,127,169,0,127,169,0,222, - 129,0,170,245,0,137,0,0,0,135, - 0,0,0,306,127,60,252,0,128,0, - 252,0,3,0,0,128,0,305,127,60, - 0,45,128,0,151,2,0,127,280,279, - 127,73,278,169,0,279,127,73,278,169, - 0,215,0,216,0,278,169,0,98,0, - 0,215,0,216,0,203,98,0,0,215, - 0,216,0,279,127,278,169,0,215,0, - 203,0,0,215,0,233,127,2,0,127, - 0,0,0,0,0,233,127,2,223,0, - 230,2,0,219,127,0,208,0,148,0, - 170,128,0,11,0,0,0,221,59,0, - 126,0,233,127,2,181,0,181,0,2, - 0,0,127,0,0,0,0,0,202,2, - 0,201,0,232,127,60,24,42,0,185, - 128,65,64,0,143,129,0,131,185,128, - 276,64,0,185,128,276,64,0,185,128, - 69,1,65,0,232,127,60,65,0,232, - 127,60,165,65,0,232,127,60,124,65, - 0,274,127,60,1,61,0,274,127,60, - 61,0,185,128,61,0,135,0,189,185, - 128,245,0,137,0,185,128,245,0,189, - 170,128,8,0,170,128,8,0,95,137, - 0,267,127,169,0,161,84,0,229,162, - 229,173,2,81,0,127,172,0,229,173, - 2,81,0,129,0,127,172,0,229,162, - 229,162,229,2,81,0,229,162,229,2, - 81,0,229,2,81,0,129,0,129,0, - 127,172,0,161,2,75,194,80,0,127, - 129,0,194,80,0,110,2,131,127,129, - 0,240,2,75,0,202,172,0,34,170, - 0,172,0,176,34,170,0,240,2,85, - 0,194,157,240,2,83,0,64,172,0, - 240,2,83,0,127,172,64,172,0,302, - 127,60,0,161,0,221,77,0,31,0, - 161,112,159,0,31,170,0,226,2,0, - 221,59,301,0,161,59,0,183,2,296, - 41,128,0,127,0,0,296,41,128,0, - 2,147,127,0,0,183,2,30,0,14, - 148,0,125,47,170,128,0,32,14,148, - 0,95,137,32,14,148,0,205,185,128, - 0,148,32,14,148,0,183,2,34,0, - 161,2,34,0,161,2,66,183,57,26, - 0,183,57,26,0,21,2,131,127,0, - 161,2,66,183,57,29,0,183,57,29, - 0,161,2,66,183,57,31,0,183,57, - 31,0,161,2,66,183,57,27,0,183, - 57,27,0,226,2,125,189,170,128,8, - 0,125,189,170,128,8,0,137,2,0, - 127,0,226,2,124,259,170,128,8,0, - 259,170,128,8,0,135,2,0,127,0, - 226,2,135,0,226,2,140,0,161,59, - 140,0,261,0,32,0,32,141,0,168, - 0,134,0,161,2,0 + 315,3,41,0,127,0,314,3,118,0, + 127,174,0,128,180,74,0,217,0,292, + 128,59,127,0,21,0,294,128,59,57, + 0,21,55,0,34,133,0,21,55,0, + 0,294,128,59,57,194,0,21,130,0, + 292,128,59,131,0,186,129,0,139,0, + 227,3,291,0,291,0,2,0,127,0, + 186,129,255,254,255,0,132,190,171,129, + 0,129,0,190,171,129,0,135,129,0, + 170,0,308,128,170,0,128,170,0,223, + 129,0,171,246,0,138,0,0,0,136, + 0,0,0,307,128,61,253,0,128,0, + 253,0,3,0,0,128,0,306,128,61, + 0,45,128,0,152,3,0,128,281,280, + 128,74,279,170,0,280,128,74,279,170, + 0,216,0,217,0,279,170,0,98,0, + 0,216,0,217,0,204,98,0,0,216, + 0,217,0,280,128,279,170,0,216,0, + 204,0,0,216,0,234,128,3,0,127, + 0,0,0,0,0,234,128,3,224,0, + 231,3,0,220,128,0,209,0,149,0, + 171,129,0,11,0,0,0,222,66,0, + 126,0,234,128,3,182,0,182,0,2, + 0,0,127,0,0,0,0,0,203,3, + 0,202,0,233,128,61,26,44,0,186, + 129,67,65,0,144,129,0,132,186,129, + 277,65,0,186,129,277,65,0,186,129, + 71,124,67,0,233,128,61,67,0,233, + 128,61,166,67,0,233,128,61,125,67, + 0,275,128,61,124,62,0,275,128,61, + 62,0,186,129,62,0,136,0,190,186, + 129,246,0,138,0,186,129,246,0,190, + 171,129,9,0,171,129,9,0,95,138, + 0,268,128,170,0,162,86,0,230,163, + 230,174,3,83,0,127,173,0,230,174, + 3,83,0,129,0,127,173,0,230,163, + 230,163,230,3,83,0,230,163,230,3, + 83,0,230,3,83,0,129,0,129,0, + 127,173,0,162,3,76,195,81,0,127, + 129,0,195,81,0,110,2,132,127,129, + 0,241,3,76,0,203,173,0,34,171, + 0,173,0,177,34,171,0,241,3,87, + 0,195,158,241,3,85,0,64,173,0, + 241,3,85,0,127,173,64,173,0,303, + 128,61,0,162,0,222,78,0,31,0, + 162,114,160,0,31,171,0,227,3,0, + 222,66,302,0,162,66,0,184,3,297, + 43,129,0,127,0,0,297,43,129,0, + 2,148,127,0,0,184,3,32,0,14, + 149,0,126,57,171,129,0,32,14,149, + 0,95,138,32,14,149,0,206,186,129, + 0,149,32,14,149,0,184,3,36,0, + 162,3,36,0,162,3,69,184,59,28, + 0,184,59,28,0,21,2,132,127,0, + 162,3,69,184,59,31,0,184,59,31, + 0,162,3,69,184,59,33,0,184,59, + 33,0,162,3,69,184,59,29,0,184, + 59,29,0,227,3,126,190,171,129,9, + 0,126,190,171,129,9,0,138,2,0, + 127,0,227,3,125,260,171,129,9,0, + 260,171,129,9,0,136,2,0,127,0, + 227,3,136,0,227,3,141,0,162,66, + 141,0,262,0,32,0,32,142,0,169, + 0,135,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2338,38 +2444,38 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 1925,0,4845,4814,4386,0,2442,1365,928,1234, - 0,3967,3926,3885,3844,3803,3762,4761,3566,3525, - 3150,3109,2937,2872,3703,2807,2742,3632,3606,3466, - 3407,0,2310,2309,1154,0,2153,2150,0,3967, - 3926,3885,2046,1819,3844,3803,3762,3566,1808,3525, - 3150,3109,2005,1047,0,3531,3303,2839,0,2714, - 2298,0,1276,2654,0,3414,4479,0,3414,4236, - 3057,3385,4479,2992,4397,4462,4271,3235,4373,4438, - 3072,2699,2616,0,1694,0,2937,2872,3703,2807, - 2742,3632,3606,3466,3407,2881,4500,0,2881,4500, - 2937,2872,3703,2807,2742,3632,3606,3466,3407,3967, - 3926,3885,3844,3803,3762,3566,3525,3150,3109,0, - 783,722,0,3235,4236,3777,3057,3385,4754,3072, - 3706,3031,2824,4724,3042,718,3153,3032,0,2199, - 2132,1449,1415,3385,3042,2992,2699,2616,2845,2682, - 0,663,576,0,970,0,4222,533,2301,0, - 4701,4695,4674,4668,4647,4620,4611,4584,4749,3942, - 3860,3778,4563,4557,3543,4530,4509,3479,2771,3275, - 2863,0,4701,4695,3402,2425,4674,4668,4766,2063, - 4647,4620,4426,4305,4611,2057,4584,2053,1973,4749, - 1963,1959,3350,1056,3942,3013,3860,3174,2665,3778, - 4563,4557,875,3543,656,4530,4509,1969,3479,4222, - 2771,2301,3275,2863,1828,865,616,1104,729,2992, - 4397,4462,4271,3235,3414,4236,4373,3057,3385,4438, - 3072,2699,4479,2616,806,790,663,576,4249,2165, - 2203,2270,2237,2480,2452,2328,2719,2628,2589,2562, - 2535,2508,3356,3327,3252,2358,590,4200,4178,4156, - 4134,4112,4090,4068,4046,3727,629,2397,4352,1841, - 2109,2071,2015,1977,1112,1060,1921,1883,1013,821, - 1785,1747,745,684,533,1705,1663,1621,1579,1537, - 1495,1453,1411,1369,1327,1285,1242,1200,966,924, - 882,1156,0 + 2671,0,5001,4998,4146,0,3066,3009,952,2634, + 0,4345,4304,4263,4222,4181,4140,4995,3918,3877, + 2433,3435,3192,3127,4081,3062,2986,4024,3998,3807, + 3781,0,1897,1252,866,0,2224,2221,0,4345, + 4304,4263,3444,2558,4222,4181,4140,3918,558,3877, + 2433,3435,3129,2834,0,4994,4362,4715,0,1994, + 677,0,2921,2264,0,4601,4004,0,4601,4535, + 4514,3402,4004,2858,4426,4469,3976,2967,4403,4439, + 2939,2777,2694,0,1109,0,3192,3127,4081,3062, + 2986,4024,3998,3807,3781,4642,4615,0,4642,4615, + 3192,3127,4081,3062,2986,4024,3998,3807,3781,4345, + 4304,4263,4222,4181,4140,3918,3877,2433,3435,0, + 3002,2981,0,2967,4535,3094,4514,3402,2931,2939, + 2073,3745,3424,2742,3005,2743,1979,1842,0,1560, + 1517,1509,1474,3402,3005,2858,2777,2694,2980,2914, + 0,659,578,0,1152,0,3725,534,2372,0, + 4890,4869,4836,4815,4782,4761,4726,4704,4923,4281, + 4199,3795,4653,4631,3451,4582,3746,3223,3156,3425, + 3248,0,4890,4869,2439,2130,4836,4815,4989,2036, + 4782,4761,4980,4973,4726,2767,4704,2734,2447,4923, + 2216,2122,4956,2028,4281,4940,4199,4905,4555,3795, + 4653,4631,1072,3451,672,4582,3746,1899,3223,3725, + 3156,2372,3425,3248,1008,996,793,1063,731,2858, + 4426,4469,3976,2967,4601,4535,4403,4514,3402,4439, + 2939,2777,4004,2694,868,804,659,578,3752,2232, + 2271,2340,2306,2553,2524,2399,2803,2707,2666,2638, + 2610,2582,3378,3354,3330,2886,591,3702,3679,3656, + 3633,3610,3584,3561,3538,3515,3303,928,631,1907, + 2177,2138,2083,2044,1165,1120,1989,1950,1077,823, + 1854,1813,748,686,534,1770,1727,1684,1641,1598, + 1555,1512,1469,1426,1383,1340,1297,1253,1020,953, + 885,1208,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2377,58 +2483,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,295,127,44,266,34,26,29,31,27, - 8,135,124,126,6,130,3,2,128,30, - 25,4,10,9,5,7,12,11,140,145, - 148,147,150,149,153,152,156,155,158,39, - 159,68,2,57,57,57,57,128,2,57, - 172,127,59,2,40,41,57,6,124,161, - 40,41,170,168,1,124,2,125,124,101, - 115,2,59,88,94,10,9,90,89,5, - 92,91,66,57,86,87,7,96,95,98, - 97,99,111,110,109,108,107,106,105,104, - 103,102,69,112,100,183,161,172,127,183, - 183,183,183,170,226,127,127,268,269,252, - 270,245,271,61,272,273,1,124,8,128, - 59,59,127,59,296,2,189,3,183,47, - 4,128,47,226,161,147,147,145,145,145, - 149,149,149,149,148,148,152,150,150,155, - 153,156,161,158,127,59,2,224,223,135, - 8,128,66,66,66,66,189,259,291,133, - 294,219,128,5,60,170,236,128,125,124, - 1,60,128,128,185,170,291,203,2,297, - 172,151,261,189,128,185,170,70,219,221, - 159,230,127,2,128,170,2,2,2,2, - 125,124,68,170,127,127,125,124,127,185, - 127,60,127,185,170,47,183,127,127,3, - 4,205,47,233,234,146,235,127,170,47, - 161,161,161,161,2,2,5,184,306,128, - 190,253,193,64,169,308,127,127,70,189, - 127,274,247,275,189,157,298,301,59,178, - 3,125,157,69,230,202,187,181,128,2, - 127,68,233,189,226,226,127,170,47,276, - 278,127,2,181,310,254,128,274,69,68, - 2,59,161,4,3,127,69,69,2,185, - 170,202,127,219,157,125,189,57,128,73, - 127,219,307,127,128,124,70,285,202,68, - 253,185,226,221,4,227,127,127,131,127, - 185,127,279,70,68,219,170,70,69,254, - 127,233,227,293,47,8,58,131,279,60, - 289,128,290,128,39,157,127,68,66,57, - 236,236,280,127,68,185,2,185,2,127, - 42,47,169,67,65,64,127,69,69,127, - 302,79,77,1,161,85,83,81,80,75, - 82,84,78,76,169,65,73,44,226,314, - 227,24,57,127,2,60,165,1,124,65, - 293,281,116,221,70,2,2,2,194,2, - 1,161,127,1,179,68,127,127,60,66, - 267,202,277,24,127,60,69,60,128,66, - 2,240,172,240,173,229,75,240,127,127, - 2,69,68,157,232,231,127,128,127,185, - 58,93,313,172,157,202,157,229,162,2, - 157,281,232,151,60,232,185,232,166,236, - 157,157,127,69,194,162,229,161,127,166, - 69,120,229,162,157,305,157,229,68,157 + 0,296,128,46,267,36,28,31,33,29, + 9,136,125,127,7,131,4,3,129,32, + 27,5,11,10,6,8,14,13,141,146, + 149,148,151,150,154,153,157,156,159,41, + 160,70,3,59,59,59,59,129,3,59, + 173,128,66,3,42,43,59,7,125,162, + 42,43,171,169,124,125,3,126,125,103, + 117,3,66,90,96,11,10,92,91,6, + 94,93,69,59,88,89,8,98,97,100, + 99,101,113,112,111,110,109,108,107,106, + 105,104,71,114,102,184,162,173,128,184, + 184,184,184,171,227,128,128,269,270,253, + 271,246,272,62,273,274,124,125,9,129, + 66,66,128,66,297,3,190,4,184,57, + 5,129,57,227,162,148,148,146,146,146, + 150,150,150,150,149,149,153,151,151,156, + 154,157,162,159,128,66,3,225,224,136, + 9,129,69,69,69,69,190,260,292,134, + 295,220,129,6,61,171,237,129,126,125, + 124,61,129,129,186,171,292,204,3,298, + 173,152,262,190,129,186,171,73,220,222, + 160,231,128,3,129,171,3,3,3,3, + 126,125,70,171,128,128,126,125,128,186, + 128,61,128,186,171,57,184,128,128,4, + 5,206,57,234,235,147,236,128,171,57, + 162,162,162,162,3,3,6,185,307,129, + 191,254,194,65,170,309,128,128,73,190, + 128,275,248,276,190,158,299,302,66,179, + 4,126,158,71,231,203,188,182,129,3, + 128,70,234,190,227,227,128,171,57,277, + 279,128,3,182,311,255,129,275,71,70, + 3,66,162,5,4,128,71,71,3,186, + 171,203,128,220,158,126,190,59,129,74, + 128,220,308,128,129,125,73,286,203,70, + 254,186,227,222,5,228,128,128,132,128, + 186,128,280,73,70,220,171,73,71,255, + 128,234,228,294,57,9,60,132,280,61, + 290,129,291,129,41,158,128,70,69,59, + 237,237,281,128,70,186,3,186,3,128, + 44,57,170,68,67,65,128,71,71,128, + 303,80,78,1,162,87,85,83,81,76, + 84,86,79,77,170,67,74,46,227,315, + 228,26,59,128,3,61,166,124,125,67, + 294,282,118,12,222,73,3,3,3,195, + 3,124,162,128,124,180,70,128,128,61, + 69,268,203,278,26,128,61,71,61,129, + 69,3,241,173,241,174,230,76,241,128, + 128,3,71,70,158,233,232,128,129,128, + 186,60,95,314,173,158,203,158,230,163, + 3,158,282,233,152,61,233,186,233,167, + 237,158,158,128,71,195,163,230,162,128, + 167,71,122,230,163,158,306,158,230,70, + 158 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2567,6 +2674,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "}", ";", "declaration", + "identifier_token", "expression", "id_expression", "qualified_or_unqualified_name", @@ -2692,7 +2800,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 44, + ERROR_SYMBOL = 46, SCOPE_UBOUND = 115, SCOPE_SIZE = 116, MAX_NAME_LENGTH = 37; @@ -2703,20 +2811,20 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 520, + NUM_STATES = 521, NT_OFFSET = 123, - LA_STATE_OFFSET = 5808, + LA_STATE_OFFSET = 6057, MAX_LA = 2147483647, - NUM_RULES = 532, - NUM_NONTERMINALS = 202, - NUM_SYMBOLS = 325, + NUM_RULES = 533, + NUM_NONTERMINALS = 199, + NUM_SYMBOLS = 322, SEGMENT_SIZE = 8192, - START_STATE = 2840, + START_STATE = 3058, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 114, - EOLT_SYMBOL = 114, - ACCEPT_ACTION = 4964, - ERROR_ACTION = 5276; + EOFT_SYMBOL = 116, + EOLT_SYMBOL = 116, + ACCEPT_ACTION = 5167, + ERROR_ACTION = 5524; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java index 0d9dcd26a23..22f4ebc20bb 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java @@ -15,133 +15,134 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoCastExpressionParsersym { public final static int - TK_asm = 67, - TK_auto = 49, - TK_bool = 13, - TK_break = 76, - TK_case = 77, - TK_catch = 116, - TK_char = 14, - TK_class = 58, - TK_const = 46, - TK_const_cast = 26, - TK_continue = 78, - TK_default = 79, - TK_delete = 40, - TK_do = 80, - TK_double = 15, - TK_dynamic_cast = 27, - TK_else = 120, - TK_enum = 61, - TK_explicit = 50, - TK_export = 74, - TK_extern = 42, - TK_false = 28, - TK_float = 16, - TK_for = 81, - TK_friend = 51, - TK_goto = 82, - TK_if = 83, - TK_inline = 52, - TK_int = 17, - TK_long = 18, - TK_mutable = 53, - TK_namespace = 65, - TK_new = 41, - TK_operator = 6, - TK_private = 117, - TK_protected = 118, - TK_public = 119, - TK_register = 54, - TK_reinterpret_cast = 29, - TK_return = 84, - TK_short = 19, - TK_signed = 20, - TK_sizeof = 30, - TK_static = 55, - TK_static_cast = 31, - TK_struct = 62, - TK_switch = 85, - TK_template = 47, - TK_this = 32, - TK_throw = 39, - TK_try = 73, - TK_true = 33, - TK_typedef = 56, - TK_typeid = 34, - TK_typename = 8, - TK_union = 63, - TK_unsigned = 21, - TK_using = 64, - TK_virtual = 45, - TK_void = 22, - TK_volatile = 48, - TK_wchar_t = 23, - TK_while = 75, - TK_integer = 35, - TK_floating = 36, - TK_charconst = 37, - TK_stringlit = 24, + TK_asm = 68, + TK_auto = 50, + TK_bool = 15, + TK_break = 77, + TK_case = 78, + TK_catch = 118, + TK_char = 16, + TK_class = 60, + TK_const = 48, + TK_const_cast = 28, + TK_continue = 79, + TK_default = 80, + TK_delete = 42, + TK_do = 81, + TK_double = 17, + TK_dynamic_cast = 29, + TK_else = 122, + TK_enum = 62, + TK_explicit = 51, + TK_export = 82, + TK_extern = 44, + TK_false = 30, + TK_float = 18, + TK_for = 83, + TK_friend = 52, + TK_goto = 84, + TK_if = 85, + TK_inline = 53, + TK_int = 19, + TK_long = 20, + TK_mutable = 54, + TK_namespace = 67, + TK_new = 43, + TK_operator = 7, + TK_private = 119, + TK_protected = 120, + TK_public = 121, + TK_register = 55, + TK_reinterpret_cast = 31, + TK_return = 86, + TK_short = 21, + TK_signed = 22, + TK_sizeof = 32, + TK_static = 56, + TK_static_cast = 33, + TK_struct = 63, + TK_switch = 87, + TK_template = 57, + TK_this = 34, + TK_throw = 41, + TK_try = 74, + TK_true = 35, + TK_typedef = 58, + TK_typeid = 36, + TK_typename = 9, + TK_union = 64, + TK_unsigned = 23, + TK_using = 65, + TK_virtual = 47, + TK_void = 24, + TK_volatile = 49, + TK_wchar_t = 25, + TK_while = 76, + TK_integer = 37, + TK_floating = 38, + TK_charconst = 39, + TK_stringlit = 26, TK_identifier = 1, - TK_Completion = 121, - TK_EndOfCompletion = 122, + TK_Completion = 2, + TK_EndOfCompletion = 12, TK_Invalid = 123, - TK_LeftBracket = 59, - TK_LeftParen = 2, - TK_LeftBrace = 60, - TK_Dot = 115, - TK_DotStar = 94, - TK_Arrow = 101, - TK_ArrowStar = 88, - TK_PlusPlus = 11, - TK_MinusMinus = 12, - TK_And = 7, - TK_Star = 5, - TK_Plus = 9, - TK_Minus = 10, - TK_Tilde = 4, - TK_Bang = 25, - TK_Slash = 89, - TK_Percent = 90, - TK_RightShift = 86, - TK_LeftShift = 87, - TK_LT = 57, - TK_GT = 66, - TK_LE = 91, - TK_GE = 92, - TK_EQ = 95, - TK_NE = 96, - TK_Caret = 97, - TK_Or = 98, - TK_AndAnd = 99, - TK_OrOr = 100, - TK_Question = 112, - TK_Colon = 70, - TK_ColonColon = 3, - TK_DotDotDot = 93, - TK_Assign = 69, - TK_StarAssign = 102, - TK_SlashAssign = 103, - TK_PercentAssign = 104, - TK_PlusAssign = 105, - TK_MinusAssign = 106, - TK_RightShiftAssign = 107, - TK_LeftShiftAssign = 108, - TK_AndAssign = 109, - TK_CaretAssign = 110, - TK_OrAssign = 111, - TK_Comma = 68, - TK_zero = 38, - TK_RightBracket = 113, - TK_RightParen = 72, - TK_RightBrace = 71, - TK_SemiColon = 43, - TK_ERROR_TOKEN = 44, - TK_EOF_TOKEN = 114; + TK_LeftBracket = 66, + TK_LeftParen = 3, + TK_LeftBrace = 61, + TK_Dot = 117, + TK_DotStar = 96, + TK_Arrow = 103, + TK_ArrowStar = 90, + TK_PlusPlus = 13, + TK_MinusMinus = 14, + TK_And = 8, + TK_Star = 6, + TK_Plus = 10, + TK_Minus = 11, + TK_Tilde = 5, + TK_Bang = 27, + TK_Slash = 91, + TK_Percent = 92, + TK_RightShift = 88, + TK_LeftShift = 89, + TK_LT = 59, + TK_GT = 69, + TK_LE = 93, + TK_GE = 94, + TK_EQ = 97, + TK_NE = 98, + TK_Caret = 99, + TK_Or = 100, + TK_AndAnd = 101, + TK_OrOr = 102, + TK_Question = 114, + TK_Colon = 73, + TK_ColonColon = 4, + TK_DotDotDot = 95, + TK_Assign = 71, + TK_StarAssign = 104, + TK_SlashAssign = 105, + TK_PercentAssign = 106, + TK_PlusAssign = 107, + TK_MinusAssign = 108, + TK_RightShiftAssign = 109, + TK_LeftShiftAssign = 110, + TK_AndAssign = 111, + TK_CaretAssign = 112, + TK_OrAssign = 113, + TK_Comma = 70, + TK_zero = 40, + TK_RightBracket = 115, + TK_RightParen = 75, + TK_RightBrace = 72, + TK_SemiColon = 45, + TK_ERROR_TOKEN = 46, + TK_EOF_TOKEN = 116; public final static String orderedTerminalSymbols[] = { "", "identifier", + "Completion", "LeftParen", "ColonColon", "Tilde", @@ -151,6 +152,7 @@ public interface CPPNoCastExpressionParsersym { "typename", "Plus", "Minus", + "EndOfCompletion", "PlusPlus", "MinusMinus", "bool", @@ -187,7 +189,6 @@ public interface CPPNoCastExpressionParsersym { "ERROR_TOKEN", "virtual", "const", - "template", "volatile", "auto", "explicit", @@ -196,31 +197,32 @@ public interface CPPNoCastExpressionParsersym { "mutable", "register", "static", + "template", "typedef", "LT", "class", - "LeftBracket", "LeftBrace", "enum", "struct", "union", "using", + "LeftBracket", "namespace", - "GT", "asm", + "GT", "Comma", "Assign", - "Colon", "RightBrace", - "RightParen", + "Colon", "try", - "export", + "RightParen", "while", "break", "case", "continue", "default", "do", + "export", "for", "goto", "if", @@ -261,8 +263,6 @@ public interface CPPNoCastExpressionParsersym { "protected", "public", "else", - "Completion", - "EndOfCompletion", "Invalid" }; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java index 92fa9e02a6c..bf56d609485 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java @@ -185,6 +185,7 @@ private void initActions(IASTTranslationUnit tu) { public void addToken(IToken token) { token.setKind(mapKind(token.getKind())); + //System.out.println("Token: " + token); super.addToken(token); } @@ -272,1780 +273,1773 @@ public CPPParser(String[] mapFrom) { // constructor } // - // Rule 4: ::= $Empty + // Rule 2: ::= $Empty // - case 4: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 5: ::= $Empty - // - case 5: { action.builder. + case 2: { action.builder. consumeEmpty(); break; } // - // Rule 10: translation_unit ::= external_declaration_list - // - case 10: { action.builder. - consumeTranslationUnit(); break; - } - - // - // Rule 11: translation_unit ::= $Empty + // Rule 11: translation_unit ::= external_declaration_list // case 11: { action.builder. consumeTranslationUnit(); break; } // - // Rule 15: external_declaration ::= ERROR_TOKEN + // Rule 12: translation_unit ::= $Empty // - case 15: { action.builder. + case 12: { action.builder. + consumeTranslationUnit(); break; + } + + // + // Rule 16: external_declaration ::= ERROR_TOKEN + // + case 16: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 16: literal ::= integer + // Rule 19: literal ::= integer // - case 16: { action.builder. + case 19: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 17: literal ::= 0 + // Rule 20: literal ::= 0 // - case 17: { action.builder. + case 20: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 18: literal ::= floating + // Rule 21: literal ::= floating // - case 18: { action.builder. + case 21: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } // - // Rule 19: literal ::= charconst + // Rule 22: literal ::= charconst // - case 19: { action.builder. + case 22: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 20: literal ::= stringlit + // Rule 23: literal ::= stringlit // - case 20: { action.builder. + case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 21: literal ::= true + // Rule 24: literal ::= true // - case 21: { action.builder. + case 24: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 22: literal ::= false + // Rule 25: literal ::= false // - case 22: { action.builder. + case 25: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 23: literal ::= this + // Rule 26: literal ::= this // - case 23: { action.builder. + case 26: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 25: primary_expression ::= ( expression ) + // Rule 28: primary_expression ::= ( expression ) // - case 25: { action.builder. + case 28: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 27: id_expression ::= qualified_or_unqualified_name + // Rule 30: id_expression ::= qualified_or_unqualified_name // - case 27: { action.builder. + case 30: { action.builder. consumeExpressionName(); break; } // - // Rule 34: unqualified_id_name ::= ~ class_name + // Rule 37: unqualified_id_name ::= ~ class_name // - case 34: { action.builder. + case 37: { action.builder. consumeDestructorName(); break; } // - // Rule 35: identifier_name ::= identifier + // Rule 38: identifier_name ::= identifier_token // - case 35: { action.builder. + case 38: { action.builder. consumeIdentifierName(); break; } // - // Rule 36: template_opt ::= template - // - case 36: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 37: template_opt ::= $Empty - // - case 37: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 38: dcolon_opt ::= :: - // - case 38: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 39: dcolon_opt ::= $Empty + // Rule 39: template_opt ::= template // case 39: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 40: template_opt ::= $Empty + // + case 40: { action.builder. consumeEmpty(); break; } // - // Rule 40: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 41: dcolon_opt ::= :: // - case 40: { action.builder. + case 41: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 42: dcolon_opt ::= $Empty + // + case 42: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 43: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 43: { action.builder. consumeQualifiedId(true); break; } // - // Rule 41: qualified_id_name ::= :: identifier_name - // - case 41: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 42: qualified_id_name ::= :: operator_function_id_name - // - case 42: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 43: qualified_id_name ::= :: template_id_name - // - case 43: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 44: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 44: qualified_id_name ::= :: identifier_name // case 44: { action.builder. - consumeNestedNameSpecifier(true); break; + consumeGlobalQualifiedId(); break; } // - // Rule 45: nested_name_specifier ::= class_or_namespace_name :: + // Rule 45: qualified_id_name ::= :: operator_function_id_name // case 45: { action.builder. - consumeNestedNameSpecifier(false); break; + consumeGlobalQualifiedId(); break; } // - // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 46: qualified_id_name ::= :: template_id_name // case 46: { action.builder. + consumeGlobalQualifiedId(); break; + } + + // + // Rule 47: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // + case 47: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 47: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: // - case 47: { action.builder. + case 48: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 48: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 49: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 48: { action.builder. + case 49: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // + case 50: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 51: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 51: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 50: nested_name_specifier_opt ::= $Empty + // Rule 53: nested_name_specifier_opt ::= $Empty // - case 50: { action.builder. + case 53: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 54: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 54: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 55: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 55: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 56: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 56: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 57: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) // - case 57: { action.builder. + case 60: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 58: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 58: { action.builder. + case 61: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 59: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 59: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 60: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 60: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 61: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 61: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 62: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 62: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 63: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 63: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 64: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 65: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 65: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 66: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 66: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 67: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 67: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 68: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 68: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 69: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 69: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 70: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 70: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 71: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 71: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 72: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 72: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name // - case 73: { action.builder. + case 76: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 74: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name // - case 74: { action.builder. + case 77: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name // - case 75: { action.builder. + case 78: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: unary_expression ::= ++ cast_expression + // Rule 82: unary_expression ::= ++ cast_expression // - case 79: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 80: unary_expression ::= -- cast_expression + // Rule 83: unary_expression ::= -- cast_expression // - case 80: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 81: unary_expression ::= & cast_expression + // Rule 84: unary_expression ::= & cast_expression // - case 81: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 82: unary_expression ::= * cast_expression + // Rule 85: unary_expression ::= * cast_expression // - case 82: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 83: unary_expression ::= + cast_expression + // Rule 86: unary_expression ::= + cast_expression // - case 83: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 84: unary_expression ::= - cast_expression + // Rule 87: unary_expression ::= - cast_expression // - case 84: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 85: unary_expression ::= ~ cast_expression + // Rule 88: unary_expression ::= ~ cast_expression // - case 85: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 86: unary_expression ::= ! cast_expression + // Rule 89: unary_expression ::= ! cast_expression // - case 86: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 87: unary_expression ::= sizeof unary_expression + // Rule 90: unary_expression ::= sizeof unary_expression // - case 87: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 88: unary_expression ::= sizeof ( type_id ) + // Rule 91: unary_expression ::= sizeof ( type_id ) // - case 88: { action.builder. + case 91: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 92: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 89: { action.builder. + case 92: { action.builder. consumeExpressionNew(true); break; } // - // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt + // Rule 93: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt // - case 90: { action.builder. + case 93: { action.builder. consumeExpressionNew(false); break; } // - // Rule 93: new_placement_opt ::= $Empty + // Rule 96: new_placement_opt ::= $Empty // - case 93: { action.builder. + case 96: { action.builder. consumeEmpty(); break; } // - // Rule 94: new_type_id ::= type_specifier_seq + // Rule 97: new_type_id ::= type_specifier_seq // - case 94: { action.builder. + case 97: { action.builder. consumeTypeId(false); break; } // - // Rule 95: new_type_id ::= type_specifier_seq new_declarator + // Rule 98: new_type_id ::= type_specifier_seq new_declarator // - case 95: { action.builder. + case 98: { action.builder. consumeTypeId(true); break; } // - // Rule 96: new_declarator ::= new_pointer_operators + // Rule 99: new_declarator ::= new_pointer_operators // - case 96: { action.builder. + case 99: { action.builder. consumeNewDeclarator(); break; } // - // Rule 105: new_initializer_opt ::= $Empty + // Rule 108: new_initializer_opt ::= $Empty // - case 105: { action.builder. + case 108: { action.builder. consumeEmpty(); break; } // - // Rule 106: delete_expression ::= dcolon_opt delete cast_expression + // Rule 109: delete_expression ::= dcolon_opt delete cast_expression // - case 106: { action.builder. + case 109: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 107: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 110: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 107: { action.builder. + case 110: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 109: cast_expression ::= ( type_id ) cast_expression + // Rule 112: cast_expression ::= ( type_id ) cast_expression // - case 109: { action.builder. + case 112: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 111: pm_expression ::= pm_expression .* cast_expression + // Rule 114: pm_expression ::= pm_expression .* cast_expression // - case 111: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 112: pm_expression ::= pm_expression ->* cast_expression + // Rule 115: pm_expression ::= pm_expression ->* cast_expression // - case 112: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 114: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 117: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 114: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 115: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 115: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 116: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 119: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 116: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 118: additive_expression ::= additive_expression + multiplicative_expression + // Rule 121: additive_expression ::= additive_expression + multiplicative_expression // - case 118: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 119: additive_expression ::= additive_expression - multiplicative_expression + // Rule 122: additive_expression ::= additive_expression - multiplicative_expression // - case 119: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 121: shift_expression ::= shift_expression << additive_expression + // Rule 124: shift_expression ::= shift_expression << additive_expression // - case 121: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 122: shift_expression ::= shift_expression >> additive_expression + // Rule 125: shift_expression ::= shift_expression >> additive_expression // - case 122: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 124: relational_expression ::= relational_expression < shift_expression + // Rule 127: relational_expression ::= relational_expression < shift_expression // - case 124: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 125: relational_expression ::= relational_expression > shift_expression + // Rule 128: relational_expression ::= relational_expression > shift_expression // - case 125: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 126: relational_expression ::= relational_expression <= shift_expression + // Rule 129: relational_expression ::= relational_expression <= shift_expression // - case 126: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 127: relational_expression ::= relational_expression >= shift_expression + // Rule 130: relational_expression ::= relational_expression >= shift_expression // - case 127: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 129: equality_expression ::= equality_expression == relational_expression + // Rule 132: equality_expression ::= equality_expression == relational_expression // - case 129: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 130: equality_expression ::= equality_expression != relational_expression + // Rule 133: equality_expression ::= equality_expression != relational_expression // - case 130: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 132: and_expression ::= and_expression & equality_expression + // Rule 135: and_expression ::= and_expression & equality_expression // - case 132: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 134: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 137: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 134: { action.builder. + case 137: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 136: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 139: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 136: { action.builder. + case 139: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 138: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 141: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 138: { action.builder. + case 141: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 140: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 143: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 140: { action.builder. + case 143: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 142: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 145: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 142: { action.builder. + case 145: { action.builder. consumeExpressionConditional(); break; } // - // Rule 143: throw_expression ::= throw + // Rule 146: throw_expression ::= throw // - case 143: { action.builder. + case 146: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 144: throw_expression ::= throw assignment_expression + // Rule 147: throw_expression ::= throw assignment_expression // - case 144: { action.builder. + case 147: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 147: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression = assignment_expression // - case 147: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 148: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression *= assignment_expression // - case 148: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 149: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression /= assignment_expression // - case 149: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 150: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression %= assignment_expression // - case 150: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 151: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression += assignment_expression // - case 151: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression -= assignment_expression // - case 152: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 153: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 154: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression &= assignment_expression // - case 155: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 156: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression |= assignment_expression // - case 157: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 159: expression ::= ERROR_TOKEN + // Rule 162: expression ::= ERROR_TOKEN // - case 159: { action.builder. + case 162: { action.builder. consumeExpressionProblem(); break; } // - // Rule 160: expression_list ::= expression_list_actual + // Rule 163: expression_list ::= expression_list_actual // - case 160: { action.builder. + case 163: { action.builder. consumeExpressionList(); break; } // - // Rule 164: expression_list_opt ::= $Empty + // Rule 167: expression_list_opt ::= $Empty // - case 164: { action.builder. + case 167: { action.builder. consumeEmpty(); break; } // - // Rule 166: expression_opt ::= $Empty - // - case 166: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 169: constant_expression_opt ::= $Empty + // Rule 169: expression_opt ::= $Empty // case 169: { action.builder. consumeEmpty(); break; } // - // Rule 178: statement ::= ERROR_TOKEN + // Rule 172: constant_expression_opt ::= $Empty // - case 178: { action.builder. + case 172: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 181: statement ::= ERROR_TOKEN + // + case 181: { action.builder. consumeStatementProblem(); break; } // - // Rule 179: labeled_statement ::= identifier : statement + // Rule 182: labeled_statement ::= identifier : statement // - case 179: { action.builder. + case 182: { action.builder. consumeStatementLabeled(); break; } // - // Rule 180: labeled_statement ::= case constant_expression : + // Rule 183: labeled_statement ::= case constant_expression : // - case 180: { action.builder. + case 183: { action.builder. consumeStatementCase(); break; } // - // Rule 181: labeled_statement ::= default : + // Rule 184: labeled_statement ::= default : // - case 181: { action.builder. + case 184: { action.builder. consumeStatementDefault(); break; } // - // Rule 182: expression_statement ::= expression ; + // Rule 185: expression_statement ::= expression ; // - case 182: { action.builder. + case 185: { action.builder. consumeStatementExpression(); break; } // - // Rule 183: expression_statement ::= ; + // Rule 186: expression_statement ::= ; // - case 183: { action.builder. + case 186: { action.builder. consumeStatementNull(); break; } // - // Rule 184: compound_statement ::= { statement_seq } + // Rule 187: compound_statement ::= { statement_seq } // - case 184: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 185: compound_statement ::= { } + // Rule 188: compound_statement ::= { } // - case 185: { action.builder. + case 188: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 188: selection_statement ::= if ( condition ) statement + // Rule 191: selection_statement ::= if ( condition ) statement // - case 188: { action.builder. + case 191: { action.builder. consumeStatementIf(false); break; } // - // Rule 189: selection_statement ::= if ( condition ) statement else statement + // Rule 192: selection_statement ::= if ( condition ) statement else statement // - case 189: { action.builder. + case 192: { action.builder. consumeStatementIf(true); break; } // - // Rule 190: selection_statement ::= switch ( condition ) statement + // Rule 193: selection_statement ::= switch ( condition ) statement // - case 190: { action.builder. + case 193: { action.builder. consumeStatementSwitch(); break; } // - // Rule 192: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression // - case 192: { action.builder. + case 195: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 193: iteration_statement ::= while ( condition ) statement + // Rule 196: iteration_statement ::= while ( condition ) statement // - case 193: { action.builder. + case 196: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 194: iteration_statement ::= do statement while ( expression ) ; + // Rule 197: iteration_statement ::= do statement while ( expression ) ; // - case 194: { action.builder. + case 197: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 195: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 198: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // - case 195: { action.builder. + case 198: { action.builder. consumeStatementForLoop(); break; } // - // Rule 196: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement + // Rule 199: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement // - case 196: { action.builder. + case 199: { action.builder. consumeStatementForLoop(); break; } // - // Rule 197: jump_statement ::= break ; + // Rule 200: jump_statement ::= break ; // - case 197: { action.builder. + case 200: { action.builder. consumeStatementBreak(); break; } // - // Rule 198: jump_statement ::= continue ; + // Rule 201: jump_statement ::= continue ; // - case 198: { action.builder. + case 201: { action.builder. consumeStatementContinue(); break; } // - // Rule 199: jump_statement ::= return expression ; + // Rule 202: jump_statement ::= return expression ; // - case 199: { action.builder. + case 202: { action.builder. consumeStatementReturn(true); break; } // - // Rule 200: jump_statement ::= return ; + // Rule 203: jump_statement ::= return ; // - case 200: { action.builder. + case 203: { action.builder. consumeStatementReturn(false); break; } // - // Rule 201: jump_statement ::= goto identifier ; + // Rule 204: jump_statement ::= goto identifier_token ; // - case 201: { action.builder. + case 204: { action.builder. consumeStatementGoto(); break; } // - // Rule 202: declaration_statement ::= block_declaration + // Rule 205: declaration_statement ::= block_declaration // - case 202: { action.builder. + case 205: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 219: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 219: { action.builder. + case 222: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 220: declaration_specifiers ::= simple_declaration_specifiers + // Rule 223: declaration_specifiers ::= simple_declaration_specifiers // - case 220: { action.builder. + case 223: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 221: declaration_specifiers ::= class_declaration_specifiers - // - case 221: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 222: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 222: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 223: declaration_specifiers ::= enum_declaration_specifiers - // - case 223: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 224: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 224: declaration_specifiers ::= class_declaration_specifiers // case 224: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 225: declaration_specifiers ::= elaborated_declaration_specifiers + // + case 225: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 226: declaration_specifiers ::= enum_declaration_specifiers + // + case 226: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 227: declaration_specifiers ::= type_name_declaration_specifiers + // + case 227: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 226: declaration_specifiers_opt ::= $Empty + // Rule 229: declaration_specifiers_opt ::= $Empty // - case 226: { action.builder. + case 229: { action.builder. consumeEmpty(); break; } // - // Rule 230: no_type_declaration_specifier ::= friend + // Rule 233: no_type_declaration_specifier ::= friend // - case 230: { action.builder. + case 233: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 231: no_type_declaration_specifier ::= typedef + // Rule 234: no_type_declaration_specifier ::= typedef // - case 231: { action.builder. + case 234: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 260: simple_type_specifier ::= simple_type_specifier_token + // Rule 263: simple_type_specifier ::= simple_type_specifier_token // - case 260: { action.builder. + case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 276: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name - // - case 277: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name - // - case 278: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // case 279: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // + case 280: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 281: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // + case 281: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 282: { action.builder. consumeQualifiedId(true); break; } // - // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 283: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 280: { action.builder. + case 283: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 284: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 281: { action.builder. + case 284: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 282: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 285: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 282: { action.builder. + case 285: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 284: enum_specifier ::= enum { enumerator_list_opt } + // Rule 287: enum_specifier ::= enum { enumerator_list_opt } // - case 284: { action.builder. + case 287: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 285: enum_specifier ::= enum identifier { enumerator_list_opt } + // Rule 288: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 285: { action.builder. + case 288: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 290: enumerator_definition ::= enumerator + // Rule 293: enumerator_definition ::= enumerator // - case 290: { action.builder. + case 293: { action.builder. consumeEnumerator(false); break; } // - // Rule 291: enumerator_definition ::= enumerator = constant_expression + // Rule 294: enumerator_definition ::= enumerator = constant_expression // - case 291: { action.builder. + case 294: { action.builder. consumeEnumerator(true); break; } // - // Rule 300: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } + // Rule 303: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } // - case 300: { action.builder. + case 303: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 301: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // Rule 304: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } // - case 301: { action.builder. + case 304: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 302: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 305: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 302: { action.builder. + case 305: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 304: namespace_alias_definition ::= namespace identifier = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 307: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 304: { action.builder. + case 307: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 305: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 308: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 305: { action.builder. + case 308: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 306: typename_opt ::= typename + // Rule 309: typename_opt ::= typename // - case 306: { action.builder. + case 309: { action.builder. consumePlaceHolder(); break; } // - // Rule 307: typename_opt ::= $Empty + // Rule 310: typename_opt ::= $Empty // - case 307: { action.builder. + case 310: { action.builder. consumeEmpty(); break; } // - // Rule 308: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 311: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 308: { action.builder. + case 311: { action.builder. consumeUsingDirective(); break; } // - // Rule 309: asm_definition ::= asm ( stringlit ) ; + // Rule 312: asm_definition ::= asm ( stringlit ) ; // - case 309: { action.builder. + case 312: { action.builder. consumeDeclarationASM(); break; } // - // Rule 310: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 313: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 310: { action.builder. + case 313: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 311: linkage_specification ::= extern stringlit declaration + // Rule 314: linkage_specification ::= extern stringlit declaration // - case 311: { action.builder. + case 314: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 317: init_declarator ::= declarator initializer + // Rule 320: init_declarator ::= declarator initializer // - case 317: { action.builder. + case 320: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 319: declarator ::= ptr_operator_seq direct_declarator + // Rule 322: declarator ::= ptr_operator_seq direct_declarator // - case 319: { action.builder. + case 322: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 321: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 324: function_declarator ::= ptr_operator_seq direct_declarator // - case 321: { action.builder. + case 324: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 325: basic_direct_declarator ::= declarator_id_name + // Rule 328: basic_direct_declarator ::= declarator_id_name // - case 325: { action.builder. + case 328: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 326: basic_direct_declarator ::= ( declarator ) + // Rule 329: basic_direct_declarator ::= ( declarator ) // - case 326: { action.builder. + case 329: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 327: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 330: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 327: { action.builder. + case 330: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 328: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 331: array_direct_declarator ::= array_direct_declarator array_modifier // - case 328: { action.builder. + case 331: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 329: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 332: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 329: { action.builder. + case 332: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 330: array_modifier ::= [ constant_expression ] + // Rule 333: array_modifier ::= [ constant_expression ] // - case 330: { action.builder. + case 333: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 331: array_modifier ::= [ ] + // Rule 334: array_modifier ::= [ ] // - case 331: { action.builder. + case 334: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 332: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 335: ptr_operator ::= * cv_qualifier_seq_opt // - case 332: { action.builder. + case 335: { action.builder. consumePointer(); break; } // - // Rule 333: ptr_operator ::= & + // Rule 336: ptr_operator ::= & // - case 333: { action.builder. + case 336: { action.builder. consumeReferenceOperator(); break; } // - // Rule 334: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 337: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 334: { action.builder. + case 337: { action.builder. consumePointerToMember(); break; } // - // Rule 340: cv_qualifier ::= const - // - case 340: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 341: cv_qualifier ::= volatile - // - case 341: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 343: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 343: cv_qualifier ::= const // case 343: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 344: cv_qualifier ::= volatile + // + case 344: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 346: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // + case 346: { action.builder. consumeQualifiedId(false); break; } // - // Rule 344: type_id ::= type_specifier_seq + // Rule 347: type_id ::= type_specifier_seq // - case 344: { action.builder. + case 347: { action.builder. consumeTypeId(false); break; } // - // Rule 345: type_id ::= type_specifier_seq abstract_declarator + // Rule 348: type_id ::= type_specifier_seq abstract_declarator // - case 345: { action.builder. + case 348: { action.builder. consumeTypeId(true); break; } // - // Rule 348: abstract_declarator ::= ptr_operator_seq + // Rule 351: abstract_declarator ::= ptr_operator_seq // - case 348: { action.builder. + case 351: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 349: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 352: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 349: { action.builder. + case 352: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 353: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 356: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 353: { action.builder. + case 356: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_modifier + // Rule 357: array_direct_abstract_declarator ::= array_modifier // - case 354: { action.builder. + case 357: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 355: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 358: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 355: { action.builder. + case 358: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 356: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 359: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 356: { action.builder. + case 359: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 360: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 357: { action.builder. + case 360: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 358: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 361: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 358: { action.builder. + case 361: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 362: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 359: { action.builder. + case 362: { action.builder. consumePlaceHolder(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 363: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 360: { action.builder. + case 363: { action.builder. consumeEmpty(); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 364: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 361: { action.builder. + case 364: { action.builder. consumePlaceHolder(); break; } // - // Rule 367: abstract_declarator_opt ::= $Empty + // Rule 370: abstract_declarator_opt ::= $Empty // - case 367: { action.builder. + case 370: { action.builder. consumeEmpty(); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 371: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 368: { action.builder. + case 371: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 369: parameter_declaration ::= declaration_specifiers + // Rule 372: parameter_declaration ::= declaration_specifiers // - case 369: { action.builder. + case 372: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 371: parameter_init_declarator ::= declarator = parameter_initializer - // - case 371: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 373: parameter_init_declarator ::= abstract_declarator = parameter_initializer - // - case 373: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 374: parameter_init_declarator ::= = parameter_initializer + // Rule 374: parameter_init_declarator ::= declarator = parameter_initializer // case 374: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 376: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 376: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 377: parameter_init_declarator ::= = parameter_initializer + // + case 377: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 375: parameter_initializer ::= assignment_expression + // Rule 378: parameter_initializer ::= assignment_expression // - case 375: { action.builder. + case 378: { action.builder. consumeInitializer(); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 379: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 376: { action.builder. + case 379: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 380: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 377: { action.builder. + case 380: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 380: initializer ::= ( expression_list ) + // Rule 383: initializer ::= ( expression_list ) // - case 380: { action.builder. + case 383: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 381: initializer_clause ::= assignment_expression + // Rule 384: initializer_clause ::= assignment_expression // - case 381: { action.builder. + case 384: { action.builder. consumeInitializer(); break; } // - // Rule 382: initializer_clause ::= { initializer_list , } + // Rule 385: initializer_clause ::= { initializer_list , } // - case 382: { action.builder. + case 385: { action.builder. consumeInitializerList(); break; } // - // Rule 383: initializer_clause ::= { initializer_list } + // Rule 386: initializer_clause ::= { initializer_list } // - case 383: { action.builder. + case 386: { action.builder. consumeInitializerList(); break; } // - // Rule 384: initializer_clause ::= { } + // Rule 387: initializer_clause ::= { } // - case 384: { action.builder. + case 387: { action.builder. consumeInitializerList(); break; } // - // Rule 389: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 392: class_specifier ::= class_head { member_declaration_list_opt } // - case 389: { action.builder. + case 392: { action.builder. consumeClassSpecifier(); break; } // - // Rule 390: class_head ::= class_keyword identifier_name_opt base_clause_opt - // - case 390: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 391: class_head ::= class_keyword template_id_name base_clause_opt - // - case 391: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 392: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 393: class_head ::= class_keyword identifier_name_opt base_clause_opt // case 393: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 394: class_head ::= class_keyword template_id_name base_clause_opt + // + case 394: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 395: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // + case 395: { action.builder. consumeClassHead(true); break; } // - // Rule 397: identifier_name_opt ::= $Empty + // Rule 396: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // - case 397: { action.builder. + case 396: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 398: identifier_name_opt ::= $Empty + // + case 398: { action.builder. consumeEmpty(); break; } // - // Rule 401: visibility_label ::= access_specifier_keyword : + // Rule 402: visibility_label ::= access_specifier_keyword : // - case 401: { action.builder. + case 402: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 403: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 402: { action.builder. + case 403: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 403: member_declaration ::= declaration_specifiers_opt ; + // Rule 404: member_declaration ::= declaration_specifiers_opt ; // - case 403: { action.builder. + case 404: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 406: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 406: { action.builder. + case 407: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 410: member_declaration ::= ERROR_TOKEN + // Rule 411: member_declaration ::= ERROR_TOKEN // - case 410: { action.builder. + case 411: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 418: member_declarator ::= declarator constant_initializer + // Rule 419: member_declarator ::= declarator constant_initializer // - case 418: { action.builder. + case 419: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 419: member_declarator ::= bit_field_declarator : constant_expression + // Rule 420: member_declarator ::= bit_field_declarator : constant_expression // - case 419: { action.builder. + case 420: { action.builder. consumeBitField(true); break; } // - // Rule 420: member_declarator ::= : constant_expression + // Rule 421: member_declarator ::= : constant_expression // - case 420: { action.builder. + case 421: { action.builder. consumeBitField(false); break; } // - // Rule 421: bit_field_declarator ::= identifier_name + // Rule 422: bit_field_declarator ::= identifier_name // - case 421: { action.builder. + case 422: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. + case 429: { action.builder. consumeBaseSpecifier(false); break; } // - // Rule 429: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 430: { action.builder. consumeBaseSpecifier(true); break; } // - // Rule 430: virtual_opt ::= virtual + // Rule 431: virtual_opt ::= virtual // - case 430: { action.builder. + case 431: { action.builder. consumePlaceHolder(); break; } // - // Rule 431: virtual_opt ::= $Empty + // Rule 432: virtual_opt ::= $Empty // - case 431: { action.builder. + case 432: { action.builder. consumeEmpty(); break; } // - // Rule 437: conversion_function_id_name ::= operator conversion_type_id + // Rule 438: conversion_function_id_name ::= operator conversion_type_id // - case 437: { action.builder. + case 438: { action.builder. consumeConversionName(); break; } // - // Rule 438: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 438: { action.builder. + case 439: { action.builder. consumeTypeId(true); break; } // - // Rule 439: conversion_type_id ::= type_specifier_seq + // Rule 440: conversion_type_id ::= type_specifier_seq // - case 439: { action.builder. + case 440: { action.builder. consumeTypeId(false); break; } // - // Rule 440: conversion_declarator ::= ptr_operator_seq + // Rule 441: conversion_declarator ::= ptr_operator_seq // - case 440: { action.builder. + case 441: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 446: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 446: { action.builder. + case 447: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 447: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 448: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 447: { action.builder. + case 448: { action.builder. consumeQualifiedId(false); break; } // - // Rule 450: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 451: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 450: { action.builder. + case 451: { action.builder. consumeTemplateId(); break; } // - // Rule 451: operator_id_name ::= operator overloadable_operator + // Rule 452: operator_id_name ::= operator overloadable_operator // - case 451: { action.builder. + case 452: { action.builder. consumeOperatorName(); break; } // - // Rule 494: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 495: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 494: { action.builder. + case 495: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 495: export_opt ::= export + // Rule 496: export_opt ::= export // - case 495: { action.builder. + case 496: { action.builder. consumePlaceHolder(); break; } // - // Rule 496: export_opt ::= $Empty + // Rule 497: export_opt ::= $Empty // - case 496: { action.builder. + case 497: { action.builder. consumeEmpty(); break; } // - // Rule 501: type_parameter ::= class identifier_name_opt - // - case 501: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 502: type_parameter ::= class identifier_name_opt = type_id + // Rule 502: type_parameter ::= class identifier_name_opt // case 502: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 503: type_parameter ::= typename identifier_name_opt - // - case 503: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 504: type_parameter ::= typename identifier_name_opt = type_id + // Rule 503: type_parameter ::= class identifier_name_opt = type_id // - case 504: { action.builder. + case 503: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 505: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 504: type_parameter ::= typename identifier_name_opt + // + case 504: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 505: type_parameter ::= typename identifier_name_opt = type_id // case 505: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // + case 506: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 506: { action.builder. + case 507: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 507: template_id_name ::= template_identifier < template_argument_list_opt > + // Rule 508: template_id_name ::= template_identifier < template_argument_list_opt > // - case 507: { action.builder. + case 508: { action.builder. consumeTemplateId(); break; } // - // Rule 516: explicit_instantiation ::= template declaration + // Rule 517: explicit_instantiation ::= template declaration // - case 516: { action.builder. + case 517: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 517: explicit_specialization ::= template < > declaration + // Rule 518: explicit_specialization ::= template < > declaration // - case 517: { action.builder. + case 518: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 518: try_block ::= try compound_statement handler_seq + // Rule 519: try_block ::= try compound_statement handler_seq // - case 518: { action.builder. + case 519: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 521: handler ::= catch ( exception_declaration ) compound_statement + // Rule 522: handler ::= catch ( exception_declaration ) compound_statement // - case 521: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 522: handler ::= catch ( ... ) compound_statement + // Rule 523: handler ::= catch ( ... ) compound_statement // - case 522: { action.builder. + case 523: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq declarator - // - case 523: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 524: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 524: exception_declaration ::= type_specifier_seq declarator // case 524: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq + // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator // case 525: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 526: exception_declaration ::= type_specifier_seq + // + case 526: { action.builder. consumeDeclarationSimple(false); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java index a42c47a1b38..ce7a64191ce 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java @@ -37,501 +37,521 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface BaseCheck { public final static short baseCheck[] = {0, - 0,0,0,0,0,1,1,1,1,1, - 0,1,2,1,1,1,1,1,1,1, - 1,1,1,1,3,1,1,1,1,1, - 1,1,1,2,1,1,0,1,0,4, - 2,2,2,3,2,3,2,2,1,0, - 1,1,1,4,4,4,8,8,3,3, - 4,4,3,3,2,2,7,7,7,7, - 4,4,6,7,4,1,1,1,2,2, - 2,2,2,2,2,2,2,4,7,7, - 3,1,0,1,2,2,1,2,3,4, - 1,0,3,1,0,3,5,1,4,1, - 3,3,1,3,3,3,1,3,3,1, - 3,3,1,3,3,3,3,1,3,3, - 1,3,1,3,1,3,1,3,1,3, - 1,5,1,2,1,1,3,3,3,3, - 3,3,3,3,3,3,3,1,1,2, - 1,3,1,0,1,0,1,1,0,1, - 1,1,1,1,1,1,1,1,3,3, - 2,2,1,4,2,1,2,5,7,5, - 1,4,5,7,9,8,2,2,3,2, - 3,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2,1,0,4,2, - 2,2,2,2,1,0,1,1,1,1, - 1,1,2,1,2,2,2,1,1,2, - 2,1,2,2,1,2,2,1,2,2, + 0,0,1,1,1,1,1,1,1,1, + 1,0,1,2,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3,1,1, + 1,1,1,1,1,1,2,1,1,0, + 1,0,4,2,2,2,3,2,3,2, + 2,1,0,1,1,1,4,4,4,8, + 8,3,3,4,4,3,3,2,2,7, + 7,7,7,4,4,6,7,4,1,1, + 1,2,2,2,2,2,2,2,2,2, + 4,7,7,3,1,0,1,2,2,1, + 2,3,4,1,0,3,1,0,3,5, + 1,4,1,3,3,1,3,3,3,1, + 3,3,1,3,3,1,3,3,3,3, + 1,3,3,1,3,1,3,1,3,1, + 3,1,3,1,5,1,2,1,1,3, + 3,3,3,3,3,3,3,3,3,3, + 1,1,2,1,3,1,0,1,0,1, + 1,0,1,1,1,1,1,1,1,1, + 1,3,3,2,2,1,4,2,1,2, + 5,7,5,1,4,5,7,9,8,2, + 2,3,2,3,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2,1, + 0,4,2,2,2,2,2,1,0,1, + 1,1,1,1,1,2,1,2,2,2, + 1,1,2,2,1,2,2,1,2,2, + 1,2,2,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3,4,4,5,4, - 5,4,1,5,6,1,3,1,0,1, - 3,1,1,1,1,1,1,1,1,6, - 6,5,1,7,6,1,0,6,5,6, - 4,1,3,1,0,1,2,1,3,1, - 3,1,1,1,1,3,9,2,2,3, - 2,3,1,5,1,2,2,1,0,1, - 1,1,3,1,2,1,1,2,3,1, - 1,1,3,1,2,2,9,8,2,1, - 3,1,3,1,0,1,0,2,1,1, - 3,1,3,2,1,5,8,1,2,3, - 1,5,4,3,1,3,1,1,5,4, - 4,5,5,1,0,1,0,1,1,1, - 2,4,2,2,1,5,1,1,1,1, - 1,2,1,0,1,3,1,2,3,2, - 1,2,2,1,0,1,3,3,6,1, - 0,1,1,1,1,0,2,2,1,2, - 2,1,0,1,3,4,3,1,1,5, - 2,1,1,3,3,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,4, + 4,5,4,5,4,1,5,6,1,3, + 1,0,1,3,1,1,1,1,1,1, + 1,1,6,6,5,1,7,6,1,0, + 6,5,6,4,1,3,1,0,1,2, + 1,3,1,3,1,1,1,1,3,9, + 2,2,3,2,3,1,5,1,2,2, + 1,0,1,1,1,3,1,2,1,1, + 2,3,1,1,1,3,1,2,2,9, + 8,2,1,3,1,3,1,0,1,0, + 2,1,1,3,1,3,2,1,5,8, + 1,2,3,1,5,4,3,1,3,1, + 1,5,4,4,5,5,1,0,1,1, + 1,2,4,2,2,1,5,1,1,1, + 1,1,2,1,0,1,3,1,2,3, + 2,1,2,2,1,0,1,3,3,6, + 1,0,1,1,1,1,0,2,2,1, + 2,2,1,0,1,3,4,3,1,1, + 5,2,1,1,3,3,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,2,2,7,1,0,1,3,1,1, - 2,4,2,4,7,9,5,1,1,3, - 1,0,1,1,1,2,4,4,1,2, - 5,5,3,3,1,4,3,1,0,1, - 3,-240,0,0,0,-2,0,0,0,0, + 1,1,2,2,7,1,0,1,3,1, + 1,2,4,2,4,7,9,5,1,1, + 3,1,0,1,1,1,2,4,4,1, + 2,5,5,3,3,1,4,3,1,0, + 1,3,-240,0,0,0,0,-48,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-113,0,0,0,0,0,-12, - 0,0,0,0,0,0,0,0,0,-4, - -81,0,0,-13,-247,0,0,0,0,0, - 0,0,0,0,0,0,-48,-7,-267,0, + 0,0,0,0,0,-102,0,0,0,0, + 0,-2,0,0,0,0,-12,0,0,0, + 0,0,0,0,0,-13,-247,0,0,0, + 0,0,0,0,0,0,0,0,0,-267, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-3,0,0,0, - 0,0,0,0,0,0,0,-169,0,0, - 0,-9,0,0,0,0,0,0,0,0, + 0,0,-27,0,0,0,0,0,0,0, + 0,-77,0,0,0,0,0,0,0,-167, + 0,0,0,0,-67,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-50,0,0,0,0,0, - 0,-21,-517,0,0,0,0,0,0,0, - 0,0,0,0,-14,0,0,0,0,0, - 0,0,0,-109,0,0,0,0,0,0, + 0,0,0,0,0,0,-131,-518,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-29,0,-226,0,0,0,0, + 0,0,0,0,0,-109,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-17,0,0,0, - 0,-442,-24,0,0,-25,0,-71,-97,0, - 0,0,0,0,0,0,0,0,0,-123, + 0,0,0,0,-41,0,0,0,0,0, + 0,0,0,0,-4,0,0,0,-7,-205, + -97,0,0,0,0,0,0,0,0,0, + 0,0,-123,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-27,0,0, - 0,0,0,0,0,0,0,0,-29,0, - 0,-26,0,0,-127,0,0,0,-86,0, - 0,0,0,0,0,-265,0,0,0,-121, + 0,-80,0,0,-81,0,0,0,0,0, + 0,-9,-3,0,0,-14,0,-127,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-94,-73,0,0,0,0,0,0,0, + 0,0,0,0,0,-187,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-283,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-17,0, + 0,0,0,0,-42,0,0,-86,0,0, + 0,0,0,0,-68,0,0,0,0,0, + -142,0,0,0,0,-212,0,0,0,0, + -162,-305,0,0,0,0,0,0,0,0, + 0,0,-125,-283,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-192,0,0,0,0,-68,0,-305, + 0,0,-298,-24,0,0,-25,0,-32,0, + 0,0,0,-26,0,0,0,0,-66,0, + -290,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -290,0,0,0,-412,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-406, 0,0,0,0,0,0,0,0,0,0, - 0,0,-102,0,0,0,0,0,0,0, - 0,0,0,-242,0,0,0,0,-104,-375, - 0,0,-111,0,0,0,-266,0,0,0, + -33,0,0,-10,0,0,-427,0,0,0, + 0,-76,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-426,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-213, + 0,0,-268,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-218,0,0,-33,0,0,0,0, - 0,0,-108,0,0,0,-32,0,0,0, - 0,-67,0,0,-248,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-116,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-66,0,0,0, + 0,-36,0,0,-116,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-358,0,0, + 0,0,0,-49,0,0,0,0,0,0, + 0,0,0,-38,0,0,0,-50,0,0, + 0,0,-108,0,0,0,-69,-103,0,0, -197,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-36,0,0,0,0,-10,0, - 0,0,-293,0,0,0,-69,0,0,0, + 0,0,-39,0,-51,0,0,0,0,0, + -104,0,0,-40,-293,0,0,0,0,-121, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-358,0,0,0,0,0, - -205,0,0,-38,0,0,0,0,0,0, - 0,-122,0,0,0,-203,0,-381,0,0, - 0,-77,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-243, - 0,0,0,0,0,-94,0,0,-191,0, - 0,0,0,0,0,0,0,0,0,-334, - 0,0,0,-39,0,0,0,0,0,0, - 0,-80,0,0,0,0,0,-382,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-54,0, + 0,0,0,0,0,0,0,-381,0,0, + 0,0,-43,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-113,0,0,0, + 0,-58,0,0,0,0,0,0,0,0, + -242,-35,0,0,0,0,-110,0,0,-44, + -382,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-375, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-117,0,0,0,0,-45,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-60,0,0,0,0,0,0,0, + 0,0,-270,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-112,0,0,0,0, + 0,-65,0,0,-122,0,0,0,0,0, + 0,-21,0,0,0,-53,-75,0,0,-455, + -311,0,-70,0,-138,0,0,-271,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -442,0,0,0,0,0,0,0,0,0, + 0,-443,0,0,0,0,0,0,0,0, + -272,0,0,0,0,-218,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-79, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-273,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-87,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-274,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-82,0, + -472,0,0,0,0,-243,0,0,0,-275, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-40,-117,0,0,0,-70,0,0,0, + 0,0,0,-88,0,0,0,0,0,-152, + 0,0,-276,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -142,0,0,0,0,-76,0,0,0,0, - -187,0,0,0,-43,0,0,0,0,0, + 0,-91,0,0,-55,0,0,0,0,0, + 0,-369,0,0,0,-277,0,0,0,0, + -196,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-105,0,0,0,0,0,0,0, - 0,0,0,-124,0,0,0,0,0,-41, - 0,0,-125,0,0,0,0,-35,0,0, - 0,0,-148,0,0,0,-270,0,0,0, + 0,0,0,0,-93,0,0,-206,0,0, + 0,0,0,0,0,-214,0,0,-278,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-126,0,0,-98,0,0, - 0,0,0,0,-400,0,0,0,-271,0, + 0,0,0,0,0,0,0,-95,0,0, + -98,0,0,0,0,0,0,-56,-215,0, + 0,-279,0,0,0,0,-402,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -455,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -272,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-507,0,0,0,0,0,-199,0, - 0,-136,0,0,0,0,0,0,-44,-45, - 0,0,-273,0,0,0,-53,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-518,0,0,0,0,0, - 0,0,0,-137,0,-162,0,0,0,0, - 0,-55,0,0,-274,0,0,0,-56,0, + 0,0,0,-221,0,-100,0,0,0,0, + 0,-217,0,0,-280,0,0,0,0,-238, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-101,0,0,0,0,0,0, + 0,0,0,0,-224,0,0,-378,0,0, + 0,0,-239,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-229,-57,0,0,-275,0,0,0, - -63,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-312,0,0,0,0,-230, - 0,0,0,0,-131,-64,0,0,-276,0, - 0,0,-72,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-78,0,0,0, - 0,0,0,0,0,0,-83,-84,0,0, - -277,0,0,0,-141,0,0,0,0,0, + 0,0,0,0,0,0,-106,0,0,-136, + 0,0,0,0,0,0,0,-379,0,0, + -411,0,0,0,0,-57,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-82,0,-149,0,0,0,0,-138,-153, - 0,0,-278,0,0,0,-154,0,0,0, + 0,0,-137,0,0,0,0,0,0,-223, + -126,0,0,-501,0,0,0,0,-410,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -330,0,0,-140,0,0,0,0,0,0, - -152,-155,0,0,-279,0,0,0,-157,0, + 0,0,0,0,0,-140,0,-198,0,0, + 0,0,0,-63,0,0,-225,0,0,0, + 0,-64,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-304,0,-328,0,0, - 0,0,0,-158,0,0,-280,0,0,0, - -159,0,0,0,0,0,0,0,0,0, + -72,0,0,0,0,-308,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-196,0,0, - 0,0,0,0,-484,-160,0,0,-378,0, - 0,0,-161,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-78,0, + 0,0,0,0,-202,0,0,-105,0,0, + 0,0,0,0,-328,-248,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-311,0,0,-206, - 0,0,0,0,0,0,-454,-163,0,0, - -411,0,0,0,-402,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-392,0, - 0,-238,0,0,0,0,0,0,-214,-164, - 0,0,-500,0,0,0,-410,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-338,0,0,0,0, - -212,0,0,0,-225,0,0,0,-467,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-308,0,0,0,-468,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-176,0,0,0,0,0, - 0,0,0,-177,0,0,0,0,0,0, -361,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-178,0, - 0,-179,0,0,0,0,0,0,-390,0, - 0,0,-180,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-181,0,0,0, - 0,0,0,0,0,0,-391,0,0,0, - -182,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-183,0,0,0,0,0, - 0,0,0,0,-493,0,0,0,-184,0, + 0,0,0,-83,0,0,0,0,0,-456, + 0,0,-84,0,-141,0,0,0,0,-390, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-185,0,0,-186,0,-188,0,0, - 0,0,-282,0,0,0,-189,0,0,0, + 0,0,-149,0,0,0,0,0,-284,0, + 0,-145,0,0,0,0,0,0,-334,0, + 0,0,0,-315,0,0,0,0,0,0, + 0,-153,0,0,-391,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -112,0,0,-221,0,-42,0,0,-239,0, - -269,0,0,0,-193,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-195,0, - 0,0,0,-200,0,-268,0,0,0,-201, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-204,0,0, - 0,0,0,-207,0,0,-5,0,0,0, - -16,0,-190,0,0,0,-215,-209,0,0, - -120,0,0,0,0,0,0,0,0,0, - 0,0,-494,-264,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-18,0,0,0,0, - 0,-34,0,0,-49,0,-1,0,0,-315, - 0,0,-399,0,0,0,-114,0,0,0, - 0,0,-223,0,0,0,0,0,0,-96, - 0,-287,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-213,0,0,-51, - 0,0,0,0,0,-510,0,0,0,0, - 0,0,0,-210,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-103,0,0,0, - 0,0,0,0,0,0,0,0,-208,0, - 0,0,0,0,0,0,0,0,0,0, - -258,0,0,0,-211,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-220,0,0,0,0,-318,-313,0, - 0,0,-245,0,0,-19,0,0,0,-246, - 0,-439,0,0,0,0,0,0,0,0, - 0,0,-289,0,0,-62,0,0,0,0, - 0,0,-445,0,0,0,0,0,-294,0, - 0,-54,0,0,0,0,0,0,0,-58, - 0,0,0,0,0,-217,0,0,0,0, - 0,-259,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-310,0,0,0,0,-260,0, - 0,0,-295,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -306,0,0,0,0,0,0,0,0,-261, + 0,0,0,-508,0,0,0,0,-154,0, + 0,0,0,-494,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-92,-224,-302,0, - 0,-336,0,0,0,-497,0,0,0,0, - 0,0,0,-319,-253,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-303,0,0,-130, - 0,-307,0,0,0,-145,0,0,0,0, - 0,-156,-309,-286,0,0,-216,0,0,0, - 0,0,0,0,-320,0,0,0,0,0, - 0,0,0,0,0,-438,0,-457,0,0, - 0,-321,-60,0,-146,0,0,0,-322,-498, - 0,0,0,0,-28,0,0,0,0,0, - -323,0,0,0,0,0,0,-15,0,0, - 0,0,0,0,0,0,0,0,-133,0, - 0,0,0,-327,-339,0,-85,0,0,0, - 0,-340,-150,0,0,0,0,0,-65,0, - 0,0,0,0,0,-115,0,0,0,0, - 0,0,0,0,-110,0,0,0,0,0, - 0,-135,0,0,0,0,0,-341,0,0, - 0,0,0,0,0,0,-332,0,-342,0, - 0,0,0,0,-343,0,-344,-345,0,0, - 0,0,0,0,0,0,0,-346,0,0, - 0,0,0,-347,0,0,-291,0,-348,0, - -349,0,0,0,0,0,0,0,0,0, - 0,0,-350,0,0,0,0,0,0,-107, - -441,0,0,0,0,0,0,0,0,0, - -262,0,0,0,-351,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-352,0,0,0,-20,0,-353,0, - 0,-263,0,0,0,-354,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-355,0,0,0,-296,0,0, - 0,0,0,0,0,0,0,0,0,-363, - 0,0,-499,0,0,0,0,0,0,0, - 0,0,0,0,-226,-486,0,0,-219,0, - 0,0,0,0,0,0,0,0,0,0, - -466,0,0,0,-409,0,0,0,0,-324, - -75,-371,0,0,0,0,0,0,-356,0, - 0,0,0,0,-370,-406,-357,-360,0,0, - 0,0,0,-325,-362,0,0,0,0,-11, - -364,0,0,0,0,0,0,0,0,-365, - 0,0,0,0,0,-366,0,0,0,0, - 0,0,0,0,0,-79,0,0,-368,0, - 0,0,0,0,0,-369,0,-87,0,0, - -379,0,-88,0,0,0,0,0,-22,-374, - 0,0,0,0,0,0,0,-376,0,-333, - -91,-228,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-395,-30, - 0,0,0,0,0,0,0,0,0,0, - 0,-93,0,-396,-397,0,-151,-147,-380,-95, - -398,-413,0,0,-458,0,-414,-372,0,0, - 0,0,-168,0,0,0,-419,0,0,0, + 0,0,-292,0,0,0,0,0,0,0, + 0,0,-336,0,0,0,0,-318,0,0, + 0,0,0,0,0,-155,0,0,-282,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-423,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-100,0,0,-424, - 0,-254,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-285,0,0,-428,0,-443,0, - 0,0,0,0,0,0,0,0,0,0, - -337,-436,0,0,-359,0,-437,-388,0,0, - 0,0,-444,-488,0,-452,-250,-456,0,0, - 0,0,0,-469,0,0,0,0,-472,0, - -473,0,0,0,0,0,0,0,0,0, - 0,-101,0,0,0,0,0,-478,0,-8, - 0,0,0,0,0,0,0,0,0,-485, - -491,0,0,0,0,0,0,0,0,0, - 0,0,0,-496,0,-421,0,-129,0,0, - 0,0,0,-501,0,0,0,0,0,0, - 0,0,0,0,-106,0,-377,0,0,0, - 0,0,0,0,-198,-202,-89,-284,0,0, - 0,0,0,0,0,-506,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-495,0,0,0,-23,0,0,0,-298, - 0,-90,-292,0,-227,0,0,0,0,0, - 0,-301,0,-393,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-317,-373,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-407,0,0,0,0,0,-405,-132,-422, - 0,0,0,-281,0,0,-451,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-425,-431,-427,0,0,0,0, - 0,0,0,-430,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-459, - 0,0,0,0,0,0,-440,0,0,0, - 0,0,0,0,0,0,0,-255,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-256,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-257,0,0,0,-447, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-300,0,-297, - -471,0,-128,0,0,0,0,-232,0,-450, - 0,0,0,0,-481,0,-331,-476,0,0, - 0,0,0,0,0,-384,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-480, - 0,0,0,0,-449,0,-453,0,0,0, - 0,0,0,-460,-367,0,0,0,0,-237, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-461,-462, - 0,0,0,0,-503,0,-463,-474,0,0, - 0,0,0,0,0,0,0,0,0,0, - -475,0,0,0,0,0,-37,0,0,0, - 0,0,0,0,0,0,0,0,-415,0, - 0,-489,0,0,0,0,0,0,0,0, - 0,0,0,0,-515,0,0,0,-446,-477, - 0,-487,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-508, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-490,0,-504,0,0,0, - -249,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-509,0,0, - 0,0,0,0,0,0,-479,0,0,0, - 0,0,-511,0,0,0,0,0,-513,0, - 0,0,0,0,0,0,0,-483,0,-516, - 0,0,0,-288,0,-520,-432,0,0,0, + 0,0,0,0,0,0,0,-191,0,0, + -192,0,-319,0,0,0,-157,-269,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-203,0,-5,0,0,0,0,-158,0, + -111,0,0,0,0,0,0,0,-96,0, + 0,-62,0,0,0,0,-487,0,0,0, + -264,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-159, + 0,0,0,0,0,0,-258,0,0,0, + 0,-199,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-160, + 0,0,0,0,0,0,0,0,0,0, + -150,0,0,0,0,-304,0,0,-161,-114, + 0,0,0,0,0,0,0,-287,0,0, + 0,0,0,0,0,0,0,-163,-286,0, + 0,-164,0,0,0,-148,0,0,0,0, + 0,-146,-301,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-265,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-312, + 0,0,0,0,0,-266,0,0,0,0, + -412,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-330,0, + 0,0,0,0,-208,0,0,0,0,0, + 0,0,0,0,0,0,0,-259,0,0, + 0,0,-229,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -115,0,0,0,0,0,0,0,-324,-143, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-176,0,0,0,0,0,0,0, + 0,0,-190,0,0,0,0,-177,-468,-85, + 0,0,0,0,0,0,0,0,0,0, + -400,0,0,0,-156,-317,-230,0,-373,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-260,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-178,0,0,0, + 0,-261,0,0,0,0,-306,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-1,0,0,0,0,0, + 0,0,0,-392,0,-165,0,-179,-325,0, + 0,-216,0,0,-180,0,0,0,0,-313, + 0,0,0,0,0,0,0,0,0,-310, + -129,-181,0,-182,0,0,0,-107,0,0, + -338,0,0,0,0,-183,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -184,0,0,-333,-185,0,0,0,0,0, + 0,0,0,0,-262,0,0,0,0,-469, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-512,0,-316,0,0,0, + 0,-263,0,0,0,0,-363,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-519,0,0,0,0, - 0,-464,0,0,0,0,0,-433,0,0, - 0,0,0,0,0,-233,0,0,0,0, + 0,0,0,0,-228,0,0,0,0,0, + 0,-337,0,-296,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-186,-500,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-434,0,0,0, + 0,0,0,0,0,0,-374,0,0,0, + -6,0,0,0,0,0,0,0,0,0, + 0,0,0,-316,-188,-439,0,0,0,0, + 0,0,0,0,0,-189,-232,-314,-519,0, + 0,0,0,0,0,-405,0,0,0,0, + 0,-426,-428,0,0,0,0,0,0,0, + -193,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-377,-371, + 0,0,-28,0,0,0,0,0,0,0, + 0,0,0,-393,0,0,0,-30,0,0, + 0,0,0,0,0,0,0,0,0,0, + -233,-431,0,-332,0,0,0,0,0,0, + 0,0,-195,-200,-92,0,0,0,0,0, + 0,-495,0,0,0,0,0,0,0,0, + 0,-407,0,-201,-204,0,-207,0,-409,0, + 0,0,0,-16,0,-460,0,0,0,-209, + 0,0,0,0,0,0,0,0,-372,0, + -432,0,-210,0,0,0,0,0,0,0, + 0,-19,0,0,0,0,0,0,0,0, + -211,-220,0,-15,0,0,0,0,0,0, + 0,0,0,0,0,-130,0,0,0,-245, + 0,-477,-385,0,-128,0,0,0,-246,0, + -289,0,-294,0,0,0,-388,0,0,0, + -291,0,-511,0,0,0,-498,0,-295,0, + 0,0,-302,0,-151,0,-422,0,0,0, + 0,-447,0,0,0,0,0,0,0,0, + 0,-37,0,0,0,0,0,-451,-485,0, + 0,-303,0,0,0,-307,0,0,0,0, + 0,0,0,0,0,-133,0,0,0,0, + 0,-423,0,0,0,0,0,-444,0,0, + 0,0,0,-452,0,0,0,0,0,0, + 0,0,0,-499,0,0,-458,0,0,0, + 0,-441,0,-309,0,0,0,0,-135,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-320,-321,0,-448,0,0,-370,0,0, + 0,0,0,0,-322,0,0,0,0,0, + 0,0,0,0,0,-488,-323,-509,0,0, + 0,0,0,0,0,0,0,0,0,-327, + 0,0,0,0,0,0,0,0,0,0, + 0,-339,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-219,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-118,0,0,0,0,-340,0,0,0, + 0,0,0,0,-341,-342,-18,0,0,-253, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-522,0,0,0,0,-435,0,0, + 0,0,-450,0,0,0,-147,0,0,0, + -343,-344,0,-345,0,0,-346,-347,0,-71, + 0,0,0,-348,-349,0,-481,0,0,-504, + -350,-61,0,0,0,0,0,0,0,-351, + -254,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-352,-11,0, + 0,0,0,0,0,0,0,0,-353,0, + -250,0,-354,-355,-356,0,-169,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -357,0,0,0,-360,0,0,0,0,0, + 0,0,0,0,-399,0,0,0,0,-362, + -364,-365,0,0,-366,0,0,-368,0,0, + 0,0,0,0,0,0,0,0,-255,0, + 0,0,0,-376,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-256,0,0,0,0,-395,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-396,-516, + -397,-257,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-285,0,-398,-413,-414,0, + -496,0,0,0,0,-234,-281,-235,-331,0, + 0,0,0,0,-415,-359,-454,0,-420,-461, + 0,-425,-429,0,-437,-438,-445,-453,0,-457, + 0,0,0,0,0,0,-470,-237,0,0, + -462,0,0,0,0,0,0,0,0,0, + 0,-473,0,0,0,0,0,-474,0,0, + 0,0,0,0,0,-124,0,0,0,0, + 0,0,-479,0,0,0,0,0,0,0, + 0,0,0,-486,0,-440,0,0,0,0, + -492,0,0,0,-497,-502,0,0,0,0, + 0,0,0,0,-384,0,0,0,0,-507, + 0,0,0,0,0,0,0,-168,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -463,0,0,-34,-8,0,0,0,0,0, + -446,0,0,0,0,-467,0,0,0,0, + 0,0,0,0,0,0,0,0,-464,-380, + 0,0,0,-20,0,0,0,0,0,-512, + 0,0,0,0,0,0,0,-89,0,0, + 0,0,0,0,0,-475,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -170,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-23,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-227,-119,0,0,0,0,0, + 0,0,0,0,0,0,0,-476,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-22,0,0,0,-490,-46,0, + 0,0,0,0,-90,0,0,0,0,0, + 0,0,0,0,0,0,-297,0,0,0, + 0,0,0,0,0,0,0,0,-491,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-132,0,0, + -505,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-510,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-514,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-170,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, -171,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-172,0,0,0,0,0,0,0, + 0,0,0,-172,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-173,0,0,0,0,0, + 0,0,0,0,0,0,-173,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-174,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-175,0, + 0,0,0,0,0,0,0,0,0,-174, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -241,0,0,0,0,0,0,0,0,0, + 0,0,-175,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-251,0,0,0,0,0,0,0, + 0,0,0,0,0,-241,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-252,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-326,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-403,0, + 0,0,0,0,0,0,0,0,-251,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -167,0,0,0,0,0,0,0,0,0, + 0,-252,0,0,0,0,-459,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-389,0,0,0,0,0,0,0,0, - 0,0,0,-31,0,0,0,0,0,0, - 0,0,0,0,0,-448,0,0,0,0, - 0,0,0,0,0,0,0,-73,0,0, - 0,0,0,0,0,0,0,0,0,-470, - 0,0,-385,0,0,0,0,0,-465,0, + 0,0,0,0,-300,0,0,0,0,0, + 0,0,-517,0,0,0,-433,0,0,0, + -521,0,-326,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-386,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-367,0,0,0,0,0,0,0,0, + 0,-489,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-394,0,0,0,0,0, + 0,0,0,0,0,0,0,-249,0,0, + 0,0,0,0,0,0,0,0,0,0, + -424,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -403,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-416,0,0,0,0,0,0, + 0,0,0,0,0,-417,0,0,0,0, + 0,0,0,0,0,0,0,-139,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-478, + 0,0,0,0,0,0,0,0,-231,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-118, + 0,0,0,0,0,0,0,-434,0,-435, 0,0,0,0,0,0,0,0,0,0, - 0,-143,0,0,0,0,0,0,0,0, - 0,0,0,-6,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-502,0, - -99,0,0,0,0,0,-46,0,0,0, - 0,0,0,0,0,0,-144,0,0,0, + -288,0,0,0,0,0,0,0,0,0, + -480,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-484,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-387,0,0,0,0,0,0,0,0, + 0,-436,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-513,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-465,0,-520,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-404,0,0,0,0,0,0, + 0,0,0,-471,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-523,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-482,0,-299,0,-522,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-47,0,0,0, - 0,0,0,0,0,-314,0,0,0,0, - 0,0,0,0,0,0,0,0,-418,0, - 0,0,0,0,0,0,0,0,0,-52, + 0,0,0,-389,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -59,0,0,0,0,-394,0,0,0,0, + 0,0,0,0,-120,0,0,0,0,0, + 0,0,0,0,0,0,0,-31,0,0, + 0,0,0,0,0,0,0,0,0,0, + -466,0,0,0,0,0,0,0,0,0, + 0,0,-449,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-503,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-99,0,0,0,0,0, + 0,-483,0,0,0,0,0,-493,0,-515, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-74,0,0, + 0,-47,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-134,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-234,0,0,0,0,0,0,0, - 0,-514,0,0,0,0,0,0,0,0, - -194,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-52,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-222,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-383,0,0,0,0, - 0,0,0,0,-482,0,0,0,0,0, - 0,0,0,-329,0,0,0,0,0,0, + 0,0,0,0,0,-59,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-335,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-235, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-429,0,0,0, + 0,0,0,0,0,0,0,0,-74,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-61,0,0, 0,0,0,0,0,0,0,0,0,0, - -119,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-139, + -134,0,0,0,0,0,-144,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-166,0, 0,0,0,0,0,0,0,0,0,0, - 0,-236,0,0,0,-505,-492,0,0,0, + 0,0,0,-194,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -401,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-408, - 0,0,0,0,0,0,0,0,0,-165, - 0,0,-231,0,0,0,0,0,0,0, + 0,0,0,0,-222,0,0,0,0,0, + 0,0,0,0,-418,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-244,0,0,-416,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-299, - 0,0,-417,0,0,0,0,0,0,0, - 0,-420,0,0,0,0,0,0,0,0, - 0,0,-386,0,0,-387,0,0,0,0, - 0,0,0,0,-404,0,0,0,0,0, - 0,0,-521,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-329,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-335, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-430,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-244,0,-506,0,0,0, + 0,0,0,0,0,-166,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-236,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-401, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-408,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-383,0,0,-419,0,0,0, + 0,0,0,0,0,0,0,0,-421,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -540,7 +560,10 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -550,541 +573,569 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface BaseAction { public final static char baseAction[] = { - 173,4,195,196,197,136,89,33,68,39, - 173,173,174,174,137,137,15,15,15,15, - 15,15,15,15,16,16,16,14,10,10, - 8,8,8,8,8,1,69,69,5,5, - 11,11,11,11,49,49,138,138,139,62, - 62,47,47,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17, - 17,17,17,140,140,140,18,18,18,18, - 18,18,18,18,18,18,18,18,18,19, - 19,178,175,175,176,176,179,142,142,180, - 180,177,177,143,141,141,20,20,21,21, - 23,23,23,24,24,24,24,25,25,25, - 26,26,26,27,27,27,27,27,29,29, - 29,30,30,32,32,34,34,35,35,36, - 36,37,37,41,41,40,40,40,40,40, - 40,40,40,40,40,40,40,40,38,38, - 28,144,144,103,103,106,106,98,198,198, - 80,80,80,80,80,80,80,80,80,81, - 81,81,82,82,57,57,181,181,83,83, - 83,117,117,84,84,84,84,85,85,85, - 85,85,86,70,70,70,70,70,70,70, - 51,51,51,51,51,108,108,109,109,48, - 22,22,22,22,22,44,44,93,93,93, - 93,93,151,151,146,146,146,146,146,147, + 174,5,137,90,90,34,34,69,69,40, + 40,174,174,175,175,138,138,1,1,16, + 16,16,16,16,16,16,16,17,17,17, + 15,11,11,9,9,9,9,9,2,70, + 70,6,6,12,12,12,12,50,50,139, + 139,140,63,63,48,48,18,18,18,18, + 18,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18,18,141,141,141,19, + 19,19,19,19,19,19,19,19,19,19, + 19,19,20,20,179,176,176,177,177,180, + 143,143,181,181,178,178,144,142,142,21, + 21,22,22,24,24,24,25,25,25,25, + 26,26,26,27,27,27,28,28,28,28, + 28,30,30,30,31,31,33,33,35,35, + 36,36,37,37,38,38,42,42,41,41, + 41,41,41,41,41,41,41,41,41,41, + 41,39,39,29,145,145,104,104,107,107, + 99,196,196,81,81,81,81,81,81,81, + 81,81,82,82,82,83,83,58,58,182, + 182,84,84,84,118,118,85,85,85,85, + 86,86,86,86,86,87,71,71,71,71, + 71,71,71,52,52,52,52,52,109,109, + 110,110,49,23,23,23,23,23,45,45, + 94,94,94,94,94,152,152,147,147,147, 147,147,148,148,148,149,149,149,150,150, - 150,94,94,94,94,94,95,95,95,91, - 12,13,13,13,13,13,13,13,13,13, - 13,13,90,90,90,121,121,121,121,121, - 119,119,119,92,120,120,153,153,152,152, - 123,123,124,43,43,42,74,74,75,75, - 77,78,76,45,53,46,154,154,54,52, - 73,73,155,155,145,145,125,125,88,88, - 156,156,65,65,65,59,59,58,66,66, - 79,79,56,56,56,96,96,105,104,104, - 61,61,60,60,55,55,50,107,107,107, - 99,99,99,100,101,101,101,102,102,110, - 110,110,112,112,111,111,199,199,97,97, - 183,183,183,183,183,127,63,63,158,182, - 182,128,128,128,128,184,184,31,31,118, - 129,129,129,129,200,200,113,113,122,122, - 122,160,161,161,161,161,161,161,161,161, - 161,187,187,185,185,186,186,162,162,162, - 162,163,188,115,114,114,189,189,164,164, - 131,131,130,130,130,201,201,9,190,190, - 191,165,157,157,166,166,167,168,168,6, - 6,7,170,170,170,170,170,170,170,170, - 170,170,170,170,170,170,170,170,170,170, - 170,170,170,170,170,170,170,170,170,170, - 170,170,170,170,170,170,170,170,170,170, - 170,170,170,170,64,67,67,171,171,132, - 132,133,133,133,133,133,133,2,3,172, - 172,169,169,134,134,134,71,72,87,159, - 159,116,116,192,192,192,135,135,126,126, - 193,193,1410,2470,2463,726,1514,4674,31,986, - 28,32,27,29,2734,260,26,24,53,1995, - 108,77,78,110,2282,2004,2042,2039,2077,2053, - 56,2115,2091,272,2153,4427,2129,2156,2158,145, - 585,1630,161,146,56,1769,1094,33,726,4477, - 4695,31,986,28,32,60,29,2285,869,3467, - 1094,33,726,229,4799,31,986,28,32,27, - 29,1848,260,26,24,53,1995,108,77,78, - 110,378,2004,2042,2039,2077,2053,1620,2115,2091, - 1378,2879,275,274,273,232,227,228,3467,2470, - 2463,726,1537,4799,31,986,28,32,27,29, - 1848,260,26,24,53,1995,108,77,78,85, - 239,242,245,248,2466,1807,3242,3157,726,34, - 493,717,1495,498,1094,33,726,4531,4850,31, - 986,28,32,27,29,1754,2483,506,2718,2271, - 2316,2877,3039,3336,2292,1094,33,726,2267,4799, - 31,986,28,32,1890,29,1848,260,26,24, - 53,1995,108,77,78,110,346,2004,2042,2039, - 2077,2053,376,2115,2091,64,2153,1031,2129,2156, - 2158,145,581,861,513,146,885,4761,581,670, - 1094,33,726,4761,2662,31,986,1504,32,514, - 2292,1094,33,726,2267,4799,31,986,28,32, - 1890,29,1848,260,26,24,53,1995,108,77, - 78,110,346,2004,2042,2039,2077,2053,56,2115, - 2091,574,2153,4748,2129,2156,2158,145,3551,673, - 513,146,1635,1047,335,670,1094,33,726,1943, - 2662,31,986,40,32,514,3467,1094,33,726, - 2345,4799,31,986,28,32,27,29,1848,260, - 26,24,53,1995,108,77,78,110,509,2004, - 2042,2039,2077,2855,4380,2763,1094,33,726,2267, - 4799,31,986,28,32,1890,29,1848,260,26, - 24,53,1995,108,77,78,110,346,2004,2042, - 2039,2077,2053,1722,2115,2091,2167,2153,785,2129, - 2156,2158,145,3003,96,513,146,3184,2206,785, - 670,1094,33,726,509,2662,31,986,3208,32, - 514,2806,1094,33,726,3079,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,108, - 77,78,110,2191,2004,2042,2039,2077,2053,2258, - 2115,2091,2167,2153,2965,2129,2156,2158,145,3069, - 2282,381,146,1807,508,277,726,3467,1094,33, - 726,185,4799,31,986,28,32,27,29,1848, - 260,26,24,53,1995,108,77,78,110,384, - 2004,2042,2039,2077,2873,2878,1094,33,726,510, - 4799,31,986,28,32,27,29,1848,260,26, - 24,53,1995,108,77,78,110,3434,2004,2042, - 2039,2077,2053,3554,2115,2091,1645,2153,2743,2129, - 2156,2158,145,1807,282,381,146,68,1627,43, - 726,520,1927,42,986,2283,1094,33,726,385, - 4695,31,986,28,32,59,29,390,424,3143, - 1094,33,726,382,4799,31,986,28,32,27, - 29,1848,260,26,24,53,1995,108,77,78, - 110,219,2004,2042,2039,2077,2053,848,2115,2091, - 317,2153,870,2129,2156,2158,145,44,1674,381, - 146,3248,1094,33,726,3031,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,108, - 77,78,110,386,2004,2042,2039,2077,2053,3567, - 2115,2091,92,2153,1746,2129,2156,2158,145,1866, - 1470,161,146,3248,1094,33,726,2876,4799,31, - 986,28,32,27,29,1848,260,26,24,53, - 1995,108,77,78,110,3077,2004,2042,2039,2077, - 2053,1798,2115,2091,760,2153,4761,2129,2156,2158, - 145,1295,1406,375,146,63,1406,379,3248,1094, - 33,726,3031,4799,31,986,28,32,27,29, - 1848,260,26,24,53,1995,108,77,78,110, - 3554,2004,2042,2039,2077,2053,56,2115,2091,2282, - 2153,4589,2129,2156,2158,145,328,336,375,146, - 412,1094,33,726,1826,4850,31,986,28,32, - 62,29,937,1146,554,2483,1324,1146,3248,1094, - 33,726,442,4799,31,986,28,32,27,29, - 1848,260,26,24,53,1995,108,77,78,110, - 374,2004,2042,2039,2077,2053,378,2115,2091,785, - 2153,519,2129,2156,2158,145,332,338,375,146, - 337,338,833,3209,1094,33,726,1511,4799,31, - 986,28,32,27,29,1848,260,26,24,53, - 1995,108,77,78,110,373,2004,2042,2039,2077, - 2053,237,2115,2091,885,2153,2285,2129,2156,2234, - 167,2720,1094,33,726,1155,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,108, - 77,78,110,2191,2004,2042,2039,2077,2053,326, - 2115,2091,451,2153,581,2129,2156,2158,145,4761, - 1093,144,146,1630,3342,371,329,3308,1807,782, - 388,726,331,1807,508,281,726,3248,1094,33, - 726,1459,4799,31,986,28,32,27,29,1848, - 260,26,24,53,1995,108,77,78,110,34, - 2004,2042,2039,2077,2053,1630,2115,2091,1927,2153, - 335,2129,2156,2158,145,1807,3207,157,146,3248, - 1094,33,726,438,4799,31,986,28,32,27, - 29,1848,260,26,24,53,1995,108,77,78, - 110,3549,2004,2042,2039,2077,2053,309,2115,2091, - 1131,2153,455,2129,2156,2158,145,391,424,156, - 146,3248,1094,33,726,574,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,108, - 77,78,110,3549,2004,2042,2039,2077,2053,1630, - 2115,2091,1927,2153,454,2129,2156,2158,145,159, - 1217,155,146,3248,1094,33,726,142,4799,31, - 986,28,32,27,29,1848,260,26,24,53, - 1995,108,77,78,110,3549,2004,2042,2039,2077, - 2053,308,2115,2091,1927,2153,56,2129,2156,2158, - 145,4812,843,154,146,3248,1094,33,726,1641, - 4799,31,986,28,32,27,29,1848,260,26, - 24,53,1995,108,77,78,110,327,2004,2042, - 2039,2077,2053,305,2115,2091,528,2153,330,2129, - 2156,2158,145,3306,1279,153,146,3248,1094,33, - 726,2870,4799,31,986,28,32,27,29,1848, - 260,26,24,53,1995,108,77,78,110,358, - 2004,2042,2039,2077,2053,2139,2115,2091,528,2153, - 2279,2129,2156,2158,145,2803,400,152,146,3248, - 1094,33,726,1898,4799,31,986,28,32,27, - 29,1848,260,26,24,53,1995,108,77,78, - 110,357,2004,2042,2039,2077,2053,2215,2115,2091, - 528,2153,355,2129,2156,2158,145,2968,2991,151, - 146,3248,1094,33,726,2193,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,108, - 77,78,110,302,2004,2042,2039,2077,2053,356, - 2115,2091,2285,2153,414,2129,2156,2158,145,2803, - 675,150,146,3248,1094,33,726,2969,4799,31, - 986,28,32,27,29,1848,260,26,24,53, - 1995,108,77,78,110,492,2004,2042,2039,2077, - 2053,1630,2115,2091,2957,2153,1879,2129,2156,2158, - 145,2803,3004,149,146,3248,1094,33,726,2849, - 4799,31,986,28,32,27,29,1848,260,26, - 24,53,1995,108,77,78,110,389,2004,2042, - 2039,2077,2053,404,2115,2091,1927,2153,56,2129, - 2156,2158,145,4831,3305,148,146,3248,1094,33, - 726,3315,4799,31,986,28,32,27,29,1848, - 260,26,24,53,1995,108,77,78,110,284, - 2004,2042,2039,2077,2053,304,2115,2091,2285,2153, - 4229,2129,2156,2158,145,3091,3316,147,146,3248, - 1094,33,726,3317,4799,31,986,28,32,27, - 29,1848,260,26,24,53,1995,108,77,78, - 110,380,2004,2042,2039,2077,2053,1547,2115,2091, - 2285,2153,4642,2129,2156,2158,145,3077,2853,162, - 146,3248,1094,33,726,3311,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,108, - 77,78,110,3343,2004,2042,2039,2077,2053,56, - 2115,2091,2285,2153,4727,2129,2156,2158,145,2803, - 1468,142,146,3388,1094,33,726,2348,4799,31, - 986,28,32,27,29,1848,260,26,24,53, - 1995,108,77,78,110,4207,2004,2042,2039,2077, - 2053,520,2115,2091,785,2153,1630,2129,2156,2158, - 145,2974,396,192,146,3467,1094,33,726,3203, - 4799,31,986,28,32,27,29,1848,260,26, - 24,53,1995,108,77,78,110,310,2004,2042, - 2039,2077,2053,519,2115,2091,785,2153,2194,2129, - 2156,2234,167,3467,1094,33,726,3203,4799,31, - 986,28,32,27,29,1848,260,26,24,53, - 1995,108,77,78,110,3703,2004,2042,2039,2077, - 2053,427,2115,2091,839,2153,1805,2129,2156,2234, - 167,3467,1094,33,726,54,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,108, - 77,78,110,291,2004,2042,2039,2077,2053,1615, - 2115,2091,667,2153,2609,2129,2156,2234,167,3467, - 1094,33,726,1482,4799,31,986,28,32,27, - 29,1848,260,26,24,53,1995,108,77,78, - 110,420,2004,2042,2039,2077,2053,503,2115,2091, - 90,2153,104,2129,2156,2234,167,3467,1094,33, - 726,1586,4799,31,986,28,32,27,29,1848, - 260,26,24,53,1995,108,77,78,110,3097, - 2004,2042,2039,2077,2053,2094,2115,2091,89,2153, - 104,2129,2156,2234,167,3506,1094,33,726,1681, - 4799,31,986,28,32,27,29,1848,260,26, - 24,53,1995,108,77,78,110,419,2004,2042, - 2039,2077,2053,2351,2115,2091,2864,2153,1684,2129, - 2156,2234,167,3467,1094,33,726,3115,4799,31, - 986,28,32,27,29,1848,260,26,24,53, - 1995,108,77,78,110,422,2004,2042,2039,2077, - 2053,848,2115,2091,1664,2153,65,2129,2977,2285, - 2607,3467,1094,33,726,3116,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,108, - 77,78,110,2376,2004,2042,2039,2077,2053,2866, - 2115,2091,25,2153,2850,2904,3467,1094,33,726, - 495,4799,31,986,28,32,27,29,1848,260, - 26,24,53,1995,108,77,78,110,3298,2004, - 2042,2039,2077,2053,2445,2115,2886,3545,782,388, - 726,842,2705,1807,508,279,726,2803,3299,234, - 260,240,1094,33,726,728,3667,31,986,28, - 32,342,29,1630,3467,1094,33,726,272,4799, - 31,986,28,32,27,29,1848,260,26,24, - 53,1995,108,77,78,110,1454,2004,2042,2039, - 2077,2053,2919,2833,1585,65,2267,1857,229,4421, - 2285,2267,229,1807,508,3202,726,70,448,323, - 1257,325,4621,3307,346,301,318,1107,1179,225, - 2846,295,1807,782,388,726,442,275,274,273, - 232,227,228,353,241,227,228,2974,396,868, - 65,4404,1202,213,903,210,1630,229,203,211, - 212,214,99,447,2272,239,242,245,248,2466, - 204,205,293,1462,588,294,717,14,206,207, - 208,209,296,297,298,299,313,2958,280,244, - 227,228,2743,2718,2271,2316,2877,3039,3336,872, - 1094,33,726,3550,3667,31,986,28,32,342, - 29,3467,1094,33,726,3318,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,108, - 77,78,110,3301,2004,2042,2039,2797,2285,1807, - 782,388,726,1627,12,100,844,1519,2502,726, - 1742,4510,3110,508,277,726,1343,323,1257,325, - 2647,46,1674,3303,318,1107,2857,782,388,726, - 428,72,451,3110,508,3231,726,51,354,3547, - 536,2990,314,441,2205,2229,1313,2553,293,52, - 65,294,437,1477,2840,655,2803,272,347,1590, - 1553,352,3467,1094,33,726,2499,4799,31,986, - 28,32,27,29,1848,260,26,24,53,1995, - 108,77,78,110,3573,2004,2042,2039,2798,3467, - 1094,33,726,3569,4799,31,986,28,32,27, - 29,1848,260,26,24,53,1995,108,77,78, - 110,1541,2004,2042,2039,2808,276,274,273,2370, - 3467,1094,33,726,300,4799,31,986,28,32, - 27,29,1848,260,26,24,53,1995,108,77, - 78,110,368,2004,2042,2039,2814,1576,2803,3570, - 402,2267,412,1094,33,726,2282,4850,31,986, - 28,32,61,29,2285,3467,1094,33,726,225, - 4799,31,986,28,32,27,29,1848,260,26, - 24,53,1995,108,77,78,110,3572,2004,2735, - 2930,4404,1704,213,2267,210,2191,71,203,211, - 212,214,2268,3302,758,448,3345,2846,295,4621, - 204,205,225,522,588,3319,285,215,206,207, - 208,209,296,297,298,299,3313,278,1807,782, - 388,726,3567,65,4404,2191,213,684,210,3568, - 2282,203,211,212,214,945,1596,388,726,293, - 1756,3582,294,204,205,3399,1595,588,3662,429, - 215,206,207,208,209,296,297,298,299,3574, - 236,260,418,2267,2976,2187,51,2857,782,388, - 726,354,2856,2846,1596,388,726,293,52,65, - 294,225,1477,2191,1561,2951,65,521,3399,1889, - 1061,347,1590,1553,352,2958,278,2486,272,345, - 393,424,3684,4404,51,213,2267,210,1451,229, - 203,211,212,214,1798,293,52,65,294,1827, - 48,1061,204,205,225,2760,588,2867,2869,215, - 206,207,208,209,296,297,298,299,2964,392, - 424,237,227,228,2989,3392,4404,1406,213,1992, - 210,2344,1385,203,211,212,214,343,274,273, - 445,2205,2229,2852,2273,204,205,3399,2277,588, - 2862,3320,215,206,207,208,209,296,297,298, - 299,3467,1094,33,726,2860,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,108, - 77,78,110,3741,2004,2042,2819,1626,1146,2984, - 3399,2516,3467,1094,33,726,1776,4799,31,986, - 28,32,27,29,1848,260,26,24,53,1995, - 108,77,78,110,2990,2004,2042,2821,1686,1094, - 33,726,4656,3667,31,986,28,32,342,29, - 1927,334,338,2210,1094,33,726,3550,3667,31, - 986,28,32,342,29,2981,2974,396,229,1816, - 2652,33,726,728,4568,31,986,28,32,342, - 29,1807,508,3261,726,1895,782,388,726,182, - 3309,65,1927,286,1680,1142,323,1257,325,3600, - 247,227,228,318,1107,2007,1925,2994,3630,1061, - 722,323,1257,325,2285,3631,272,354,318,1107, - 1934,3078,1721,1687,2267,335,1286,323,1257,325, - 3084,198,354,158,318,1107,3090,347,1590,1553, - 352,523,225,3400,200,2330,65,56,1977,3094, - 740,3224,347,1590,1553,352,2998,2544,65,2333, - 524,1546,3553,65,4404,4308,213,3278,210,3012, - 3101,203,211,212,214,3213,274,273,3589,3316, - 2285,65,2278,204,205,2650,3857,588,287,1680, - 14,206,207,208,209,296,297,298,299,3107, - 1651,1094,33,726,728,4568,31,986,28,32, - 342,29,65,88,3186,3187,2729,2862,1547,1406, - 65,3191,3195,4642,2772,1406,1385,3650,1927,383, - 229,415,2663,3467,1094,33,726,1924,4799,31, - 986,28,32,27,29,1848,260,26,24,53, - 1995,108,77,78,86,2571,335,13,323,1257, - 325,354,250,227,228,318,1107,197,1879,1094, - 33,726,728,3667,31,986,28,32,342,29, - 1146,347,1590,1553,352,95,1146,65,868,2330, - 3603,2656,3467,1094,33,726,4308,4799,31,986, - 28,32,27,29,1848,260,26,24,53,1995, - 108,77,78,110,87,2004,2742,2288,532,2857, - 782,388,726,3436,338,312,323,1257,325,3702, - 338,2285,3196,318,1107,1,225,3199,1927,532, - 286,1680,158,486,1406,1002,3200,2360,3321,2194, - 272,1061,2920,183,3584,1603,868,225,3369,916, - 213,572,210,158,55,202,211,212,214,2608, - 1687,172,3067,2920,183,158,2695,406,3669,3369, - 1705,213,426,210,2267,1926,202,211,212,214, - 3288,3289,172,312,186,170,171,173,174,175, - 176,177,225,184,3083,1146,1927,2453,1530,75, - 274,273,2267,1002,3551,187,170,171,173,174, - 175,176,177,1603,4404,65,213,2285,210,3087, - 2419,203,211,212,214,65,65,3728,65,881, - 2817,2267,1125,204,205,201,3697,588,3720,338, - 516,206,207,208,209,296,297,298,299,225, - 446,5344,2857,782,388,726,3607,782,388,726, - 2490,2705,3758,65,2267,581,2267,3089,235,260, - 4761,4404,65,213,2285,210,4323,5344,203,211, - 212,214,2419,272,225,3205,5344,272,65,65, - 204,205,4536,3138,588,500,5344,517,206,207, - 208,209,296,297,298,299,4404,3444,213,5344, - 210,5344,2285,203,211,212,214,229,65,3042, - 1927,335,2841,2267,2405,204,205,1927,1061,588, - 497,499,311,206,207,208,209,296,297,298, - 299,225,73,274,273,91,275,274,273,233, - 227,228,158,5344,65,2285,65,363,1847,199, - 1411,4486,2969,4404,65,213,3565,210,3095,2384, - 203,211,212,214,240,243,246,249,2466,5344, - 65,5344,204,205,3214,717,588,2285,3460,216, - 206,207,208,209,296,297,298,299,3467,1094, - 33,726,5344,4799,31,986,28,32,27,29, - 1848,260,26,24,53,1995,108,77,78,110, - 1939,2778,3467,1094,33,726,5344,4799,31,986, - 28,32,27,29,1848,260,26,24,53,1995, - 108,77,78,110,5344,2789,3467,1094,33,726, - 2285,4799,31,986,28,32,27,29,1848,260, - 26,24,53,1995,108,77,78,110,3772,2795, - 581,1964,2267,830,5344,4761,4761,2267,65,5344, - 2054,5344,2267,3700,1061,2099,5344,2995,3304,1061, - 225,2267,2923,5344,5344,2419,2194,1094,33,726, - 346,4568,31,986,28,32,342,29,158,346, - 1927,5344,4404,158,213,2285,210,2285,165,203, - 211,212,214,165,2285,173,335,3551,2662,532, - 3112,204,205,2675,1061,588,5344,2976,494,206, - 207,208,209,296,297,298,299,225,3767,4419, - 3788,5344,336,158,323,1257,325,70,163,2285, - 2285,319,1107,2920,183,1927,3576,2285,2285,3369, - 362,213,5344,210,5344,354,202,211,212,214, - 5344,2285,172,1840,2264,2278,3590,945,1596,388, - 726,3645,69,68,5344,349,1590,1553,352,259, - 67,2616,2285,532,4612,3107,170,171,173,174, - 175,176,177,98,2700,1927,5344,5344,51,2535, - 345,225,65,2267,532,5344,1453,158,5344,293, - 52,5344,294,2984,1477,58,789,2920,183,5344, - 65,346,225,3369,1495,213,5344,210,158,2737, - 202,211,212,214,194,2285,172,2285,2920,183, - 5344,3112,5344,3398,3369,1061,213,5344,210,3568, - 5344,202,211,212,214,5344,5344,172,2285,179, - 170,171,173,174,175,176,177,431,57,163, - 3695,532,5344,2857,782,388,726,5344,5344,2285, - 190,170,171,173,174,175,176,177,517,225, - 2966,103,532,5344,3112,158,2285,2450,1061,5344, - 5344,1061,5344,5344,272,2920,183,5344,5344,5344, - 225,3369,3876,213,5344,210,158,5344,202,211, - 212,214,163,526,172,158,2920,183,5344,3943, - 5344,5344,3369,5344,213,3604,210,5344,5344,202, - 211,212,214,5344,3201,172,5344,3284,170,171, - 173,174,175,176,177,603,5344,2264,5344,532, - 5344,2267,4761,74,274,273,5344,5344,193,170, - 171,173,174,175,176,177,689,225,5344,2419, - 532,5344,3112,158,5344,5344,1061,5344,2495,5344, - 5344,3661,1061,2920,183,5344,65,3297,225,3369, - 2267,213,5344,210,158,5344,202,211,212,214, - 163,5344,172,335,2920,183,158,2540,346,5344, - 3369,1061,213,5344,210,5344,3639,202,211,212, - 214,5344,5344,172,5344,189,170,171,173,174, - 175,176,177,775,5344,158,2662,532,2585,5344, - 5344,2692,1061,4486,362,3640,196,170,171,173, - 174,175,176,177,5344,225,5344,3354,2264,2278, - 5344,158,5344,5344,5344,5344,158,5344,5344,5344, - 5344,2920,183,5344,5344,3682,3647,3369,5344,213, - 5344,210,5344,5344,202,211,212,214,5344,5344, - 172,3467,1094,33,726,5344,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,108, - 77,78,84,195,170,171,173,174,175,176, - 177,3467,1094,33,726,5344,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,108, - 77,78,83,3467,1094,33,726,5344,4799,31, - 986,28,32,27,29,1848,260,26,24,53, - 1995,108,77,78,82,3467,1094,33,726,5344, - 4799,31,986,28,32,27,29,1848,260,26, - 24,53,1995,108,77,78,81,3467,1094,33, - 726,5344,4799,31,986,28,32,27,29,1848, - 260,26,24,53,1995,108,77,78,80,3467, - 1094,33,726,5344,4799,31,986,28,32,27, - 29,1848,260,26,24,53,1995,108,77,78, - 79,3323,1094,33,726,5344,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,108, - 77,78,106,3467,1094,33,726,5344,4799,31, - 986,28,32,27,29,1848,260,26,24,53, - 1995,108,77,78,112,3467,1094,33,726,5344, - 4799,31,986,28,32,27,29,1848,260,26, - 24,53,1995,108,77,78,111,3467,1094,33, - 726,5344,4799,31,986,28,32,27,29,1848, - 260,26,24,53,1995,108,77,78,109,3467, - 1094,33,726,5344,4799,31,986,28,32,27, - 29,1848,260,26,24,53,1995,108,77,78, - 107,3428,1094,33,726,5344,4799,31,986,28, - 32,27,29,1848,260,26,24,53,1995,87, - 77,78,1755,2652,33,726,728,3667,31,986, - 28,32,342,29,240,1094,33,726,728,3667, - 31,986,28,32,342,29,326,1094,33,726, - 728,3667,31,986,28,32,342,29,1887,1094, - 33,726,5344,4568,31,986,28,32,342,29, - 2630,5344,5344,2865,1061,5344,5344,2267,5344,3112, - 323,1257,325,1061,5344,5344,5344,318,1107,5344, - 5344,5344,323,1257,325,2419,5344,5344,158,318, - 1107,5344,5344,5344,323,1257,325,163,2293,5344, - 2544,318,1107,5344,336,5344,323,1257,325,5344, - 5344,5344,1286,321,1107,5344,5344,5344,5344,5344, - 1956,1094,33,726,3248,4568,31,986,28,32, - 342,29,1659,1094,33,726,2939,3667,31,986, - 28,32,342,29,154,1094,33,726,3070,3667, - 31,986,28,32,342,29,5344,5344,5344,2144, - 500,1472,5344,1061,5344,2267,4780,1972,1596,388, - 726,403,3735,5344,416,2663,336,1551,323,1257, - 325,2267,4780,225,5344,319,1107,158,5344,5344, - 320,1134,325,5344,5344,497,499,165,51,225, - 5344,5344,320,1134,325,4392,5344,407,5344,293, - 52,5344,294,5344,1477,5344,49,2003,1596,388, - 726,4392,5344,407,1714,408,2202,5344,588,2350, - 5344,4761,5344,5344,3187,5344,5344,5344,5344,976, - 1714,408,5344,532,588,5344,5344,5344,51,5344, - 2003,1596,388,726,5344,5344,5344,5344,5344,293, - 52,225,294,5344,1477,3779,49,158,5344,5344, - 5344,945,1596,388,726,5344,830,165,5344,729, - 2267,51,336,3369,5344,5344,5344,3560,779,5344, - 5344,1645,293,52,5344,294,5344,1477,2419,49, - 779,5344,51,5344,5344,354,5344,1645,945,1596, - 388,726,2407,293,52,5344,294,5344,1477,5344, - 49,409,411,5344,5344,349,1590,1553,352,2971, - 1596,388,726,993,5344,5344,5344,409,412,51, - 5344,5344,5344,65,5344,3407,1679,2267,4437,5344, - 293,52,2218,294,5344,1477,1061,800,5344,5344, - 51,945,1596,388,726,346,5344,5344,5344,5344, - 2737,293,52,362,294,5344,1477,5344,49,5344, - 158,5344,945,1596,388,726,3435,2264,2278,5344, - 165,2667,51,2662,5344,5344,2264,5344,2699,5344, - 2267,4761,5344,293,52,2675,294,5344,1477,1061, - 49,5344,5344,51,2938,1596,388,726,2419,5344, - 5344,5344,5344,2352,293,52,5344,294,5344,1477, - 5344,49,5344,158,5344,2003,1596,388,726,5344, - 5344,5344,5344,3737,2459,51,5344,5344,5344,5344, - 65,5344,335,5344,2267,5344,293,52,3796,294, - 5344,1477,5344,1855,5344,5344,51,945,1596,388, - 726,5344,346,5344,5344,5344,2486,293,52,5344, - 294,5344,1477,5344,1897,5344,5344,5344,2846,1596, - 388,726,3576,362,5344,5344,5344,2955,51,5344, - 2662,2846,1596,388,726,2711,3354,2264,2278,293, - 52,5344,294,5344,1477,5344,49,5344,5344,51, - 2846,1596,388,726,5344,5344,5344,5344,5344,2688, - 293,52,51,294,5344,1477,5344,2765,5344,880, - 1596,388,726,293,52,5344,294,5344,1477,5344, - 2240,51,2846,1596,388,726,3571,3112,5344,5344, - 2267,1061,293,52,5344,294,5344,1477,5344,983, - 51,2846,1596,388,726,5344,5344,5344,346,5344, - 5344,293,52,51,294,163,1477,5344,1170,527, - 2846,1596,388,726,293,52,5344,294,5344,1477, - 1038,2960,51,1100,532,5344,2662,532,5344,5344, - 5344,530,5344,293,52,5344,294,5344,1477,5344, - 2686,51,346,1162,5344,346,1224,532,158,5344, - 532,158,293,52,5344,294,5344,1477,2199,1170, - 1530,2624,5344,1286,2267,346,5344,532,346,5344, - 2662,158,1348,2662,158,1882,532,5344,2458,5344, - 3758,2199,2419,65,191,346,65,2267,5344,5344, - 2267,158,5344,2662,346,65,4296,5344,3050,2267, - 158,191,5344,65,5344,346,5344,2267,346,5344, - 191,5344,5344,4296,5344,5344,5344,346,5344,5344, - 5344,5344,4296,5344,5344,346,5344,5344,5344,5344, - 5344,5344,5344,2662,5344,5344,2662,5344,504,5344, - 5344,502,5344,5344,5344,2662,5344,5344,5344,5344, - 3467,5344,5344,2662,5344,5344,5344,500,531,5344, - 5344,5344,5344,3530,5344,5344,5344,5344,5344,3790, - 5344,5344,5344,5344,5344,5344,5344,5344,5344,5344, - 3595,5344,5344,5344,5344,5344,5344,5344,5344,3597, - 5344,5344,498,499,5344,0,496,3250,0,1, - 226,0,723,39,0,1,4284,0,1,997, - 0,1,5379,39,0,1,2322,0,1,1338, - 0,1512,39,0,1554,39,0,5575,238,0, - 5574,238,0,5685,238,0,5684,238,0,5602, - 238,0,5601,238,0,5600,238,0,5599,238, - 0,5598,238,0,5597,238,0,5596,238,0, - 5595,238,0,5615,238,0,5614,238,0,5613, - 238,0,5612,238,0,5611,238,0,5610,238, - 0,5609,238,0,5608,238,0,5607,238,0, - 5606,238,0,5605,238,0,238,723,39,0, - 238,5382,0,35,283,259,0,508,387,0, - 1512,50,0,1,5677,0,1,2961,0,5379, - 38,0,449,3016,0,508,30,0,295,3090, - 0,35,303,0,387,295,0,3028,322,0, - 5379,39,0,508,41,0,1,439,0,453, - 1333,0,452,1375,0,49,37,0,1,5382, - 226,0,1,39,226,0,5379,37,0,45, - 5380,0,45,37,0,1,1506,0,1,5615, - 0,1,5614,0,1,5613,0,1,5612,0, - 1,5611,0,1,5610,0,1,5609,0,1, - 5608,0,1,5607,0,1,5606,0,1,5605, - 0,1,1931,0,1,2367,0,5353,405,0, - 27,515,0,2549,128,0,5677,440,0,2961, - 440,0,5380,47,0,37,47,0,2787,93, - 0,388,33,0,387,30,0,508,387,30, - 0,39,1338,0,1,226,2985,0,5353,226, - 0,1,5382,0,1,39,0,234,3610,0, - 2549,130,0,2549,129,0,159,178,0,1, - 94,0,226,166,0,5379,5,37,0,5379, - 36,0,5677,97,0,2961,97,0,279,3882, - 0,188,3855,0 + 150,151,151,151,95,95,95,95,95,96, + 96,96,92,13,14,14,14,14,14,14, + 14,14,14,14,14,91,91,91,122,122, + 122,122,122,120,120,120,93,121,121,154, + 154,153,153,124,124,125,44,44,43,75, + 75,76,76,78,79,77,46,54,47,155, + 155,55,53,74,74,156,156,146,146,126, + 126,89,89,157,157,66,66,66,60,60, + 59,67,67,80,80,57,57,57,97,97, + 106,105,105,62,62,61,61,56,56,51, + 108,108,108,100,100,100,101,102,102,102, + 103,103,111,111,111,113,113,112,112,197, + 197,98,98,184,184,184,184,184,128,64, + 64,159,183,183,129,129,129,129,185,185, + 32,32,119,130,130,130,130,114,114,123, + 123,123,161,162,162,162,162,162,162,162, + 162,162,188,188,186,186,187,187,163,163, + 163,163,164,189,116,115,115,190,190,165, + 165,132,132,131,131,131,198,198,10,191, + 191,192,166,158,158,167,167,168,169,169, + 7,7,8,171,171,171,171,171,171,171, + 171,171,171,171,171,171,171,171,171,171, + 171,171,171,171,171,171,171,171,171,171, + 171,171,171,171,171,171,171,171,171,171, + 171,171,171,171,171,65,68,68,172,172, + 133,133,134,134,134,134,134,134,3,4, + 173,173,170,170,135,135,135,72,73,88, + 160,160,117,117,193,193,193,136,136,127, + 127,194,194,1534,924,3069,3060,927,2332,4979, + 34,981,31,35,30,32,3230,263,29,27, + 56,2583,111,80,81,113,690,2598,2698,2657, + 2722,2705,3095,2736,2724,275,2755,861,2751,2838, + 2875,148,1731,3819,164,149,861,950,38,1062, + 36,927,4782,5000,34,981,31,35,63,32, + 3617,38,1062,36,927,232,5066,34,981,31, + 35,30,32,2438,263,29,27,56,2583,111, + 80,81,113,861,2598,2698,2657,2722,2705,3342, + 2736,2724,3320,3389,278,277,276,235,230,231, + 3576,38,1062,36,927,1666,5066,34,981,31, + 35,30,32,2438,263,29,27,56,2583,90, + 80,81,242,245,248,251,3032,3143,158,38, + 1062,36,927,839,5119,34,981,31,35,30, + 32,393,425,507,512,222,1673,295,3071,939, + 3044,3004,3287,3714,3814,3765,2427,38,1062,36, + 927,2314,5066,34,981,31,35,2442,32,2438, + 263,29,27,56,2583,111,80,81,113,349, + 2598,2698,2657,2722,2705,1208,2736,2724,67,2755, + 3825,2751,2838,2875,148,992,305,514,149,1819, + 597,862,38,1062,36,927,3785,2615,34,981, + 1903,35,515,2427,38,1062,36,927,2314,5066, + 34,981,31,35,2442,32,2438,263,29,27, + 56,2583,111,80,81,113,349,2598,2698,2657, + 2722,2705,509,2736,2724,1658,2755,3606,2751,2838, + 2875,148,1720,2631,514,149,2031,339,862,38, + 1062,36,927,452,2615,34,981,43,35,515, + 290,2142,861,1916,38,1062,36,927,4891,4869, + 34,981,31,35,345,32,3008,38,1062,36, + 927,510,5066,34,981,31,35,30,32,2438, + 263,29,27,56,2583,111,80,81,113,1144, + 2598,2698,2657,2722,2705,59,2736,2724,1899,2755, + 2975,2751,2838,2875,148,1928,2236,147,149,2886, + 339,1043,326,1393,328,494,2721,38,397,324, + 1117,861,862,38,1062,36,927,5085,510,34, + 981,3077,35,1658,3053,38,1062,36,927,2314, + 5066,34,981,31,35,2442,32,2438,263,29, + 27,56,2583,111,80,81,113,349,2598,2698, + 2657,2722,2705,2995,2736,2724,2886,2755,788,2751, + 2838,2875,148,1515,969,514,149,953,2314,1047, + 38,2019,46,927,1609,2615,45,981,576,602, + 515,2580,38,1062,36,927,2525,5066,34,981, + 31,35,30,32,2438,263,29,27,56,2583, + 111,80,81,113,439,2598,2698,2657,2722,2705, + 685,2736,2724,456,2755,1432,2751,2838,2875,148, + 3093,1780,384,149,1623,1260,1309,2653,38,1062, + 36,927,2332,5066,34,981,31,35,30,32, + 2438,263,29,27,56,2583,111,80,81,113, + 387,2598,2698,2657,2722,2705,576,2736,2724,511, + 2755,366,2751,2838,2875,148,329,1213,384,149, + 2721,38,397,3617,38,1062,36,927,320,5066, + 34,981,31,35,30,32,2438,263,29,27, + 56,2583,111,80,81,113,385,2598,2698,2657, + 2722,2705,2642,2736,3393,3098,38,1062,36,927, + 388,5066,34,981,31,35,30,32,2438,263, + 29,27,56,2583,111,80,81,113,1775,2598, + 2698,2657,2722,2705,59,2736,2724,1237,2755,4745, + 2751,2838,2875,148,1009,443,384,149,1673,38, + 1814,1776,927,1673,38,285,389,978,2473,38, + 283,3434,38,1062,36,927,1868,5066,34,981, + 31,35,30,32,2438,263,29,27,56,2583, + 111,80,81,113,3122,2598,2698,2657,2722,2705, + 98,2736,2724,3232,2755,59,2751,2838,2875,148, + 556,2637,164,149,941,3434,38,1062,36,927, + 1814,5066,34,981,31,35,30,32,2438,263, + 29,27,56,2583,111,80,81,113,2446,2598, + 2698,2657,2722,2705,382,2736,2724,331,2755,2088, + 2751,2838,2875,148,2028,520,378,149,3434,38, + 1062,36,927,1272,5066,34,981,31,35,30, + 32,2438,263,29,27,56,2583,111,80,81, + 113,2411,2598,2698,2657,2722,2705,1464,2736,2724, + 788,2755,59,2751,2838,2875,148,2728,2501,378, + 149,2909,1673,38,934,391,927,2473,38,281, + 1768,3434,38,1062,36,927,3071,5066,34,981, + 31,35,30,32,2438,263,29,27,56,2583, + 111,80,81,113,37,2598,2698,2657,2722,2705, + 1464,2736,2724,377,2755,381,2751,2838,2875,148, + 47,2113,378,149,3165,38,1062,36,927,1336, + 5066,34,981,31,35,30,32,2438,263,29, + 27,56,2583,111,80,81,113,2593,2598,2698, + 2657,2722,2705,59,2736,2724,376,2755,686,2751, + 2838,2974,170,3434,38,1062,36,927,2902,5066, + 34,981,31,35,30,32,2438,263,29,27, + 56,2583,111,80,81,113,602,2598,2698,2657, + 2722,2705,59,2736,2724,1007,2755,1366,2751,2838, + 2875,148,1932,1876,160,149,1027,59,4836,374, + 1775,1770,1375,3142,334,3143,379,4945,3434,38, + 1062,36,927,2382,5066,34,981,31,35,30, + 32,2438,263,29,27,56,2583,111,80,81, + 113,3882,2598,2698,2657,2722,2705,3549,2736,2724, + 95,2755,1028,2751,2838,2875,148,2312,3785,159, + 149,3434,38,1062,36,927,2485,5066,34,981, + 31,35,30,32,2438,263,29,27,56,2583, + 111,80,81,113,392,2598,2698,2657,2722,2705, + 59,2736,2724,332,2755,743,2751,2838,2875,148, + 335,341,158,149,3434,38,1062,36,927,1561, + 5066,34,981,31,35,30,32,2438,263,29, + 27,56,2583,111,80,81,113,520,2598,2698, + 2657,2722,2705,59,2736,2724,872,2755,3065,2751, + 2838,2875,148,1774,2268,157,149,3434,38,1062, + 36,927,443,5066,34,981,31,35,30,32, + 2438,263,29,27,56,2583,111,80,81,113, + 3119,2598,2698,2657,2722,2705,428,2736,2724,2332, + 2755,773,2751,2838,2875,148,2485,3785,156,149, + 3434,38,1062,36,927,99,5066,34,981,31, + 35,30,32,2438,263,29,27,56,2583,111, + 80,81,113,493,2598,2698,2657,2722,2705,2770, + 2736,2724,3577,2755,59,2751,2838,2875,148,2721, + 3143,155,149,3434,38,1062,36,927,1561,5066, + 34,981,31,35,30,32,2438,263,29,27, + 56,2583,111,80,81,113,788,2598,2698,2657, + 2722,2705,59,2736,2724,3244,2755,3056,2751,2838, + 2875,148,1673,3097,154,149,3434,38,1062,36, + 927,2332,5066,34,981,31,35,30,32,2438, + 263,29,27,56,2583,111,80,81,113,287, + 2598,2698,2657,2722,2705,59,2736,2724,2332,2755, + 3136,2751,2838,2875,148,383,3143,153,149,3434, + 38,1062,36,927,101,5066,34,981,31,35, + 30,32,2438,263,29,27,56,2583,111,80, + 81,113,2213,2598,2698,2657,2722,2705,59,2736, + 2724,1666,2755,3179,2751,2838,2875,148,1875,3143, + 152,149,3434,38,1062,36,927,2713,5066,34, + 981,31,35,30,32,2438,263,29,27,56, + 2583,111,80,81,113,313,2598,2698,2657,2722, + 2705,312,2736,2724,2017,2755,59,2751,2838,2875, + 148,2122,3143,151,149,3434,38,1062,36,927, + 2332,5066,34,981,31,35,30,32,2438,263, + 29,27,56,2583,111,80,81,113,304,2598, + 2698,2657,2722,2705,3384,2736,2724,788,2755,2452, + 2751,2838,2875,148,4173,3143,150,149,3434,38, + 1062,36,927,2332,5066,34,981,31,35,30, + 32,2438,263,29,27,56,2583,111,80,81, + 113,303,2598,2698,2657,2722,2705,59,2736,2724, + 1666,2755,3095,2751,2838,2875,148,28,2634,165, + 149,3434,38,1062,36,927,1400,5066,34,981, + 31,35,30,32,2438,263,29,27,56,2583, + 111,80,81,113,288,2598,2698,2657,2722,2705, + 311,2736,2724,1666,2755,2490,2751,2838,2875,148, + 2647,1658,145,149,3534,38,1062,36,927,2421, + 5066,34,981,31,35,30,32,2438,263,29, + 27,56,2583,111,80,81,113,386,2598,2698, + 2657,2722,2705,308,2736,2724,3333,2755,59,2751, + 2838,2875,148,941,2414,195,149,3617,38,1062, + 36,927,3279,5066,34,981,31,35,30,32, + 2438,263,29,27,56,2583,111,80,81,113, + 2411,2598,2698,2657,2722,2705,405,2736,2724,788, + 2755,2020,2751,2838,2974,170,3617,38,1062,36, + 927,455,5066,34,981,31,35,30,32,2438, + 263,29,27,56,2583,111,80,81,113,3262, + 2598,2698,2657,2722,2705,59,2736,2724,690,2755, + 3081,2751,2838,2974,170,861,2411,38,1062,36, + 927,5100,5000,34,981,31,35,62,32,49, + 2113,3617,38,1062,36,927,294,5066,34,981, + 31,35,30,32,2438,263,29,27,56,2583, + 111,80,81,113,2629,2598,2698,2657,2722,2705, + 1903,2736,2724,3702,2755,778,2751,2838,2974,170, + 3617,38,1062,36,927,421,5066,34,981,31, + 35,30,32,2438,263,29,27,56,2583,111, + 80,81,113,3366,2598,2698,2657,2722,2705,59, + 2736,2724,690,2755,1088,2751,2838,2974,170,70, + 38,1062,36,927,2332,5119,34,981,31,35, + 65,32,2022,394,425,3617,38,1062,36,927, + 3555,5066,34,981,31,35,30,32,2438,263, + 29,27,56,2583,111,80,81,113,356,2598, + 2698,2657,2722,2705,1903,2736,2724,66,2755,2575, + 2751,2838,2974,170,3658,38,1062,36,927,420, + 5066,34,981,31,35,30,32,2438,263,29, + 27,56,2583,111,80,81,113,330,2598,2698, + 2657,2722,2705,59,2736,2724,529,2755,3710,2751, + 2838,2974,170,70,38,1062,36,927,2332,5119, + 34,981,31,35,64,32,2055,396,425,3617, + 38,1062,36,927,423,5066,34,981,31,35, + 30,32,2438,263,29,27,56,2583,111,80, + 81,113,75,2598,2698,2657,2722,2705,1464,2736, + 2724,3263,2755,2332,2751,3421,3535,1030,3617,38, + 1062,36,927,3083,5066,34,981,31,35,30, + 32,2438,263,29,27,56,2583,111,80,81, + 113,361,2598,2698,2657,2722,2705,74,2736,2724, + 529,2755,1007,3394,3699,924,934,391,927,3709, + 2933,1673,38,509,280,927,381,237,263,1673, + 1645,298,1673,924,934,391,927,2721,38,397, + 188,3617,38,1062,36,927,275,5066,34,981, + 31,35,30,32,2438,263,29,27,56,2583, + 111,80,81,113,275,2598,2698,2657,2722,2705, + 3742,3341,296,1860,2312,297,232,3617,38,1062, + 36,927,1658,5066,34,981,31,35,30,32, + 2438,263,29,27,56,2583,111,80,81,113, + 3744,2598,2698,2657,3322,278,277,276,235,230, + 231,1673,1645,1962,391,927,1666,340,341,3768, + 1925,38,449,279,277,276,4924,2119,1673,38, + 934,391,927,242,245,248,251,3032,2331,2058, + 38,449,1758,54,839,4924,1673,38,509,284, + 927,3650,690,59,296,55,307,297,3063,51, + 448,3044,3004,3287,3714,3814,3765,3617,38,1062, + 36,927,333,5066,34,981,31,35,30,32, + 2438,263,29,27,56,2583,111,80,81,113, + 1592,2598,2698,2657,2722,3350,3617,38,1062,36, + 927,3148,5066,34,981,31,35,30,32,2438, + 263,29,27,56,2583,111,80,81,113,1658, + 2598,2698,2657,2722,3378,982,38,1062,36,927, + 3837,3112,34,981,31,35,345,32,3617,38, + 1062,36,927,3723,5066,34,981,31,35,30, + 32,2438,263,29,27,56,2583,111,80,81, + 113,59,2598,2698,2657,3324,1121,395,425,2710, + 2011,38,1062,36,927,3259,3112,34,981,31, + 35,345,32,3234,326,1393,328,442,2911,2973, + 1661,321,1117,1673,38,509,282,927,2329,3524, + 1673,924,934,391,927,357,446,2911,2973,4301, + 404,1673,38,3566,3089,1742,59,3225,521,59, + 3784,4245,2694,358,4271,350,2617,2543,355,323, + 1104,328,275,3073,3617,38,1062,36,927,3435, + 5066,34,981,31,35,30,32,2438,263,29, + 27,56,2583,111,80,81,113,1743,2598,2698, + 2657,3327,3617,38,1062,36,927,3324,5066,34, + 981,31,35,30,32,2438,263,29,27,56, + 2583,111,80,81,113,1987,2598,2698,2657,3328, + 2314,346,277,276,861,357,1150,359,3144,2332, + 5033,533,1673,1645,298,1688,2611,403,228,371, + 1673,38,934,391,927,350,2617,2543,355,349, + 3809,2641,3063,348,61,161,2314,674,2139,295, + 2861,1658,216,59,213,1833,1544,206,214,215, + 217,93,429,107,2525,296,2416,2615,297,207, + 208,2636,1790,729,2332,501,15,209,210,211, + 212,299,300,301,302,3617,38,1062,36,927, + 3524,5066,34,981,31,35,30,32,2438,263, + 29,27,56,2583,111,80,81,113,91,2598, + 2698,3334,3617,38,1062,36,927,1666,5066,34, + 981,31,35,30,32,2438,263,29,27,56, + 2583,111,80,81,113,3159,2598,2698,3335,501, + 2874,57,2332,13,2023,38,1062,36,927,5134, + 3112,34,981,31,35,345,32,185,413,2352, + 38,1062,36,927,3837,3112,34,981,31,35, + 345,32,289,2142,498,500,58,1673,3562,562, + 3379,246,38,1062,36,927,2948,3112,34,981, + 31,35,345,32,2622,1800,3155,38,281,2314, + 3785,1610,2179,326,1393,328,3668,59,2335,1903, + 321,1117,2314,3023,3785,357,59,2525,326,1393, + 328,1421,59,59,357,321,1117,1390,2080,419, + 349,3705,92,992,107,350,2617,2543,355,357, + 323,1104,328,2134,350,2617,2543,355,524,2332, + 1666,338,2134,1577,1645,1962,391,927,2615,350, + 2617,2543,355,3192,2332,339,3696,525,1883,38, + 1062,36,927,3330,4869,34,981,31,35,345, + 32,59,59,447,59,54,2314,4137,357,1121, + 201,2888,365,2862,2716,3729,296,55,2962,297, + 2314,1386,1658,1954,349,2944,2997,3010,352,2617, + 2543,355,2332,2992,2718,3704,2332,1051,228,2476, + 924,934,391,927,949,338,59,326,1393,328, + 3725,4222,2615,2611,321,1117,360,3193,674,1666, + 2861,2332,216,2340,213,529,94,206,214,215, + 217,275,1663,1645,1738,1199,927,855,4815,207, + 208,3807,3757,729,3821,803,218,209,210,211, + 212,299,300,301,302,3006,3845,239,263,200, + 1753,2314,3789,3149,54,2625,232,2839,2314,1870, + 2314,3759,102,2279,315,296,55,1666,297,228, + 1386,1007,1108,1658,3868,657,2525,1464,2525,3415, + 3567,277,276,3788,635,2139,295,1666,244,230, + 231,2861,3532,216,1991,213,232,2314,206,214, + 215,217,1577,1645,1962,391,927,407,2190,3740, + 207,208,3808,1121,729,349,3269,218,209,210, + 211,212,299,300,301,302,3922,204,240,230, + 231,2314,1666,2312,54,523,1155,161,1673,924, + 934,391,927,3062,1666,296,55,168,297,228, + 1386,501,848,365,1464,3868,1696,1673,38,934, + 391,927,2332,103,866,2600,1688,2997,3010,3937, + 275,2861,202,216,2314,213,337,341,206,214, + 215,217,3792,3831,4602,2332,498,500,2143,430, + 207,208,228,1121,729,3833,2599,218,209,210, + 211,212,299,300,301,302,59,3862,59,289, + 2142,2174,522,2889,2861,3337,216,161,213,4390, + 2956,206,214,215,217,3563,521,3142,203,78, + 277,276,3154,207,208,3868,1739,729,1825,2179, + 218,209,210,211,212,299,300,301,302,1801, + 38,3126,36,927,3330,4869,34,981,31,35, + 345,32,1947,38,1062,36,927,3247,4869,34, + 981,31,35,345,32,3050,3161,1580,3868,1782, + 3617,38,1062,36,927,3798,5066,34,981,31, + 35,30,32,2438,263,29,27,56,2583,111, + 80,81,113,2332,2598,3242,338,1770,326,1393, + 328,3256,3252,4945,3260,321,1117,3268,3270,339, + 1028,326,1393,328,3362,3365,3785,1666,322,1117, + 1666,1799,1673,1645,1962,391,927,4441,2720,232, + 3261,3617,38,1062,36,927,803,5066,34,981, + 31,35,30,32,2438,263,29,27,56,2583, + 111,80,81,113,54,2598,3277,4727,3267,2064, + 4760,247,230,231,2314,296,55,338,297,589, + 1386,2486,1257,149,3272,2333,1121,3617,38,3069, + 3060,927,228,5066,34,981,31,35,30,32, + 2438,263,29,27,56,2583,111,80,81,88, + 161,3278,416,3174,2861,2578,216,3272,213,37, + 2731,206,214,215,217,1673,38,509,3565,927, + 3832,3382,3383,207,208,3392,2667,729,3393,1774, + 15,209,210,211,212,299,300,301,302,3617, + 38,1062,36,927,3371,5066,34,981,31,35, + 30,32,2438,263,29,27,56,2583,111,80, + 81,113,427,3285,3617,38,1062,36,927,3397, + 5066,34,981,31,35,30,32,2438,263,29, + 27,56,2583,111,80,81,113,3042,3286,3398, + 1666,3399,3617,38,1062,36,927,14,5066,34, + 981,31,35,30,32,2438,263,29,27,56, + 2583,111,80,81,113,177,3321,3403,3404,89, + 533,1673,924,934,391,927,59,2533,59,3003, + 197,2314,1121,2314,2314,3881,1,2332,228,776, + 2332,533,3864,3728,161,3517,3518,3519,3522,349, + 3830,349,349,275,2797,186,161,3883,3291,228, + 2619,2332,216,1121,213,161,3395,205,214,215, + 217,4462,3528,175,73,2797,186,2615,3707,2615, + 970,2619,3205,216,3217,213,1028,166,205,214, + 215,217,3785,3886,175,72,189,173,174,176, + 177,178,179,180,3724,187,3286,38,509,280, + 927,3885,76,277,276,3906,2358,190,173,174, + 176,177,178,179,180,1830,38,1062,36,927, + 3913,4869,34,981,31,35,345,32,3617,38, + 1062,36,927,338,5066,34,981,31,35,30, + 32,2438,263,29,27,56,2583,111,80,81, + 89,2332,2699,5623,3206,1702,5623,5623,5623,2314, + 2314,3286,38,509,3598,927,1673,38,509,3631, + 927,5623,339,730,326,1393,328,349,228,2332, + 1007,322,1117,5623,1737,71,5623,3556,5623,5623, + 1673,924,934,391,927,357,2896,5623,3968,5623, + 2861,5623,216,2314,213,772,2332,206,214,215, + 217,5623,5623,70,5623,352,2617,2543,355,207, + 208,228,275,729,5623,5623,517,209,210,211, + 212,299,300,301,302,3763,924,934,391,927, + 3087,2933,2312,2861,5623,216,232,213,238,263, + 206,214,215,217,1028,1673,1645,1962,391,927, + 3785,5623,207,208,5623,5623,729,275,2332,518, + 209,210,211,212,299,300,301,302,250,230, + 231,77,277,276,2047,2903,341,54,2332,1713, + 1645,1962,391,927,5623,4014,5623,232,296,55, + 2314,297,3164,1386,5623,2994,5623,1028,5623,5623, + 5623,338,5623,3785,5623,5623,5623,5623,228,2332, + 5623,54,61,5623,5623,452,278,277,276,236, + 230,231,296,55,5623,297,5623,1386,3891,52, + 2861,2332,216,2314,213,438,232,206,214,215, + 217,2888,2329,60,243,246,249,252,3032,207, + 208,228,2332,729,338,839,314,209,210,211, + 212,299,300,301,302,3510,5623,5623,253,230, + 231,5623,5623,2861,5623,216,5623,213,5623,2332, + 206,214,215,217,5623,5623,106,5623,5623,5623, + 5623,5623,207,208,3645,5623,729,5623,5623,219, + 209,210,211,212,299,300,301,302,3617,38, + 1062,36,927,4534,5066,34,981,31,35,30, + 32,2438,263,29,27,56,2583,111,80,81, + 87,3617,38,1062,36,927,5623,5066,34,981, + 31,35,30,32,2438,263,29,27,56,2583, + 111,80,81,86,3617,38,1062,36,927,5623, + 5066,34,981,31,35,30,32,2438,263,29, + 27,56,2583,111,80,81,85,3617,38,1062, + 36,927,5623,5066,34,981,31,35,30,32, + 2438,263,29,27,56,2583,111,80,81,84, + 3617,38,1062,36,927,5623,5066,34,981,31, + 35,30,32,2438,263,29,27,56,2583,111, + 80,81,83,3617,38,1062,36,927,5623,5066, + 34,981,31,35,30,32,2438,263,29,27, + 56,2583,111,80,81,82,3476,38,1062,36, + 927,5623,5066,34,981,31,35,30,32,2438, + 263,29,27,56,2583,111,80,81,109,3617, + 38,1062,36,927,5623,5066,34,981,31,35, + 30,32,2438,263,29,27,56,2583,111,80, + 81,115,3617,38,1062,36,927,1007,5066,34, + 981,31,35,30,32,2438,263,29,27,56, + 2583,111,80,81,114,4044,5623,5623,5623,5623, + 2314,5623,5623,2633,5623,5623,5623,2726,5623,5623, + 5623,2332,1121,3617,38,1062,36,927,228,5066, + 34,981,31,35,30,32,2438,263,29,27, + 56,2583,111,80,81,112,161,527,59,2312, + 2861,5623,216,2314,213,4585,3560,206,214,215, + 217,5623,265,5623,5623,5623,5623,533,5623,207, + 208,349,1007,729,5623,5623,495,209,210,211, + 212,299,300,301,302,228,5623,5623,5623,5623, + 5623,161,3216,341,5623,2625,5623,5623,5623,2615, + 2314,2797,186,5623,505,5623,5623,2619,3291,216, + 5623,213,5623,1121,205,214,215,217,2525,5623, + 175,3219,38,1062,36,927,3330,3112,34,981, + 31,35,345,32,2312,5623,5623,166,5623,5623, + 5623,5623,5623,3559,173,174,176,177,178,179, + 180,3617,38,1062,36,927,5623,5066,34,981, + 31,35,30,32,2438,263,29,27,56,2583, + 111,80,81,110,353,5623,5623,3218,341,533, + 326,1393,328,5623,5623,5623,1342,321,1117,5623, + 5623,533,5623,365,5623,5623,5623,228,1673,1645, + 1962,391,927,161,5623,5623,3021,2997,3010,349, + 855,5623,2822,2797,186,161,5623,5623,5623,2619, + 5623,216,5623,213,5623,194,205,214,215,217, + 54,5623,175,5623,5623,5623,5623,4713,5623,5623, + 441,296,55,5623,297,533,1386,315,1446,1214, + 5623,5623,5623,5623,533,182,173,174,176,177, + 178,179,180,228,5623,5623,5623,635,2773,161, + 2820,5623,349,1121,5623,1121,5623,1991,161,2797, + 186,3291,5623,5623,5623,2619,1121,216,2273,213, + 5623,529,205,214,215,217,533,161,175,161, + 2615,5623,5623,5623,3195,2228,5623,3581,5623,3681, + 166,5623,617,5623,228,5623,5623,533,5623,5623, + 161,193,173,174,176,177,178,179,180,5623, + 2797,186,59,5623,5623,228,2619,2314,216,5623, + 213,161,2867,205,214,215,217,1121,5623,175, + 5623,2797,186,5623,5623,349,5623,2619,5623,216, + 5623,213,5623,705,205,214,215,217,533,5623, + 175,161,3636,173,174,176,177,178,179,180, + 5623,3709,3291,2615,793,2929,228,1121,503,533, + 5623,5623,161,196,173,174,176,177,178,179, + 180,5623,2797,186,59,5623,5623,228,2619,2314, + 216,166,213,161,2914,205,214,215,217,1121, + 5623,175,5623,2797,186,5623,5623,349,5623,2619, + 5623,216,5623,213,5623,881,205,214,215,217, + 533,5623,175,161,192,173,174,176,177,178, + 179,180,2237,2982,2641,2615,59,1121,228,2314, + 3172,2314,5623,5623,161,199,173,174,176,177, + 178,179,180,5623,2797,186,5623,2525,5623,349, + 2619,161,216,5623,213,5623,3818,205,214,215, + 217,168,5623,175,2344,38,3126,36,927,3330, + 3112,34,981,31,35,345,32,2615,5623,5623, + 5623,5623,532,5623,5623,5623,198,173,174,176, + 177,178,179,180,5623,334,38,1062,36,927, + 3330,3112,34,981,31,35,345,32,334,38, + 1062,36,927,3330,3112,34,981,31,35,345, + 32,3291,501,326,1393,328,1121,5623,5623,3340, + 321,1117,5623,422,38,1062,36,927,3330,3112, + 34,981,31,35,345,32,5623,2284,5623,5623, + 166,5623,1121,2720,326,1393,328,499,500,5623, + 5623,321,1117,5623,5623,1598,5623,326,1393,328, + 2314,4348,2961,5623,321,1117,161,1121,3291,5623, + 2361,5623,5623,1121,855,1121,168,5623,228,5623, + 5623,5623,326,1393,328,5623,5623,992,5623,321, + 1117,161,2132,1645,1962,391,927,166,5623,161, + 2570,3871,408,5623,5623,5623,5623,5623,5623,168, + 5623,316,3613,5623,5623,3849,5623,417,3174,1946, + 409,5623,5623,729,54,2132,1645,1962,391,927, + 5623,5623,5623,5623,5623,296,55,5623,297,5623, + 1386,5623,52,5623,3919,5623,1577,1645,1962,391, + 927,5623,5623,5623,5623,731,5623,54,5623,5623, + 5623,5623,5623,5623,5623,5623,5623,5623,296,55, + 5623,297,3892,1386,5623,52,5623,4171,54,1577, + 1645,1962,391,927,5623,5623,2085,5623,1118,296, + 55,5623,297,5623,1386,5623,52,5623,5623,5623, + 5623,2482,1645,1962,391,927,5623,1677,5623,1113, + 5623,54,2314,4348,5623,5623,410,412,5623,5623, + 5623,5623,296,55,5623,297,5623,1386,5623,1170, + 228,5623,5623,54,1577,1645,1962,391,927,5623, + 5623,1395,2600,4897,296,55,5623,297,5623,1386, + 5623,52,2570,5623,408,1577,1645,1962,391,927, + 5623,5623,5623,5623,2702,1406,54,5623,5623,5623, + 533,1946,409,5623,5623,729,5623,296,55,5623, + 297,5623,1386,5623,52,5623,5623,54,349,3241, + 1645,1962,391,927,161,5623,5623,2428,296,55, + 5623,297,5623,1386,194,52,5623,5623,5623,5623, + 2132,1645,1962,391,927,5623,4713,5623,2710,5623, + 5623,54,5623,5623,5623,5623,5623,5623,5623,5623, + 5623,5623,296,55,5623,297,5623,1386,2085,1747, + 5623,5623,54,1577,1645,1962,391,927,5623,5623, + 5623,5623,2332,296,55,5623,297,5623,1386,5623, + 1919,5623,5623,5623,5623,1278,5623,3790,410,413, + 533,5623,2314,2999,5623,54,3238,1645,1962,391, + 927,5623,5623,3313,5623,5623,296,55,349,297, + 349,1386,5623,52,161,1673,1645,1962,391,927, + 5623,528,5623,5623,1833,5623,3167,5623,54,5623, + 1673,1645,1962,391,927,5623,2615,5623,2615,296, + 55,2754,297,531,1386,5623,1566,54,5623,1673, + 1645,1962,391,927,5623,5623,5623,5623,296,55, + 5623,297,54,1386,2622,2569,5623,1086,5623,2314, + 3785,5623,533,296,55,5623,297,5623,1386,1470, + 2876,54,5623,5623,533,5623,5623,2525,5623,5623, + 228,5623,296,55,5623,297,161,1386,5623,1566, + 5623,5623,349,5623,5623,5623,168,5623,161,5623, + 5623,5623,2619,5623,5623,5623,3118,5623,194,5623, + 5623,338,5623,5623,5623,5623,5623,5623,5623,5623, + 4713,5623,5623,5623,5623,5623,5623,5623,5623,5623, + 5623,5623,5623,5623,5623,5623,5623,5623,5623,5623, + 5623,5623,5623,5623,5623,5623,5623,5623,5623,5623, + 5623,3645,365,5623,5623,5623,5623,5623,5623,5623, + 5623,5623,5623,5623,3154,2944,2997,3010,5623,5623, + 5623,4163,5623,5623,5623,5623,5623,5623,5623,5623, + 5623,5623,5623,5623,5623,5623,5623,3557,5623,0, + 497,3685,0,1,229,0,5641,42,0,5640, + 42,0,1,4688,0,1,929,0,1,5641, + 42,0,1,5640,42,0,1,3684,0,1, + 1252,0,5857,241,0,5856,241,0,5967,241, + 0,5966,241,0,5884,241,0,5883,241,0, + 5882,241,0,5881,241,0,5880,241,0,5879, + 241,0,5878,241,0,5877,241,0,5897,241, + 0,5896,241,0,5895,241,0,5894,241,0, + 5893,241,0,5892,241,0,5891,241,0,5890, + 241,0,5889,241,0,5888,241,0,5887,241, + 0,241,5641,42,0,241,5640,42,0,241, + 5664,0,38,286,262,0,509,390,0,5641, + 53,0,5640,53,0,1,5959,0,1,1387, + 0,5641,41,0,5640,41,0,450,1470,0, + 509,33,0,298,1728,0,38,306,0,390, + 298,0,1513,325,0,509,44,0,1,440, + 0,454,883,0,453,1911,0,52,40,0, + 229,221,0,1,5664,229,0,1,42,229, + 0,229,415,0,5641,40,0,5640,40,0, + 48,5662,0,48,40,0,1,871,0,1, + 5897,0,1,5896,0,1,5895,0,1,5894, + 0,1,5893,0,1,5892,0,1,5891,0, + 1,5890,0,1,5889,0,1,5888,0,1, + 5887,0,1,866,0,1,1030,0,229,220, + 0,5633,406,0,5632,406,0,229,414,0, + 30,516,0,2634,131,0,5631,1,0,5959, + 441,0,1387,441,0,5662,50,0,40,50, + 0,2964,96,0,391,36,0,390,33,0, + 509,390,33,0,42,1252,0,1,229,3440, + 0,5633,229,0,5632,229,0,1,5664,0, + 1,42,0,237,3578,0,2634,133,0,2634, + 132,0,3539,229,0,162,181,0,1,97, + 0,8,10,0,229,169,0,5641,2,40, + 0,5640,2,40,0,5641,39,0,5640,39, + 0,5959,100,0,1387,100,0,282,4532,0, + 191,4513,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1099,391 +1150,418 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,0,56,57,3,59, - 60,61,62,63,0,65,66,0,1,0, - 1,71,3,6,74,75,76,77,78,79, - 80,81,82,83,84,85,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,0,56,57,3,59,60,61,62,63, - 0,65,66,0,1,2,3,4,0,6, - 74,75,76,77,78,79,80,81,82,83, - 84,85,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,69,56,57, - 0,59,60,61,62,63,0,65,66,0, - 1,2,3,4,8,6,74,75,76,77, - 78,79,80,81,82,83,84,85,0,1, + 50,51,52,53,54,55,56,57,0,59, + 0,61,62,63,64,65,66,67,8,0, + 1,2,72,4,5,75,7,77,78,79, + 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,0,56,57,3,59,60,61, - 62,63,0,65,66,0,1,2,3,4, - 0,6,74,75,76,77,78,79,80,81, - 82,83,84,85,0,1,2,3,4,5, + 52,53,54,55,56,57,0,59,0,61, + 62,63,64,65,66,67,8,0,1,2, + 72,4,5,75,7,77,78,79,80,81, + 82,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,0,59,0,61,62,63, + 64,65,66,67,0,0,1,2,3,4, + 5,75,7,77,78,79,80,81,82,83, + 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,54,0, - 56,57,3,59,60,61,62,63,0,65, - 66,0,1,0,3,4,3,6,74,75, - 76,77,78,79,80,81,82,83,84,85, + 46,47,48,49,50,51,52,53,54,55, + 56,57,0,59,0,61,62,63,64,65, + 66,67,0,0,1,2,3,4,5,75, + 7,77,78,79,80,81,82,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 0,59,0,61,62,63,64,65,66,67, + 0,0,1,2,3,4,5,75,7,77, + 78,79,80,81,82,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,0,56,57,3,59, - 60,61,62,63,0,65,66,0,1,5, - 3,4,0,6,74,75,76,77,78,79, - 80,81,82,83,84,85,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,0,56,57,3,59,60,61,62,63, - 0,65,66,3,0,5,2,7,86,87, - 74,75,76,77,78,79,80,81,82,83, - 84,85,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,0,56,57, - 0,59,60,61,62,63,0,65,66,0, - 1,5,0,4,0,6,74,75,76,77, - 78,79,80,81,82,83,84,85,0,1, + 50,51,52,53,54,55,56,57,0,59, + 0,61,62,63,64,65,66,67,0,1, + 2,0,4,101,6,75,8,77,78,79, + 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,69,56,57,74,59,60,61, - 62,63,0,65,66,89,90,0,1,0, - 3,2,74,75,76,77,78,79,80,81, - 82,83,84,85,0,1,2,3,4,5, + 52,53,54,55,56,57,75,59,0,61, + 62,63,64,65,66,67,0,1,2,99, + 4,0,6,75,8,77,78,79,80,81, + 82,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,73,59,0,61,62,63, + 64,65,66,67,0,1,2,99,4,0, + 6,75,8,77,78,79,80,81,82,83, + 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,54,0, - 56,57,0,59,60,61,62,63,0,65, - 66,0,0,0,1,3,3,0,74,75, - 76,77,78,79,80,81,82,83,84,85, - 0,1,2,3,4,5,6,7,0,9, - 10,0,1,2,3,4,5,6,7,0, - 1,40,22,23,0,43,45,46,47,48, - 49,50,51,52,53,54,0,56,55,67, - 40,0,73,43,0,45,46,47,48,49, - 50,51,52,53,54,0,56,70,58,4, - 41,42,93,55,64,65,88,67,68,69, - 70,71,94,73,74,64,0,1,0,3, - 69,5,58,7,0,1,86,87,88,89, - 90,91,92,93,94,95,96,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,114,0,1,2,3,4, + 46,47,48,49,50,51,52,53,54,55, + 56,57,73,59,0,61,62,63,64,65, + 66,67,0,1,2,0,4,0,6,75, + 8,77,78,79,80,81,82,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 73,59,77,61,62,63,64,65,66,67, + 0,0,1,2,4,0,5,75,7,77, + 78,79,80,81,82,83,84,85,86,87, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,73,59, + 0,61,62,63,64,65,66,67,0,0, + 1,2,0,4,5,75,7,77,78,79, + 80,81,82,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,0,10,11, + 12,0,1,2,3,4,5,6,7,8, + 42,0,24,25,3,47,48,49,50,51, + 52,53,54,55,56,57,0,58,0,69, + 42,3,60,45,0,47,48,49,50,51, + 52,53,54,55,56,57,0,0,60,0, + 4,4,3,6,66,8,68,69,70,71, + 72,73,0,75,76,68,0,1,2,68, + 0,9,71,7,48,49,88,89,90,91, + 92,93,94,95,96,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, 35,36,37,38,39,40,41,42,43,44, 45,46,47,48,49,50,51,52,53,54, - 0,56,57,0,59,60,61,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 0,44,45,46,47,48,49,50,51,52, - 53,54,0,56,57,65,59,60,61,0, - 1,2,3,4,5,6,7,8,9,10, + 55,56,57,0,59,95,61,62,63,0, + 1,2,3,4,5,6,7,8,9,0, 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,42,0,44,45,46,47,48,49,50, - 51,52,53,54,0,56,57,65,59,60, - 61,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,0,44,45,46,47,48, - 49,50,51,52,53,54,0,56,57,65, - 59,60,61,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, + 41,42,43,44,0,46,47,48,49,50, + 51,52,53,54,55,56,57,0,59,66, + 61,62,63,0,1,2,3,4,5,6, + 7,8,9,0,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,0,44,45,46, - 47,48,49,50,51,52,53,54,0,56, - 57,65,59,60,61,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,0,44, - 45,46,47,48,49,50,51,52,53,54, - 0,56,57,65,59,60,61,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 0,44,45,46,47,48,49,50,51,52, - 53,54,0,56,57,0,59,60,61,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 0,46,47,0,45,46,47,48,49,50, - 51,52,53,54,0,56,57,0,59,60, - 61,0,1,2,3,4,5,6,7,8, - 0,0,11,12,13,14,15,16,17,18, - 19,20,21,40,0,1,0,3,45,46, - 47,48,49,50,51,52,53,54,0,56, - 0,40,2,0,43,44,45,46,47,48, - 49,50,51,52,53,54,55,56,57,0, - 59,60,61,62,67,68,0,8,88,58, - 0,70,71,72,94,0,0,1,67,3, - 0,1,2,3,4,5,6,7,8,65, - 24,11,12,13,14,15,16,17,18,19, - 20,21,91,92,64,0,1,2,3,4, - 5,6,7,43,55,0,57,116,117,118, - 40,45,7,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,68,59, - 60,61,62,68,0,40,71,0,43,0, - 70,71,72,9,10,0,0,8,2,0, - 55,5,119,7,0,9,10,62,63,0, - 0,66,0,3,0,3,71,72,22,23, - 0,1,2,3,4,5,6,7,0,1, - 2,3,4,0,6,40,116,117,118,43, - 45,46,47,48,49,50,51,52,53,54, - 0,56,63,0,58,0,1,2,3,4, - 64,6,58,67,68,69,70,71,58,73, - 58,43,58,0,0,1,2,3,4,5, - 6,7,86,87,88,89,90,91,92,93, - 94,95,96,97,98,99,100,101,102,103, - 104,105,106,107,108,109,110,111,112,113, - 114,0,113,2,40,0,5,43,7,64, - 9,10,69,0,0,1,2,3,4,55, - 6,58,58,22,23,0,62,63,0,1, - 66,3,4,70,6,0,72,24,98,116, - 117,118,7,100,43,102,103,104,105,106, - 107,108,109,110,111,112,0,0,1,58, - 3,0,5,58,7,64,0,1,67,68, - 69,70,71,0,73,0,1,2,3,4, - 5,6,7,55,70,0,0,86,87,88, - 89,90,91,92,93,94,95,96,97,98, - 99,100,101,102,103,104,105,106,107,108, - 109,110,111,112,113,114,0,1,2,3, - 4,5,6,7,8,0,1,11,12,13, - 14,15,16,17,18,19,20,21,0,1, - 2,3,4,58,6,70,0,1,2,3, - 4,5,6,7,0,1,40,0,4,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,88,59,60,61,62,63, - 94,43,66,0,0,1,0,3,72,5, - 65,7,0,0,1,2,3,4,5,6, - 7,8,0,1,11,12,13,14,15,16, - 17,18,19,20,21,0,1,2,3,4, - 5,6,7,0,1,68,3,0,5,43, - 7,0,1,40,0,119,43,44,45,46, + 37,38,39,40,41,42,43,44,0,46, 47,48,49,50,51,52,53,54,55,56, - 57,0,59,60,61,62,63,55,75,66, - 9,10,0,1,0,72,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,0,41,42,43, - 44,0,119,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,0,41,42,43,44,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,0,41, - 42,43,44,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,45,41,42,0,44,95,96, - 0,5,0,0,1,2,3,4,5,6, - 7,0,1,2,3,0,5,2,7,0, - 1,2,3,4,0,6,73,0,1,2, - 3,4,5,6,7,8,9,10,11,12, + 57,0,59,66,61,62,63,0,1,2, + 3,4,5,6,7,8,9,0,11,12, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,64,41,42, - 70,44,70,0,1,64,3,0,5,2, - 7,0,58,64,69,89,90,0,0,2, - 2,0,0,1,0,3,4,0,6,0, - 73,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, + 33,34,35,36,37,38,39,40,41,42, + 43,44,0,46,47,48,49,50,51,52, + 53,54,55,56,57,0,59,66,61,62, + 63,0,1,2,3,4,5,6,7,8, + 9,0,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, - 39,64,41,42,67,68,73,55,67,68, - 73,64,64,0,0,1,65,0,1,5, - 0,4,9,10,67,68,93,73,67,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,55, - 41,42,55,44,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,0,41,42,97,44,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,0, - 41,42,0,44,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,0,41,42,93,44,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,0, - 41,42,93,44,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,0,41,42,93,44,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,0, - 41,42,0,44,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,0,41,42,0,44,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,0, - 41,42,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,0,41,42,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, + 39,40,41,42,43,44,0,46,47,48, + 49,50,51,52,53,54,55,56,57,0, + 59,66,61,62,63,0,1,2,3,4, + 5,6,7,8,9,0,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,0,1,88,0,0, - 2,0,0,94,2,0,0,1,0,0, - 5,0,1,0,0,0,0,2,0,0, - 65,0,8,71,0,0,71,0,1,2, - 3,4,5,6,7,8,9,10,11,12, + 35,36,37,38,39,40,41,42,43,44, + 0,46,47,48,49,50,51,52,53,54, + 55,56,57,0,59,66,61,62,63,0, + 1,2,3,4,5,6,7,8,9,0, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,44,0,46,47,48,49,50, + 51,52,53,54,55,56,57,0,59,66, + 61,62,63,0,1,2,3,4,5,6, + 7,8,9,0,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,0,1,2,0, + 47,48,49,50,51,52,53,54,55,56, + 57,0,59,0,61,62,63,0,1,2, + 3,4,5,6,7,8,9,10,0,95, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,58,0,55, - 2,57,4,5,55,7,67,9,10,0, - 1,2,3,4,5,6,7,0,1,64, - 22,23,65,25,89,90,95,96,71,100, - 91,92,86,87,86,87,0,0,1,41, - 42,112,99,0,0,0,2,0,0,40, - 0,1,43,0,1,0,58,2,41,42, - 0,1,64,0,55,67,68,69,0,0, - 0,62,63,0,0,66,2,0,1,43, - 71,72,0,0,86,87,88,89,90,91, - 92,0,55,95,96,97,98,99,100,101, - 102,103,104,105,106,107,108,109,110,111, - 0,64,2,68,4,5,68,7,73,9, - 10,0,1,2,3,4,5,6,7,86, - 87,40,22,23,64,25,45,46,47,48, - 49,50,51,52,53,54,0,56,0,1, - 67,41,42,71,86,87,0,0,0,2, - 97,40,0,0,43,2,4,98,58,0, - 0,2,99,0,64,2,55,67,68,69, - 0,1,0,62,63,0,0,66,2,0, - 1,0,71,72,0,0,86,87,88,89, - 90,91,92,55,58,95,96,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,0,1,2,3,4,5,6,7, + 23,42,0,1,2,0,47,48,49,50, + 51,52,53,54,55,56,57,0,47,42, + 97,98,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,0,61,62, + 63,64,0,1,2,0,4,10,60,72, + 73,74,0,1,2,10,0,1,2,3, + 4,5,6,7,8,9,10,0,66,13, + 14,15,16,17,18,19,20,21,22,23, + 0,0,1,2,3,4,5,6,7,8, + 45,10,0,1,2,118,119,120,42,0, + 58,45,46,47,48,49,50,51,52,53, + 54,55,56,57,58,59,0,61,62,63, + 64,0,0,42,3,26,45,60,72,73, + 74,10,0,11,12,3,69,0,6,58, + 8,60,10,11,12,64,65,0,67,0, + 1,2,115,4,0,74,24,25,42,0, + 93,94,0,47,48,49,50,51,52,53, + 54,55,56,57,118,119,120,45,0,0, + 0,1,2,3,4,5,6,7,8,68, + 69,70,60,0,1,2,47,76,0,6, + 68,69,70,71,72,73,69,70,76,0, + 1,2,3,4,5,6,7,8,71,60, + 88,89,90,91,92,93,94,95,96,97, + 98,99,100,101,102,103,104,105,106,107, + 108,109,110,111,112,113,114,115,116,0, + 71,58,3,73,0,6,58,8,4,10, + 11,12,0,1,2,3,4,5,6,7, + 8,117,0,24,25,97,98,68,0,1, + 2,102,0,104,105,106,107,108,109,110, + 111,112,113,114,45,0,1,2,3,4, + 5,6,7,8,0,1,2,0,4,60, + 3,0,1,2,60,4,0,68,69,70, + 71,72,73,41,0,76,0,1,2,3, + 4,5,6,7,8,0,58,88,89,90, + 91,92,93,94,95,96,97,98,99,100, + 101,102,103,104,105,106,107,108,109,110, + 111,112,113,114,115,116,0,1,2,3, + 4,5,6,7,8,9,10,66,71,13, + 14,15,16,17,18,19,20,21,22,23, + 0,1,2,3,4,5,0,7,0,0, + 10,0,0,1,2,3,4,5,42,7, + 0,45,46,47,48,49,50,51,52,53, + 54,55,56,57,58,59,0,61,62,63, + 64,65,0,67,0,45,26,0,1,2, + 74,4,0,0,1,2,3,4,5,6, + 7,8,9,10,0,0,13,14,15,16, + 17,18,19,20,21,22,23,0,42,70, + 68,4,71,47,48,49,50,51,52,53, + 54,55,56,57,0,42,0,121,45,46, + 47,48,49,50,51,52,53,54,55,56, + 57,58,59,69,61,62,63,64,65,0, + 67,0,1,2,118,119,120,74,0,1, + 2,0,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,68,68,73,0,0,2,2,0, - 0,115,2,115,0,0,2,2,0,0, - 2,2,0,0,2,115,0,65,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,0,0,2, - 2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,1,0,1, - 0,1,0,1,0,0,0,0,0,0, - 0,113,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,55,58,55,67,55,68,55,68,64, - 68,70,58,58,58,58,73,57,0,0, - 0,0,0,64,0,67,64,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,0,1,2,3, + 38,39,40,41,121,43,44,45,46,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,0,43,44,45,46,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, + 34,35,36,37,38,39,40,41,0,43, + 44,45,46,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,0,43,44,0,46, + 0,0,0,3,0,1,2,3,4,0, + 6,10,8,0,1,2,3,4,5,71, + 7,0,1,2,3,4,5,0,7,76, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,68,43,44,73,46,76,69,70, + 0,1,2,0,4,5,73,7,90,68, + 0,1,2,0,96,5,0,1,2,3, + 4,5,6,7,8,9,76,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,58,43, + 44,58,0,1,2,0,1,2,58,122, + 5,0,1,2,0,0,1,2,3,4, + 5,6,7,8,9,69,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,0,1,0,3,0,0, - 0,0,8,0,0,11,12,13,14,15, - 16,17,18,19,20,21,0,0,0,0, - 0,0,0,0,1,2,3,4,5,6, - 7,0,0,0,40,0,0,39,0,45, - 46,47,48,49,50,51,52,53,54,0, - 56,57,0,59,60,61,0,1,55,3, - 24,0,58,40,8,69,43,11,12,13, - 14,15,16,17,18,19,20,21,55,0, - 0,43,0,67,67,62,63,69,69,66, - 69,69,0,73,71,72,40,64,67,0, - 0,45,46,47,48,49,50,51,52,53, - 54,0,56,57,0,59,60,61,0,70, - 120,69,11,12,13,14,15,16,17,18, - 19,20,21,0,1,2,3,4,5,6, - 7,0,0,0,0,0,0,0,0,70, - 70,40,0,0,2,0,45,46,47,48, - 49,50,51,52,53,54,0,56,0,70, - 0,0,0,40,22,23,43,0,1,2, - 3,4,5,6,7,0,0,69,55,0, - 0,0,0,0,0,62,63,0,0,66, - 0,0,0,0,71,72,0,0,1,2, - 3,4,5,6,7,69,64,40,0,0, - 43,0,1,2,3,4,5,6,7,0, - 0,0,55,0,0,0,0,0,0,62, - 63,0,0,66,0,0,0,40,58,72, - 43,0,0,101,0,0,0,67,0,0, - 0,40,55,0,43,0,114,0,0,62, - 63,0,0,66,0,0,55,0,0,72, - 0,91,92,62,63,0,0,66,0,0, - 0,0,0,72,0,0,0,0,0,0, + 35,36,37,38,39,40,41,0,43,44, + 58,46,0,1,2,3,4,5,6,7, + 8,9,58,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,0,43,44,0,46,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,0,1,2,0,4,0,6,0,8, + 0,10,0,0,10,0,0,1,2,9, + 0,0,10,10,70,66,0,1,2,9, + 73,72,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,58,65,68,76,58,59, + 76,60,70,70,58,72,0,0,76,0, + 1,2,0,1,2,0,95,0,66,95, + 0,1,2,6,72,0,1,2,3,4, + 5,6,7,8,9,100,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,58,43,44, + 58,46,0,1,2,3,4,5,6,7, + 8,9,0,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,0,43,44,102,46,0, + 1,2,3,4,5,6,7,8,9,114, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,0,43,44,3,46,0,1,2,3, + 4,5,6,7,8,9,0,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,0,43, + 44,3,46,0,1,2,3,4,5,6, + 7,8,9,0,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,0,43,44,3,46, + 0,1,2,3,4,5,6,7,8,9, + 0,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,0,43,44,3,46,0,1,2, + 3,4,5,6,7,8,9,0,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,0, + 43,44,0,1,2,3,4,5,6,7, + 8,9,0,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,0,43,44,0,1,2, + 3,4,5,6,7,8,9,0,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,90, + 0,0,0,0,3,96,0,0,0,6, + 88,89,10,0,0,1,2,9,0,6, + 0,3,0,66,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,0,58,59,3,68, + 5,6,58,8,72,121,11,12,0,1, + 2,3,4,5,0,7,68,3,10,24, + 25,0,27,0,91,92,3,0,1,2, + 0,1,2,0,91,92,0,4,43,44, + 90,0,6,10,0,0,96,24,25,0, + 0,0,0,45,117,60,0,0,0,0, + 0,0,10,68,69,70,71,0,0,115, + 43,44,4,43,44,0,1,2,45,0, + 0,60,68,88,89,90,91,92,93,94, + 10,68,97,98,99,100,101,102,103,104, + 105,106,107,108,109,110,111,112,113,0, + 60,60,3,0,5,6,60,8,60,69, + 11,12,0,10,72,69,103,91,92,88, + 89,73,10,24,25,90,27,88,89,116, + 0,96,0,93,94,88,89,88,89,93, + 94,0,43,44,0,0,76,0,45,4, + 0,100,11,12,0,11,12,45,101,60, + 10,0,0,0,3,3,0,68,69,70, + 71,0,0,70,3,3,0,0,0,3, + 3,3,0,0,0,3,3,88,89,90, + 91,92,93,94,0,45,97,98,99,100, + 101,102,103,104,105,106,107,108,109,110, + 111,112,113,0,1,2,3,4,5,6, + 7,8,9,60,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,0,1,2,3,4, + 5,6,7,8,9,71,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,0,0,0,3, + 3,0,4,0,3,0,3,0,0,4, + 0,0,5,0,1,2,3,4,5,6, + 7,8,9,68,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,0,1,2,3,4, + 5,6,7,8,9,60,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,0,1,2,3, + 4,5,6,7,8,9,95,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,0,1,2, + 3,4,5,6,7,8,9,0,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,0,1, + 2,0,4,0,0,0,0,9,0,4, + 4,13,14,15,16,17,18,19,20,21, + 22,23,0,0,0,0,3,0,0,1, + 2,3,4,5,6,7,8,70,10,0, + 42,0,0,0,0,47,48,49,50,51, + 52,53,54,55,56,57,0,59,0,61, + 62,63,0,1,2,60,4,0,60,68, + 42,9,69,45,70,13,14,15,16,17, + 18,19,20,21,22,23,58,0,0,0, + 68,0,64,65,70,67,69,70,10,10, + 72,60,74,60,42,0,0,0,0,47, + 48,49,50,51,52,53,54,55,56,57, + 0,59,0,61,62,63,70,60,70,0, + 0,0,0,13,14,15,16,17,18,19, + 20,21,22,23,0,1,2,3,4,5, + 6,7,8,0,10,0,117,0,71,0, + 69,0,42,0,76,76,60,47,48,49, + 50,51,52,53,54,55,56,57,71,71, + 0,0,0,26,0,0,42,3,59,45, + 0,1,2,3,4,5,6,7,8,69, + 10,69,58,0,73,0,0,0,64,65, + 5,67,0,60,0,0,72,0,74,0, + 0,0,1,2,3,4,5,6,7,8, + 69,10,42,0,71,45,0,1,2,3, + 4,5,6,7,8,0,10,0,58,68, + 68,0,0,73,64,65,71,67,0,0, + 0,0,72,42,74,0,45,0,1,2, + 3,4,5,6,7,8,0,10,42,58, + 0,45,0,71,0,64,65,0,67,0, + 0,0,0,72,58,74,0,0,0,0, + 64,65,0,67,0,0,0,0,72,42, + 74,0,45,0,1,2,3,4,5,6, + 7,8,0,10,0,58,0,0,0,0, + 0,64,65,0,67,0,0,0,0,0, + 0,74,0,0,1,2,3,4,5,6, + 7,8,0,10,0,42,0,0,45,0, + 0,0,0,0,0,0,0,0,0,0, + 0,58,0,0,0,0,0,64,65,0, + 67,0,0,0,0,42,0,74,45,0, + 0,0,0,0,0,0,0,0,0,0, + 0,58,0,0,0,0,0,64,65,0, + 67,0,0,0,0,0,0,74,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0,0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1491,391 +1569,418 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TermAction { public final static char termAction[] = {0, - 5344,5294,5039,5039,5039,5039,5039,5039,1,1, + 5623,5557,5273,5273,5273,5273,5273,5273,5273,1, + 5582,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5564,3464,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5298,3048,1,1,1,1,1, - 1,1,1,1,1,39,1,1,5382,1, - 1,1,617,3040,1,863,570,38,5159,5344, - 5180,5352,5382,1152,920,3019,3098,2011,2962,2978, - 3605,3006,3026,3000,2975,2991,5344,5294,5039,5039, - 5039,5039,5039,5039,1,1,1,1,1,1, + 136,1,1,1,783,2857,2271,725,2341,5623, + 5279,5276,5630,929,1252,1290,3684,3448,3019,2051, + 2930,3425,4212,3445,1652,3442,3198,3441,8,5591, + 5591,5591,5591,5591,5591,5591,5591,5591,5591,5591, + 5591,5591,5591,5591,5591,5591,5591,5591,5591,5591, + 5591,5591,5591,5591,5591,5591,5591,5591,5591,5591, + 5591,5591,5591,5591,5591,5591,5591,5591,5591,5591, + 5591,5591,5591,5591,5591,5591,5591,5591,5591,5591, + 5591,5591,5591,5591,5591,5591,5623,5591,137,5591, + 5591,5591,5591,5591,5591,5591,2341,5623,5279,5276, + 5591,929,1252,5591,3684,5591,5591,5591,5591,5591, + 5591,5591,5591,5591,5591,5591,5623,5557,5273,5273, + 5273,5273,5273,5273,5273,1,5561,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5298, - 3048,1,1,1,1,1,1,1,1,1, - 1,5344,1,1,919,1,1,1,617,3040, - 5344,863,570,1,5051,5045,5048,5058,35,5055, - 920,3019,3098,2011,2962,2978,3605,3006,3026,3000, - 2975,2991,5344,5294,5039,5039,5039,5039,5039,5039, 1,1,1,1,1,1,1,1,1,1, + 1,5564,3464,1,1,1,1,1,1,1, + 1,1,1,1,5623,1,5623,1,1,1, + 783,2857,2271,725,5623,1,5292,5288,5282,5285, + 5299,1290,5296,3448,3019,2051,2930,3425,4212,3445, + 1652,3442,3198,3441,5623,5557,5273,5273,5273,5273, + 5273,5273,5273,1,5561,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5298,3048,1,1,1, - 1,1,1,1,1,1,1,1176,1,1, - 5344,1,1,1,617,3040,307,863,570,1, - 5051,4284,5048,1338,5650,2322,920,3019,3098,2011, - 2962,2978,3605,3006,3026,3000,2975,2991,5344,5294, - 5039,5039,5039,5039,5039,5039,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5564, + 3464,1,1,1,1,1,1,1,1,1, + 1,1,5623,1,5623,1,1,1,783,2857, + 2271,725,5623,1,5292,5288,4688,5285,1252,1290, + 3684,3448,3019,2051,2930,3425,4212,3445,1652,3442, + 3198,3441,5623,5557,5273,5273,5273,5273,5273,5273, + 5273,1,5561,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5564,3464,1, 1,1,1,1,1,1,1,1,1,1, - 1,5298,3048,1,1,1,1,1,1,1, - 1,1,1,1,1,1,388,1,1,1, - 617,3040,5344,863,570,1,5051,4284,5048,1338, - 5344,2322,920,3019,3098,2011,2962,2978,3605,3006, - 3026,3000,2975,2991,5344,5294,5039,5039,5039,5039, - 5039,5039,1,1,1,1,1,1,1,1, + 5623,1,142,1,1,1,783,2857,2271,725, + 5623,1,5292,5288,4688,5285,1252,1290,3684,3448, + 3019,2051,2930,3425,4212,3445,1652,3442,3198,3441, + 5623,5557,5273,5273,5273,5273,5273,5273,5273,1, + 5561,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5298,3048,1, - 1,1,1,1,1,1,1,1,1,508, - 1,1,5174,1,1,1,617,3040,5344,863, - 570,5344,5180,5344,997,1338,2343,2322,920,3019, - 3098,2011,2962,2978,3605,3006,3026,3000,2975,2991, - 5344,5294,5039,5039,5039,5039,5039,5039,1,1, + 1,1,1,1,1,5564,3464,1,1,1, + 1,1,1,1,1,1,1,1,5623,1, + 138,1,1,1,783,2857,2271,725,440,1, + 1,1,1,2278,5428,1290,5428,3448,3019,2051, + 2930,3425,4212,3445,1652,3442,3198,3441,5623,5557, + 5273,5273,5273,5273,5273,5273,5273,1,5561,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5298,3048,1,1,1,1,1, - 1,1,1,1,1,5344,1,1,3229,1, - 1,1,617,3040,5344,863,570,5344,5180,3306, - 997,1338,123,2322,920,3019,3098,2011,2962,2978, - 3605,3006,3026,3000,2975,2991,5344,5294,5039,5039, - 5039,5039,5039,5039,1,1,1,1,1,1, + 1,1,1,5564,3464,1,1,1,1,1, + 1,1,1,1,1,1,1372,1,139,1, + 1,1,783,2857,2271,725,441,42,42,1033, + 5664,444,5532,1290,5529,3448,3019,2051,2930,3425, + 4212,3445,1652,3442,3198,3441,5623,5557,5273,5273, + 5273,5273,5273,5273,5273,1,5561,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5298, - 3048,1,1,1,1,1,1,1,1,1, - 1,5344,1,1,3274,1,1,1,617,3040, - 39,863,570,5382,5344,2961,675,5677,2851,2882, - 920,3019,3098,2011,2962,2978,3605,3006,3026,3000, - 2975,2991,5344,5294,5039,5039,5039,5039,5039,5039, 1,1,1,1,1,1,1,1,1,1, + 1,5564,3464,1,1,1,1,1,1,1, + 1,1,1,1,2420,1,5623,1,1,1, + 783,2857,2271,725,97,1,1,1033,1,426, + 5588,1290,5588,3448,3019,2051,2930,3425,4212,3445, + 1652,3442,3198,3441,5623,5557,5273,5273,5273,5273, + 5273,5273,5273,1,5561,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5298,3048,1,1,1, - 1,1,1,1,1,1,1,5344,1,1, - 5344,1,1,1,617,3040,117,863,570,5344, - 5379,3526,1,1338,290,2322,920,3019,3098,2011, - 2962,2978,3605,3006,3026,3000,2975,2991,5344,5294, - 5039,5039,5039,5039,5039,5039,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5564, + 3464,1,1,1,1,1,1,1,1,1, + 1,1,3317,1,5623,1,1,1,783,2857, + 2271,725,100,42,42,5623,5664,5623,5614,1290, + 5611,3448,3019,2051,2930,3425,4212,3445,1652,3442, + 3198,3441,5623,5557,5273,5273,5273,5273,5273,5273, + 5273,1,5561,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5564,3464,1, 1,1,1,1,1,1,1,1,1,1, - 1,5298,3048,1,1,1,1,1,1,1, - 1,1,1,1935,1,1,2749,1,1,1, - 617,3040,5344,863,570,3502,3478,5344,5180,5344, - 5382,3028,920,3019,3098,2011,2962,2978,3605,3006, - 3026,3000,2975,2991,5344,2985,1,1,1,1, + 6025,1,3568,1,1,1,783,2857,2271,725, + 42,5623,5640,5641,5664,5623,1252,1290,3684,3448, + 3019,2051,2930,3425,4212,3445,1652,3442,3198,3441, + 5623,3440,1,1,1,1,1,1,1,1, + 5633,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5632,3464,1,1,1, + 1,1,1,1,1,1,1,1,2090,1, + 5623,1,1,1,783,2857,2271,725,224,5623, + 5279,5276,5623,929,5554,1290,3684,3448,3019,2051, + 2930,3425,4212,3445,1652,3442,3198,3441,5623,5382, + 5382,5382,5382,5382,5382,5382,5382,327,5382,5382, + 5382,372,5292,5288,2824,5285,1252,1,3684,1, + 5880,5623,5382,5382,786,5883,5966,5967,5877,5884, + 5856,5882,5881,5878,5879,5857,342,2129,5623,3728, + 5382,1513,1333,5382,5623,5382,5382,5382,5382,5382, + 5382,5382,5382,5382,5382,5382,5623,42,5382,5623, + 1161,5664,4399,1387,5382,5959,5382,5382,5382,5382, + 5382,5382,310,5382,5382,1304,41,5404,5401,1304, + 363,5932,1165,622,5966,5967,5382,5382,5382,5382, + 5382,5382,5382,5382,5382,5382,5382,5382,5382,5382, + 5382,5382,5382,5382,5382,5382,5382,5382,5382,5382, + 5382,5382,5382,5382,5382,5623,5273,5273,5273,5273, + 5273,5273,5273,5273,1,5594,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5594,5785,1,1,1,1,1,1,1,1, + 1,1,1,5623,1,5985,1,1,1,5623, + 1,1,1,1,1,1,1,1,1,5623, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5623,5785,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1094, + 1,1,1,5623,1,1,1,1,1,1, + 1,1,1,5623,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5623,5785, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5353,3048,1, + 1,5623,1,1642,1,1,1,5623,1,1, + 1,1,1,1,1,1,1,5623,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5344,1,1,1,617,3040,113,863, - 570,221,35,397,5061,5171,5382,443,920,3019, - 3098,2011,2962,2978,3605,3006,3026,3000,2975,2991, - 5344,5143,5143,5143,5143,5143,5143,5143,5344,5143, - 5143,369,5051,2908,5048,1338,1,2322,1,5344, - 1512,5598,5143,5143,5344,5171,5601,5684,5685,5595, - 5602,5574,5600,5599,5596,5597,5344,5575,39,3307, - 5143,5344,365,5143,5344,5143,5143,5143,5143,5143, - 5143,5143,5143,5143,5143,5344,5143,2337,5143,3332, - 4141,914,365,1194,5143,5143,4163,5143,5143,5143, - 5143,5143,4185,5143,5143,1253,439,1,5344,1, - 1103,5186,2693,5186,5344,5150,5143,5143,5143,5143, - 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, - 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, - 5143,5143,5143,5143,5143,5344,5039,5039,5039,5039, - 5039,5039,5039,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5322,5503, + 1,1,5623,5785,1,1,1,1,1,1, + 1,1,1,1,1,5623,1,1685,1,1, + 1,5623,1,1,1,1,1,1,1,1, + 1,5623,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5344,1,1,5344,1,1,1,5344,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5623,5785,1,1, + 1,1,1,1,1,1,1,1,1,5623, + 1,5413,1,1,1,5623,1,1,1,1, + 1,1,1,1,1,5623,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5344,5503,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2325,1,1,1,5344, + 5623,5785,1,1,1,1,1,1,1,1, + 1,1,1,5623,1,1857,1,1,1,5623, + 1,1,1,1,1,1,1,1,1,5623, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5785,1,1,1,1, + 1,1,1,1,1,1,1,5623,1,2271, + 1,1,1,42,5279,5276,2696,929,3397,3994, + 3684,4017,2035,134,3971,3948,5889,5887,5896,5895, + 5891,5892,5890,5893,5894,5897,5888,4063,4040,5646, + 3658,2319,2419,5648,2370,630,2400,5649,5647,2277, + 5642,5644,5645,5643,816,5880,5623,5392,5389,225, + 5883,5966,5967,5877,5884,5856,5882,5881,5878,5879, + 5857,432,6022,5623,1382,6023,6024,5623,5447,5447, + 229,5443,229,229,229,229,1,5451,390,5987, + 1,1,1,1,1,1,1,1,1,1, + 1,5880,5623,5640,5641,5623,5883,5966,5967,5877, + 5884,5856,5882,5881,5878,5879,5857,5623,6054,1, + 2496,2467,229,6034,1,1,1,1,1,1, + 1,1,1,1,1,497,1,5623,1,1, + 1,861,398,5279,5276,5623,5664,5627,5386,415, + 229,6119,5623,5640,5641,5633,5623,5447,5447,229, + 5443,229,229,229,229,1,5517,131,845,1, + 1,1,1,1,1,1,1,1,1,1, + 5623,1,5273,5273,229,5273,229,229,229,229, + 5632,229,5623,9861,9681,6056,6057,6058,1,5623, + 42,229,6034,1,1,1,1,1,1,1, + 1,1,1,1,497,1,226,1,1,1, + 861,1,123,10013,2815,715,229,2662,414,229, + 6119,347,391,3351,3290,5544,5523,30,5544,5270, + 5544,1164,5544,5544,5544,783,984,38,725,432, + 42,42,5626,5664,5623,6119,5544,5544,5880,450, + 2538,2377,5623,5883,5966,5967,5877,5884,5856,5882, + 5881,5878,5879,5857,6056,6057,6058,5544,135,144, + 5623,5292,5288,4688,5285,1252,5398,3684,5395,1304, + 347,347,5544,40,5437,5437,6054,347,5623,2025, + 5544,5544,5544,5544,5544,5544,5520,5520,5544,351, + 5279,5276,2824,929,1252,1387,3684,5959,802,5407, + 5544,5544,5544,5544,5544,5544,5544,5544,5544,5544, + 5544,5544,5544,5544,5544,5544,5544,5544,5544,5544, + 5544,5544,5544,5544,5544,5544,5544,5544,5544,390, + 1785,5662,5547,1996,397,5547,1153,5547,5419,5547, + 5547,5547,318,5292,5288,4688,5285,1252,5398,3684, + 5395,3538,5623,5547,5547,2496,2467,1304,40,5437, + 5437,2239,530,1742,1699,1656,1613,1570,1527,1484, + 1441,1398,1343,3547,5547,5623,5279,5276,4688,929, + 1252,1387,3684,5959,5623,5279,5276,319,5664,5550, + 2561,5623,5279,5276,509,5664,5623,5547,5547,5547, + 5547,5547,5547,3624,5623,5547,5623,5279,5276,4688, + 929,1252,1387,3684,5959,5623,5662,5547,5547,5547, + 5547,5547,5547,5547,5547,5547,5547,5547,5547,5547, + 5547,5547,5547,5547,5547,5547,5547,5547,5547,5547, + 5547,5547,5547,5547,5547,5547,5623,5273,5273,229, + 5273,229,229,229,229,1,229,1242,1065,1, 1,1,1,1,1,1,1,1,1,1, + 1,5292,5288,5282,5285,5299,5623,5296,5623,317, + 5633,293,1,5292,5288,2824,5285,1252,10013,3684, + 5623,229,5639,1,1,1,1,1,1,1, + 1,1,1,1,5270,1,227,1,1,1, + 783,984,5623,725,5623,5632,538,5623,5279,5276, + 6119,5664,5623,5623,5273,5273,229,5273,229,229, + 229,229,1,229,5623,5623,1,1,1,1, + 1,1,1,1,1,1,1,1,5880,4675, + 1304,391,1957,5883,5966,5967,5877,5884,5856,5882, + 5881,5878,5879,5857,5623,10013,5623,12,229,5639, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5344,5503,1,1,1,1,1,1, - 1,1,1,1,5344,1,1,3051,1,1, - 1,5344,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5344,5503,1,1,1,1, - 1,1,1,1,1,1,5344,1,1,3082, - 1,1,1,5344,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5344,5503,1,1, - 1,1,1,1,1,1,1,1,5344,1, - 1,5168,1,1,1,5344,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5344,5503, - 1,1,1,1,1,1,1,1,1,1, - 5344,1,1,3295,1,1,1,5344,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5344,5503,1,1,1,1,1,1,1,1, - 1,1,5344,1,1,339,1,1,1,39, - 5042,4860,997,628,4053,2322,4075,1758,4031,4001, - 5607,5605,5614,5613,5609,5610,5608,5611,5612,5615, - 5606,4119,4097,5364,3103,1764,1813,5366,1771,4251, - 1806,5367,5365,1729,5360,5362,5363,5361,1291,5598, - 116,5684,5685,222,5601,5684,5685,5595,5602,5574, - 5600,5599,5596,5597,5344,5575,5742,27,662,5743, - 5744,5344,5202,226,5198,226,226,226,226,1, - 5344,128,1,1,1,1,1,1,1,1, - 1,1,1,5598,5344,5064,5344,5382,5601,5684, - 5685,5595,5602,5574,5600,5599,5596,5597,5344,5575, - 322,1,5177,5344,226,5754,1,1,1,1, - 1,1,1,1,1,1,496,1,1,1, - 1,1,1,1281,5260,5260,5344,5251,4163,2580, - 5344,226,414,5839,4185,5344,431,39,5263,5382, - 5344,5202,226,5198,226,226,226,226,1,2510, - 1330,1,1,1,1,1,1,1,1,1, - 1,1,2522,2431,1253,1,5039,226,5039,226, - 226,226,226,5353,2435,133,5254,5776,5777,5778, - 1,5774,2294,226,5754,1,1,1,1,1, - 1,1,1,1,1,496,1,1,4272,1, - 1,1,1281,955,120,9462,5352,5344,226,307, - 226,413,5839,3162,2625,223,388,5650,5281,5344, - 5036,5281,5035,5281,387,5281,5281,617,1099,5344, - 396,570,50,5174,449,1512,218,5839,5281,5281, - 315,5051,4284,5048,1338,5156,2322,5153,1,5051, - 5045,5048,5058,5344,5055,5598,5776,5777,5778,5281, - 5601,5684,5685,5595,5602,5574,5600,5599,5596,5597, - 137,5575,560,141,5281,1,5051,2908,5048,1338, - 5281,2322,5147,5281,5281,5281,5281,5281,508,5281, - 1512,5353,5162,30,1,5039,226,5039,226,226, - 226,226,5281,5281,5281,5281,5281,5281,5281,5281, - 5281,5281,5281,5281,5281,5281,5281,5281,5281,5281, - 5281,5281,5281,5281,5281,5281,5281,5281,5281,5281, - 5281,387,5350,5284,9462,30,5284,226,5284,1253, - 5284,5284,1767,5344,1,5051,4284,5048,1338,5036, - 2322,508,1252,5284,5284,5344,617,1099,5344,5180, - 570,997,5291,421,2322,134,5839,587,589,5776, - 5777,5778,2294,2163,5284,1725,1683,1641,1599,1557, - 1515,1473,1431,1389,1347,3404,5344,440,39,5287, - 5382,5344,5269,5165,5266,5284,5344,5379,5284,5284, - 5284,5284,5284,5344,5284,5344,5051,4284,5048,1338, - 5156,2322,5153,1190,1973,5344,115,5284,5284,5284, - 5284,5284,5284,5284,5284,5284,5284,5284,5284,5284, - 5284,5284,5284,5284,5284,5284,5284,5284,5284,5284, - 5284,5284,5284,5284,5284,5284,5344,5039,226,5039, - 226,226,226,226,1,5344,1469,1,1,1, - 1,1,1,1,1,1,1,1,1,5051, - 4284,5048,1338,3033,2322,1973,5344,5180,4284,997, - 1338,2961,2322,5677,5344,723,9462,314,3189,226, - 5359,1,1,1,1,1,1,1,1,1, - 1,5036,1,1,4163,1,1,1,617,1099, - 4185,315,570,5344,94,1,5344,1,5839,5319, - 2196,5319,5344,5344,5039,226,5039,226,226,226, - 226,1,37,5195,1,1,1,1,1,1, - 1,1,1,1,1,5344,5180,4284,997,1338, - 2961,2322,5677,97,39,2281,5382,5344,5335,5353, - 5332,5344,7518,9462,5344,11,226,5359,1,1, - 1,1,1,1,1,1,1,1,5036,1, - 1,122,1,1,1,617,1099,5380,3216,570, - 3162,2625,50,5150,5344,5839,5344,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5344,1,1,5353, - 5503,5344,10,5344,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,131,1,1,166,5503,5344,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,431,1, - 1,166,5503,5344,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5774,1,1,119,5503,927,796, - 425,3526,5344,348,5180,2908,997,1338,2961,2322, - 5677,348,39,3052,5382,316,2961,2756,5677,1, - 5051,2908,5048,1338,41,2322,166,5344,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1253,1,1, - 3088,5503,5745,1,5304,1253,5301,1,2961,3052, - 5677,5344,5183,1253,1019,3502,3478,1,350,3052, - 3368,5344,5344,5180,5344,997,5291,5344,2322,5344, - 166,1,5051,4860,5048,628,4053,2322,4075,5215, - 4031,4001,5242,5248,5221,5224,5236,5233,5239,5230, - 5227,5218,5245,4119,4097,5364,3103,1764,1813,5366, - 1771,4251,1806,5367,5365,1729,5360,5362,5363,5361, - 1291,1253,39,39,344,344,365,2612,3548,4900, - 344,1253,1253,121,37,5195,863,37,5195,3306, - 135,5195,3162,2625,3218,4900,365,5351,512,5344, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5380, - 1,1,2493,5503,5344,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,360,1,1,2236,5503,5344, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5344,5503,5344,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5703,5503,5344, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5344, - 1,1,5705,5503,5344,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5344,1,1,3648,5503,5344, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5344, - 1,1,5344,5503,5344,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5344,1,1,5344,5503,143, - 5180,4860,997,628,4053,2322,4075,1506,4031,4001, - 5607,5605,5614,5613,5609,5610,5608,5611,5612,5615, - 5606,4119,4097,5364,3103,1764,1813,5366,1771,4251, - 1806,5367,5365,1729,5360,5362,5363,5361,1291,114, - 39,39,1,5051,4860,5048,628,4053,2322,4075, - 5215,4031,4001,5242,5248,5221,5224,5236,5233,5239, - 5230,5227,5218,5245,4119,4097,5364,3103,1764,1813, - 5366,1771,4251,1806,5367,5365,1729,5360,5362,5363, - 5361,1291,5344,39,39,39,5180,4860,997,628, - 4053,2322,4075,1506,4031,4001,5607,5605,5614,5613, - 5609,5610,5608,5611,5612,5615,5606,4119,4097,5364, - 3103,1764,1813,5366,1771,4251,1806,5367,5365,1729, - 5360,5362,5363,5361,1291,5344,1512,4163,5344,141, - 4863,132,5344,4185,3610,118,5344,723,5344,130, - 3526,289,5636,139,1,5344,127,3794,126,49, - 3305,5344,5251,5352,5344,324,5352,39,5180,4860, - 997,628,4053,2322,4075,1506,4031,4001,5607,5605, - 5614,5613,5609,5610,5608,5611,5612,5615,5606,4119, - 4097,5364,3103,1764,1813,5366,1771,4251,1806,5367, - 5365,1729,5360,5362,5363,5361,1291,2580,1,2435, - 1672,5254,5808,5802,923,5806,5310,5800,5801,1, - 5039,226,5039,226,226,226,226,5344,5150,1253, - 5831,5832,3305,5809,3502,3478,927,796,5352,2163, - 2522,2431,2851,2882,2851,2882,405,5344,5206,1637, - 1638,3404,2201,125,93,5344,5278,453,288,9462, - 5344,7518,226,397,5379,234,5811,5307,4141,914, - 5344,5636,571,136,5036,5812,5833,5810,124,138, - 452,617,1099,140,1,570,4935,5344,3276,5257, - 218,5839,1,5344,5822,5821,5834,5803,5804,5827, - 5828,224,5380,5825,5826,5805,5807,5829,5830,5835, - 5815,5816,5817,5813,5814,5823,5824,5819,5818,5820, - 5344,5189,1672,4943,5808,5802,2935,5806,5351,5800, - 5801,1,5039,226,5039,226,226,226,226,2851, - 2882,5598,5831,5832,5192,5809,5601,5684,5685,5595, - 5602,5574,5600,5599,5596,5597,1,5575,45,5212, - 5851,1637,1638,5352,2851,2882,5344,5344,377,4886, - 2236,9462,5344,5344,226,4903,3773,589,5811,5344, - 518,4499,2201,5344,571,4912,5036,5812,5833,5810, - 5344,3160,5344,617,1099,5344,5344,570,3797,36, - 5329,1,217,5839,511,444,5822,5821,5834,5803, - 5804,5827,5828,5209,508,5825,5826,5805,5807,5829, - 5830,5835,5815,5816,5817,5813,5814,5823,5824,5819, - 5818,5820,39,5180,4860,997,628,4053,2322,4075, - 1506,4031,4001,5607,5605,5614,5613,5609,5610,5608, - 5611,5612,5615,5606,4119,4097,5364,3103,1764,1813, - 5366,1771,4251,1806,5367,5365,1729,5360,5362,5363, - 5361,1291,825,2664,164,5344,5344,3888,3917,5344, - 5344,3092,3948,3092,5344,5344,3699,3882,5344,5344, - 4329,4665,105,5344,4817,3092,5344,3305,39,5180, - 4860,997,628,4053,2322,4075,1506,4031,4001,5607, - 5605,5614,5613,5609,5610,5608,5611,5612,5615,5606, - 4119,4097,5364,3103,1764,1813,5366,1771,4251,1806, - 5367,5365,1729,5360,5362,5363,5361,39,5180,4860, - 997,628,4053,2322,4075,1506,4031,4001,5607,5605, - 5614,5613,5609,5610,5608,5611,5612,5615,5606,4119, - 4097,5364,3103,1764,1813,5366,1771,4251,1806,5367, - 5365,1729,5360,5362,5363,5361,1291,5344,279,4816, - 5338,5344,5344,5344,5344,5344,5344,5344,364,5344, - 423,5344,160,1,5344,351,47,5275,5344,9430, - 37,5195,5344,5325,5344,5344,5344,5344,5344,102, - 5344,5350,39,5180,4860,997,628,4053,2322,4075, - 1506,4031,4001,5607,5605,5614,5613,5609,5610,5608, - 5611,5612,5615,5606,4119,4097,5364,3103,1764,1813, - 5366,1771,4251,1806,5367,5365,1729,5360,5362,5363, - 5361,5272,3558,5380,5794,2472,3340,5380,1837,1253, - 1809,2049,3896,4603,4710,3352,525,2936,5344,5344, - 5344,5344,5344,4320,5344,3069,1711,39,5180,4860, - 997,628,4053,2322,4075,1506,4031,4001,5607,5605, - 5614,5613,5609,5610,5608,5611,5612,5615,5606,4119, - 4097,5364,3103,1764,1813,5366,1771,4251,1806,5367, - 5365,1729,5360,5362,5363,5361,1291,39,5180,4883, - 997,628,4053,2322,4075,1506,4031,4001,5607,5605, - 5614,5613,5609,5610,5608,5611,5612,5615,5606,4119, - 4097,5364,3103,1764,1813,5366,1771,4251,1806,5367, - 5365,1729,5360,5362,5363,5361,39,5180,4860,997, - 628,4053,2322,4075,1506,4031,4001,5607,5605,5614, - 5613,5609,5610,5608,5611,5612,5615,5606,4119,4097, - 5364,3103,1764,1813,5366,1771,4251,1806,5367,5365, - 1729,5360,5362,5363,5361,39,5180,4860,997,628, - 4053,2322,4075,1506,4031,4001,5607,5605,5614,5613, - 5609,5610,5608,5611,5612,5615,5606,4119,4097,5364, - 3103,1764,1813,5366,1771,4251,1806,5367,5365,1729, - 5360,5362,5363,5361,5344,5042,372,5382,529,5344, - 188,5344,768,37,5,5607,5605,5614,5613,5609, - 5610,5608,5611,5612,5615,5606,5344,5344,370,503, - 1,501,417,1,5039,226,5039,226,226,226, - 226,5344,5344,101,5598,5344,1,3260,178,5601, - 5684,5685,5595,5602,5574,5600,5599,5596,5597,5344, - 5575,5742,5344,662,5743,5744,238,5136,5380,5140, - 632,5344,37,9462,768,1148,226,5127,5133,5106, - 5109,5121,5118,5124,5115,5112,5103,5130,5036,5344, - 5344,5316,5344,3084,3085,617,1099,1208,4923,570, - 4926,2087,5344,5351,218,5839,5091,2125,3091,5344, - 5344,5082,5076,5073,5100,5079,5070,5085,5088,5097, - 5094,220,5067,5742,5344,662,5743,5744,5344,1851, - 5341,1176,5607,5605,5614,5613,5609,5610,5608,5611, - 5612,5615,5606,1,5039,226,5039,226,226,226, - 226,5344,5344,5344,5344,5344,505,5344,5344,5525, - 3679,5598,76,5344,3741,5344,5601,5684,5685,5595, - 5602,5574,5600,5599,5596,5597,5344,5575,5344,5524, - 5344,5344,5344,9462,5409,5410,226,1,5039,226, - 5039,226,226,226,226,5344,5344,1893,5036,5344, - 129,5344,5344,5344,5344,617,1099,5344,5344,570, - 5344,5344,5344,5344,218,5839,5344,1,5039,226, - 5039,226,226,226,226,663,3217,9462,5344,5344, - 226,1,5039,226,5039,226,226,226,226,5344, - 5344,5344,5036,5344,5344,5344,5344,5344,5344,617, - 1099,5344,5344,570,5344,5344,5344,9462,2580,5839, - 226,5344,5344,575,5344,5344,5344,5313,5344,5344, - 5344,9462,5036,5344,226,5344,1005,5344,5344,617, - 1099,5344,5344,570,5344,5344,5036,5344,5344,5839, - 5344,2522,2431,617,1099,5344,5344,570,5344,5344, - 5344,5344,5344,5839 + 1,5270,1,6131,1,1,1,783,984,5623, + 725,53,5392,5389,6056,6057,6058,6119,292,5640, + 5641,5623,5623,1,1,1,1,1,1,1, + 1,1,5633,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,11,1,1,5632,5785,5623, + 1,1,1,1,1,1,1,1,1,169, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5623,1,1,169,5785,5623,1,1,1, + 1,1,1,1,1,1,169,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,375,1, + 1,169,5785,5623,1,1,1,1,1,1, + 1,1,1,169,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5623,1,1,116,5785, + 5623,5623,5623,3578,351,42,42,2815,5664,5623, + 1387,5629,5959,1,5292,5288,4688,5285,1252,1208, + 3684,1,5292,5288,2824,5285,1252,191,3684,169, + 5623,1,1,1,1,1,1,1,1,1, + 169,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1304,1,1,1871,5785,5628,4155,4604, + 5623,5279,5276,52,929,5554,1996,3684,4109,1304, + 40,5437,5437,5623,4132,5437,1,5292,5288,2696, + 5285,3397,3994,3684,4017,5466,169,3971,3948,5493, + 5499,5472,5475,5487,5484,5490,5481,5478,5469,5496, + 4063,4040,5646,3658,2319,2419,5648,2370,630,2400, + 5649,5647,2277,5642,5644,5645,5643,816,2223,42, + 42,2321,5623,5457,5454,5623,5640,5641,3691,5620, + 3148,5623,9861,9681,40,5623,1,1,1,1, + 1,1,1,1,1,513,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5623,1,1, + 5662,5785,5623,1,1,1,1,1,1,1, + 1,1,5662,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,291,1,1,5623,5785,42, + 5279,5276,2696,929,3397,3994,3684,4017,871,5631, + 3971,3948,5889,5887,5896,5895,5891,5892,5890,5893, + 5894,5897,5888,4063,4040,5646,3658,2319,2419,5648, + 2370,630,2400,5649,5647,2277,5642,5644,5645,5643, + 816,1,5570,5570,1,5567,5623,1387,454,5959, + 310,368,5623,5623,368,140,48,5463,5463,5932, + 1,33,5629,5631,676,1948,50,5538,5538,5502, + 5807,5630,42,5279,5276,2696,929,3397,3994,3684, + 4017,871,5631,3971,3948,5889,5887,5896,5895,5891, + 5892,5890,5893,5894,5897,5888,4063,4040,5646,3658, + 2319,2419,5648,2370,630,2400,5649,5647,2277,5642, + 5644,5645,5643,816,5460,567,5431,368,3041,5505, + 368,5410,4606,987,5535,5630,5623,5623,5628,5623, + 10009,10009,40,5437,5437,144,368,5623,1948,368, + 398,5640,5641,2025,5630,5623,1,1,1,1, + 1,1,1,1,1,590,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5662,1,1, + 3626,5785,5623,1,1,1,1,1,1,1, + 1,1,5623,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5623,1,1,2239,5785,5623, + 1,1,1,1,1,1,1,1,1,3547, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5623,1,1,4431,5785,5623,1,1,1, + 1,1,1,1,1,1,5623,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,96,1, + 1,5541,5785,5623,1,1,1,1,1,1, + 1,1,1,5623,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,237,1,1,5573,5785, + 5623,1,1,1,1,1,1,1,1,1, + 5623,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,4554,5785,146,5279,5276, + 2696,929,3397,3994,3684,4017,871,5623,3971,3948, + 5889,5887,5896,5895,5891,5892,5890,5893,5894,5897, + 5888,4063,4040,5646,3658,2319,2419,5648,2370,630, + 2400,5649,5647,2277,5642,5644,5645,5643,816,119, + 42,42,1,5292,5288,2696,5285,3397,3994,3684, + 4017,5466,126,3971,3948,5493,5499,5472,5475,5487, + 5484,5490,5481,5478,5469,5496,4063,4040,5646,3658, + 2319,2419,5648,2370,630,2400,5649,5647,2277,5642, + 5644,5645,5643,816,5623,42,42,42,5279,5276, + 2696,929,3397,3994,3684,4017,871,5623,3971,3948, + 5889,5887,5896,5895,5891,5892,5890,5893,5894,5897, + 5888,4063,4040,5646,3658,2319,2419,5648,2370,630, + 2400,5649,5647,2277,5642,5644,5645,5643,816,4109, + 5623,325,5623,120,5422,4132,5623,380,1,3512, + 2765,2792,5631,122,5623,5601,5597,5502,1,3512, + 118,2815,5623,1948,42,5279,5276,2696,929,3397, + 3994,3684,4017,871,5627,3971,3948,5889,5887,5896, + 5895,5891,5892,5890,5893,5894,5897,5888,4063,4040, + 5646,3658,2319,2419,5648,2370,630,2400,5649,5647, + 2277,5642,5644,5645,5643,1,3041,5505,1559,1304, + 6088,6082,5662,6086,5630,5269,6080,6081,1,5292, + 5288,4688,5285,1252,353,3684,1304,2616,318,6111, + 6112,5623,6089,79,3484,3459,4258,5623,5640,5641, + 5623,5392,5389,38,3484,3459,121,5416,2074,2083, + 4109,130,3512,5416,5623,117,4132,5691,5692,129, + 133,44,1,318,3538,6091,132,128,33,127, + 5623,141,5526,775,6092,6113,6090,143,509,5626, + 4086,1251,5419,4086,1251,39,5608,5605,5416,5623, + 1,1604,1304,6102,6101,6114,6083,6084,6107,6108, + 167,3391,6105,6106,6085,6087,6109,6110,6115,6095, + 6096,6097,6093,6094,6103,6104,6099,6098,6100,5623, + 2662,5425,1559,5623,6088,6082,2662,6086,509,5576, + 6080,6081,406,5633,5630,5579,577,3484,3459,2765, + 2792,422,5511,6111,6112,4109,6089,2765,2792,2036, + 5623,4132,5623,2538,2377,2765,2792,2765,2792,2538, + 2377,125,2074,2083,124,5623,167,5623,5632,1910, + 181,590,3351,3290,5623,3351,3290,5514,2278,6091, + 5585,5623,5623,1,4336,4955,5623,775,6092,6113, + 6090,5623,5623,4644,5137,5149,5623,5623,5623,4167, + 4418,4420,5623,5623,5623,4492,3102,6102,6101,6114, + 6083,6084,6107,6108,373,5585,6105,6106,6085,6087, + 6109,6110,6115,6095,6096,6097,6093,6094,6103,6104, + 6099,6098,6100,42,5279,5276,2696,929,3397,3994, + 3684,4017,871,509,3971,3948,5889,5887,5896,5895, + 5891,5892,5890,5893,5894,5897,5888,4063,4040,5646, + 3658,2319,2419,5648,2370,630,2400,5649,5647,2277, + 5642,5644,5645,5643,816,42,5279,5276,2696,929, + 3397,3994,3684,4017,871,1261,3971,3948,5889,5887, + 5896,5895,5891,5892,5890,5893,5894,5897,5888,4063, + 4040,5646,3658,2319,2419,5648,2370,630,2400,5649, + 5647,2277,5642,5644,5645,5643,5623,5623,5623,4532, + 4701,5623,3592,108,4752,53,4758,5623,5623,5641, + 5623,1,3541,42,5279,5276,2696,929,3397,3994, + 3684,4017,871,2519,3971,3948,5889,5887,5896,5895, + 5891,5892,5890,5893,5894,5897,5888,4063,4040,5646, + 3658,2319,2419,5648,2370,630,2400,5649,5647,2277, + 5642,5644,5645,5643,816,42,5279,5276,5055,929, + 3397,3994,3684,4017,871,5641,3971,3948,5889,5887, + 5896,5895,5891,5892,5890,5893,5894,5897,5888,4063, + 4040,5646,3658,2319,2419,5648,2370,630,2400,5649, + 5647,2277,5642,5644,5645,5643,42,5279,5276,2696, + 929,3397,3994,3684,4017,871,3736,3971,3948,5889, + 5887,5896,5895,5891,5892,5890,5893,5894,5897,5888, + 4063,4040,5646,3658,2319,2419,5648,2370,630,2400, + 5649,5647,2277,5642,5644,5645,5643,42,5279,5276, + 2696,929,3397,3994,3684,4017,871,512,3971,3948, + 5889,5887,5896,5895,5891,5892,5890,5893,5894,5897, + 5888,4063,4040,5646,3658,2319,2419,5648,2370,630, + 2400,5649,5647,2277,5642,5644,5645,5643,5623,5279, + 5276,453,5664,5623,445,53,5623,613,5623,5640, + 3635,5889,5887,5896,5895,5891,5892,5890,5893,5894, + 5897,5888,354,5623,367,5623,5057,5623,1,5273, + 5273,229,5273,229,229,229,229,884,5440,519, + 5880,5623,5623,5623,5623,5883,5966,5967,5877,5884, + 5856,5882,5881,5878,5879,5857,424,6022,163,1382, + 6023,6024,241,5375,5371,5640,5379,5623,2887,5434, + 10013,613,6074,229,2439,5362,5368,5341,5344,5356, + 5353,5359,5350,5347,5338,5365,5270,504,1,1, + 1304,5623,783,984,923,725,3570,4604,526,5629, + 221,2961,6119,3546,5326,5623,5623,502,418,5317, + 5311,5308,5335,5314,5305,5320,5323,5332,5329,5302, + 223,6022,5623,1382,6023,6024,1391,3548,1828,5623, + 5623,5623,5623,5889,5887,5896,5895,5891,5892,5890, + 5893,5894,5897,5888,1,5273,5273,229,5273,229, + 229,229,229,2,5440,5623,3538,1,4198,5623, + 3489,5623,5880,5623,526,5628,2453,5883,5966,5967, + 5877,5884,5856,5882,5881,5878,5879,5857,4482,2145, + 5623,105,104,782,282,5623,10013,5617,2337,229, + 1,5273,5273,229,5273,229,229,229,229,3509, + 5508,3511,5270,5623,4324,5623,5623,5623,783,984, + 3720,725,506,40,5623,5623,221,5623,6119,5623, + 5623,1,5273,5273,229,5273,229,229,229,229, + 3537,5440,10013,5623,802,229,1,5273,5273,229, + 5273,229,229,229,229,5623,5440,5623,5270,4564, + 2184,5623,5623,5806,783,984,1914,725,5623,5623, + 5623,5623,220,10013,6119,5623,229,1,5273,5273, + 229,5273,229,229,229,229,5623,229,10013,5270, + 5623,229,5623,658,5623,783,984,5623,725,5623, + 5623,5623,5623,221,5270,6119,5623,5623,5623,5623, + 783,984,5623,725,5623,5623,5623,5623,221,10013, + 6119,5623,229,1,5273,5273,229,5273,229,229, + 229,229,5623,229,5623,5270,5623,5623,5623,5623, + 5623,783,984,5623,725,5623,5623,5623,5623,5623, + 5623,6119,5623,1,5273,5273,229,5273,229,229, + 229,229,5623,229,5623,10013,5623,5623,229,5623, + 5623,5623,5623,5623,5623,5623,5623,5623,5623,5623, + 5623,5270,5623,5623,5623,5623,5623,783,984,5623, + 725,5623,5623,5623,5623,10013,5623,6119,229,5623, + 5623,5623,5623,5623,5623,5623,5623,5623,5623,5623, + 5623,5270,5623,5623,5623,5623,5623,783,984,5623, + 725,5623,5623,5623,5623,5623,5623,6119 }; }; public final static char termAction[] = TermAction.termAction; @@ -1883,59 +1988,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asb { public final static char asb[] = {0, - 475,1,512,1049,584,723,57,785,3,869, - 475,350,213,3,879,890,870,890,533,890, - 868,890,874,890,826,890,350,613,5,723, - 345,1099,78,404,613,78,613,1049,826,473, - 218,358,870,261,870,613,214,774,13,613, - 267,56,351,535,264,265,870,545,613,556, - 613,613,56,825,267,267,69,66,59,59, - 348,68,345,613,72,774,434,78,556,76, - 166,774,78,78,613,396,655,27,477,477, - 358,358,358,350,358,613,214,69,13,267, - 266,267,56,255,267,545,545,613,556,56, - 613,267,870,350,311,829,126,345,613,345, - 255,72,556,348,166,166,214,655,27,358, - 952,358,358,613,358,69,69,952,613,13, - 1059,212,1051,13,267,267,776,613,351,613, - 545,952,270,951,473,766,1049,826,826,826, - 826,350,1049,86,294,1101,312,312,312,312, - 312,312,312,312,312,908,914,919,916,923, - 921,928,926,930,929,931,168,932,472,613, - 870,276,401,613,1049,774,311,828,166,946, - 730,72,71,473,76,774,997,519,996,472, - 826,353,353,952,952,613,952,396,1052,401, - 779,613,255,952,312,613,348,651,526,525, - 294,584,584,584,584,613,175,774,774,295, - 1009,583,396,294,892,892,395,395,175,1062, - 312,312,312,312,312,312,312,312,312,312, - 312,312,312,312,312,312,312,312,312,311, - 311,311,311,311,311,311,311,311,311,311, - 1062,312,295,872,277,350,613,175,539,828, - 72,986,311,994,994,649,348,954,27,477, - 27,471,471,69,214,68,548,312,1059,67, - 776,611,613,766,774,653,655,774,774,473, - 473,473,473,56,774,312,615,350,1101,166, - 583,311,774,213,215,213,774,166,916,916, - 914,914,914,921,921,921,921,919,919,926, - 923,923,929,928,930,1059,931,872,276,1059, - 312,1059,69,1049,1049,1049,277,1049,613,688, - 69,69,723,613,870,275,774,311,951,986, - 311,311,653,519,27,584,584,69,1052,312, - 312,350,774,655,1049,1049,1049,1049,613,613, - 613,396,312,584,912,732,774,613,215,396, - 311,9,1049,1059,277,294,294,293,783,294, - 69,69,723,124,872,828,988,472,613,1000, - 774,1062,1062,1062,1062,1049,1049,56,214,774, - 912,348,613,351,214,954,774,345,774,688, - 69,1049,774,872,988,686,613,1000,1000,774, - 774,774,774,175,175,613,913,913,912,1062, - 732,216,351,774,774,639,277,124,277,69, - 688,1062,277,274,1049,353,993,1000,774,774, - 626,175,312,166,613,216,870,870,1042,311, - 275,1061,69,774,656,471,993,993,774,166, - 613,277,774,1061,69,773,213,993,277,774, - 584,277 + 573,1,611,1116,329,731,543,948,52,410, + 573,870,100,52,998,1009,412,1009,673,1009, + 409,1009,993,1009,991,1009,870,871,3,731, + 865,1157,444,876,871,444,871,1116,991,946, + 7,106,412,254,412,871,101,233,497,871, + 365,541,359,676,361,363,412,249,871,301, + 871,871,541,990,365,365,739,243,236,236, + 868,245,865,871,437,233,907,444,301,441, + 298,233,444,444,871,145,625,512,575,575, + 106,106,106,870,106,871,101,739,497,365, + 364,365,541,45,365,249,249,871,301,541, + 871,365,412,870,831,370,257,865,871,865, + 45,437,301,868,298,298,101,625,512,106, + 1072,106,106,871,106,739,739,1072,871,497, + 571,99,561,497,365,365,778,871,359,871, + 249,1072,416,1071,946,224,1116,991,991,991, + 991,870,1116,453,814,1159,832,832,832,832, + 832,832,832,832,832,1028,1034,1039,1036,1043, + 1041,1048,1046,1050,1049,1051,54,1052,945,871, + 412,795,660,871,1116,233,831,368,298,1066, + 50,437,436,946,441,233,557,545,556,945, + 991,151,151,1072,1072,871,1072,145,563,660, + 782,871,45,1072,832,871,868,621,553,552, + 814,329,329,329,329,871,61,233,233,815, + 1075,328,145,814,1011,1011,144,144,61,1120, + 832,832,832,832,832,832,832,832,832,832, + 832,832,832,832,832,832,832,832,832,831, + 831,831,831,831,831,831,831,831,831,831, + 1120,832,815,414,796,870,871,61,680,368, + 437,421,831,554,554,619,868,157,512,575, + 512,944,944,739,101,245,687,832,571,244, + 778,356,871,224,233,623,625,233,233,946, + 946,946,946,541,233,832,742,870,1159,298, + 328,831,233,100,102,100,233,298,1036,1036, + 1034,1034,1034,1041,1041,1041,1041,1039,1039,1046, + 1043,1043,1049,1048,1050,571,1051,414,795,571, + 832,571,739,1116,1116,1116,796,1116,871,696, + 739,739,731,871,412,794,233,831,1071,421, + 831,831,623,545,512,329,329,739,563,832, + 832,870,233,625,1116,1116,1116,1116,871,871, + 871,145,832,329,1032,190,233,871,102,145, + 831,493,1116,786,571,796,814,814,812,874, + 814,739,739,731,491,414,368,423,945,871, + 663,233,1120,1120,1120,1120,1116,1116,541,101, + 233,1032,868,871,359,101,157,233,865,233, + 696,739,1116,233,414,423,658,871,663,663, + 233,233,233,233,61,61,871,1033,1033,1032, + 1120,190,104,359,233,233,766,796,491,796, + 739,696,1120,796,793,1116,151,428,663,233, + 233,753,61,832,298,871,104,412,412,1108, + 831,794,1118,739,233,626,944,428,428,233, + 298,871,796,233,1118,739,232,100,428,796, + 233,329,796 }; }; public final static char asb[] = Asb.asb; @@ -1943,117 +2048,123 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asr { public final static byte asr[] = {0, - 119,0,24,0,65,70,74,0,66,63, - 119,115,72,6,116,117,118,62,2,7, - 5,4,70,71,43,44,48,11,12,57, - 46,13,59,49,40,14,50,51,15,16, - 52,53,17,18,54,60,56,8,61,19, - 45,20,47,21,3,1,55,0,74,65, - 67,70,93,73,64,2,69,68,43,0, - 39,46,6,47,4,1,3,74,65,70, - 93,113,73,71,43,64,2,114,94,101, - 88,22,23,7,5,9,10,89,90,86, - 87,58,91,92,95,96,97,98,99,100, - 112,102,103,104,105,106,107,108,109,110, - 111,67,68,69,0,41,42,2,8,27, - 31,29,26,34,12,21,11,17,15,16, - 18,19,14,13,20,35,38,36,37,24, - 33,28,32,4,6,3,22,23,7,5, - 9,10,25,30,1,113,0,67,70,93, - 68,113,71,43,73,11,12,26,41,13, - 27,28,14,15,16,42,29,17,18,30, - 31,32,39,33,34,19,20,21,35,36, - 37,24,2,22,23,7,5,9,10,25, - 38,8,3,6,1,4,0,66,48,11, - 12,57,46,13,59,49,72,40,14,50, - 51,15,16,52,63,53,17,18,54,60, - 56,8,61,19,62,45,20,47,21,2, - 7,3,43,65,6,5,4,1,55,0, - 65,69,0,43,3,58,65,70,0,68, - 71,69,0,115,120,71,74,62,63,66, - 76,78,84,82,75,80,81,83,85,65, - 77,79,43,44,59,57,60,61,48,53, - 54,40,52,51,45,49,46,47,50,56, - 39,41,42,8,27,31,29,26,34,12, - 21,11,17,15,16,18,19,14,13,20, - 35,38,36,37,24,33,28,32,22,23, - 9,10,25,30,4,6,2,5,7,1, - 3,0,67,69,68,1,0,66,48,11, - 12,57,46,13,59,49,72,40,14,50, - 51,15,16,52,63,53,17,18,54,60, - 56,8,61,19,62,45,20,47,21,2, - 7,5,71,43,3,6,4,55,1,0, - 65,68,0,48,11,12,57,46,13,59, - 49,40,14,50,51,15,16,52,53,17, - 18,54,60,56,8,61,19,45,20,47, - 21,1,3,42,41,9,10,5,89,90, - 97,7,98,4,25,58,105,106,102,103, - 104,110,109,111,87,86,107,108,95,96, - 91,92,99,100,22,23,88,101,2,64, - 69,68,67,0,119,44,12,57,46,13, - 59,49,14,50,51,15,16,52,53,17, - 18,54,60,56,61,19,45,20,47,21, - 11,48,2,7,5,43,62,66,72,40, - 55,6,1,4,3,8,63,0,7,5, - 6,4,3,1,2,67,93,69,68,73, - 64,0,55,1,3,65,70,0,70,113, - 73,43,68,0,1,71,0,58,70,64, - 2,69,68,43,0,26,41,27,28,42, - 6,29,30,31,32,39,33,34,35,36, - 37,24,22,23,7,5,9,10,4,25, - 67,38,2,8,59,57,60,61,12,21, - 11,17,15,16,18,19,14,13,20,48, - 53,54,40,52,51,49,46,47,50,56, - 3,45,1,0,11,12,13,14,15,16, - 17,18,19,20,21,48,46,49,40,50, - 51,52,53,54,56,45,47,43,73,6, - 1,64,2,7,5,4,3,0,4,6, - 2,64,5,7,93,48,11,12,46,13, - 59,49,40,14,50,51,15,16,52,53, - 17,18,54,60,56,8,61,19,45,20, - 47,21,1,3,73,57,0,11,12,26, - 41,13,27,28,14,15,16,42,29,17, - 18,30,31,32,39,33,34,8,19,20, - 21,35,36,37,24,22,23,9,10,25, - 38,44,7,43,4,6,1,3,2,5, - 0,94,88,9,10,89,90,86,87,58, - 91,92,95,96,97,98,99,100,112,70, - 93,69,102,103,104,105,106,107,108,109, - 110,111,113,71,43,67,1,7,5,3, - 2,64,68,73,0,1,45,3,116,117, - 118,0,75,0,12,57,46,13,59,49, - 14,50,51,15,16,52,53,17,18,54, - 60,56,8,61,19,45,20,47,21,11, - 48,6,2,7,5,4,43,62,63,66, - 72,40,1,55,3,58,0,71,41,42, - 39,22,23,7,5,9,10,4,25,30, - 2,6,35,38,36,37,24,33,28,32, - 12,21,11,17,15,16,18,19,14,13, - 20,8,27,31,29,26,34,3,1,65, - 0,115,0,8,59,57,60,61,12,21, - 11,17,15,16,18,19,14,13,20,74, - 65,3,4,1,47,45,56,54,53,6, - 52,51,50,40,49,46,48,114,101,22, - 23,64,2,94,88,5,89,90,9,10, - 87,86,58,91,92,95,96,7,97,98, - 99,67,93,73,69,102,103,104,105,106, - 107,108,109,110,111,70,113,43,100,112, - 68,71,0,48,11,12,57,46,13,59, - 49,40,14,50,51,15,16,52,53,17, - 18,54,60,56,8,61,19,45,20,47, - 21,1,3,93,0,46,47,74,2,65, - 70,43,39,67,69,68,73,93,0,46, - 39,47,67,93,69,68,73,0,41,42, - 22,23,9,10,25,30,35,38,36,37, - 24,33,28,32,12,21,11,17,15,16, - 18,19,14,13,20,8,27,31,29,26, - 34,7,5,64,4,6,1,3,2,0, - 43,4,6,2,1,3,5,7,70,0, - 73,11,12,26,13,27,28,14,15,16, - 29,17,18,30,31,32,39,33,34,8, - 19,20,21,35,36,37,24,2,22,23, - 7,5,9,10,25,3,38,44,4,6, - 1,42,41,0 + 121,0,66,73,75,0,67,50,13,14, + 59,48,15,61,51,74,42,16,52,53, + 17,18,54,65,55,19,20,56,62,57, + 9,63,21,64,47,22,49,23,10,3, + 8,4,45,66,7,5,1,2,58,6, + 0,26,0,69,73,95,70,115,72,45, + 10,76,13,14,28,43,15,29,30,16, + 17,18,44,31,19,20,32,33,34,41, + 35,36,21,22,23,37,38,39,26,3, + 24,25,8,6,11,12,27,40,9,4, + 7,1,2,5,0,67,50,13,14,59, + 48,15,61,51,74,42,16,52,53,17, + 18,54,65,55,19,20,56,62,57,9, + 63,21,64,47,22,49,23,10,3,8, + 6,72,45,4,7,5,58,1,2,0, + 69,71,70,1,2,0,50,13,14,59, + 48,15,61,51,42,16,52,53,17,18, + 54,55,19,20,56,62,57,9,63,21, + 47,22,49,23,1,2,4,95,0,96, + 90,11,12,91,92,88,89,60,93,94, + 97,98,99,100,101,102,114,73,95,71, + 104,105,106,107,108,109,110,111,112,113, + 115,72,45,69,1,2,8,6,4,3, + 68,70,76,10,0,75,66,69,73,95, + 76,68,3,71,10,45,70,0,1,2, + 10,72,0,66,71,0,43,44,3,9, + 29,33,31,28,36,14,23,13,19,17, + 18,20,21,16,15,22,37,40,38,39, + 26,35,30,34,5,7,4,24,25,8, + 6,11,12,27,32,1,2,115,10,0, + 28,43,29,30,44,7,31,32,33,34, + 41,35,36,37,38,39,26,24,25,8, + 6,11,12,5,27,69,40,3,9,61, + 59,62,63,14,23,13,19,17,18,20, + 21,16,15,22,50,55,56,42,54,53, + 51,48,49,52,57,1,2,47,4,0, + 10,45,4,60,66,73,0,10,72,43, + 44,41,24,25,8,6,11,12,5,27, + 32,3,7,37,40,38,39,26,35,30, + 34,14,23,13,19,17,18,20,21,16, + 15,22,9,29,33,31,28,36,4,1, + 2,66,0,117,0,10,70,72,71,0, + 48,49,75,3,66,73,45,41,10,69, + 95,71,70,76,0,41,48,7,49,5, + 1,2,4,75,10,66,73,95,115,76, + 72,45,68,3,116,96,103,90,24,25, + 8,6,11,12,91,92,88,89,60,93, + 94,97,98,99,100,101,102,114,104,105, + 106,107,108,109,110,111,112,113,69,70, + 71,0,67,65,121,117,74,7,118,119, + 120,64,10,3,8,6,5,73,72,45, + 46,50,13,14,59,48,15,61,51,42, + 16,52,53,17,18,54,55,19,20,56, + 62,57,9,63,21,47,22,49,23,4, + 1,2,58,0,8,6,7,5,4,1, + 2,3,68,69,71,70,10,76,95,0, + 45,10,5,7,3,1,2,4,6,8, + 73,0,121,46,59,48,15,61,51,16, + 52,53,17,18,54,55,19,20,56,62, + 57,63,21,47,22,49,23,14,13,50, + 10,3,8,6,45,64,67,74,42,58, + 7,1,2,5,4,9,65,0,5,7, + 3,68,6,8,95,50,13,14,48,15, + 61,51,42,16,52,53,17,18,54,55, + 19,20,56,62,57,9,63,21,47,22, + 49,23,1,2,4,76,10,59,0,66, + 70,0,48,41,49,10,69,95,71,70, + 76,0,58,1,2,4,66,73,0,10, + 73,115,76,45,70,0,60,73,10,68, + 3,71,70,45,0,13,14,28,43,15, + 29,30,16,17,18,44,31,19,20,32, + 33,34,41,35,36,9,21,22,23,37, + 38,39,26,24,25,11,12,27,40,46, + 8,6,5,7,1,2,4,3,45,10, + 0,13,14,15,16,17,18,19,20,21, + 22,23,50,48,51,42,52,53,54,55, + 56,57,47,49,45,10,76,7,1,2, + 68,3,8,6,5,4,0,1,2,47, + 4,118,119,120,0,74,118,119,120,58, + 73,121,117,122,72,75,64,65,67,78, + 80,86,84,77,82,83,85,87,66,79, + 81,10,45,46,61,59,62,63,50,55, + 56,42,54,53,47,51,48,49,52,57, + 41,43,44,9,29,33,31,28,36,14, + 23,13,19,17,18,20,21,16,15,22, + 37,40,38,39,26,35,30,34,24,25, + 11,12,27,32,5,7,3,6,8,4, + 1,2,0,77,0,50,13,14,59,48, + 15,61,51,42,16,52,53,17,18,54, + 55,19,20,56,62,57,9,63,21,47, + 22,49,23,1,2,4,44,43,11,12, + 6,91,92,99,8,100,5,27,60,107, + 108,104,105,106,112,111,113,89,88,109, + 110,97,98,93,94,101,102,24,25,90, + 103,3,68,71,70,69,0,59,48,15, + 61,51,16,52,53,17,18,54,55,19, + 20,56,62,57,9,63,21,47,22,49, + 23,14,13,50,7,10,3,8,6,5, + 45,64,65,67,74,42,1,2,58,4, + 60,0,9,61,59,62,63,14,23,13, + 19,17,18,20,21,16,15,22,75,66, + 5,4,2,1,49,47,57,56,55,7, + 54,53,52,42,51,48,50,116,103,24, + 25,68,3,96,90,6,91,92,11,12, + 89,88,60,93,94,97,98,8,99,100, + 101,69,95,76,71,104,105,106,107,108, + 109,110,111,112,113,73,115,45,102,114, + 70,72,10,0,43,44,24,25,11,12, + 27,32,37,40,38,39,26,35,30,34, + 14,23,13,19,17,18,20,21,16,15, + 22,9,29,33,31,28,36,8,6,68, + 5,7,1,2,4,3,0,10,76,13, + 14,28,15,29,30,16,17,18,31,19, + 20,32,33,34,41,35,36,9,21,22, + 23,37,38,39,26,3,24,25,8,6, + 11,12,27,4,40,46,5,7,1,2, + 44,43,0 }; }; public final static byte asr[] = Asr.asr; @@ -2061,59 +2172,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasb { public final static char nasb[] = {0, - 93,11,21,11,4,207,11,176,11,196, - 149,10,10,11,187,188,11,188,115,188, - 10,188,181,11,11,11,10,117,113,154, - 109,25,11,89,196,11,117,11,11,11, - 113,113,11,11,11,220,220,19,113,26, - 113,220,11,113,11,11,11,113,220,113, - 117,196,11,11,113,62,144,39,64,64, - 158,11,192,117,113,19,91,11,113,70, - 77,19,11,11,196,133,113,113,176,176, - 113,122,113,10,113,102,195,144,213,113, - 113,49,104,53,49,113,138,196,29,104, - 59,62,12,98,135,31,73,192,117,109, - 133,68,29,158,77,77,195,203,203,122, - 45,176,122,220,122,144,144,45,117,144, - 11,21,206,213,49,49,161,59,11,196, - 138,45,11,11,11,127,11,11,11,11, - 11,10,11,11,237,117,31,31,23,31, - 31,31,31,31,31,11,11,11,11,11, - 11,11,11,11,11,11,31,11,11,59, - 12,36,11,220,11,19,31,113,77,11, - 11,113,68,11,225,19,11,107,11,11, - 11,85,85,45,45,102,45,133,154,11, - 218,220,53,45,31,138,158,127,64,64, - 237,234,234,234,234,117,198,19,19,1, - 31,51,133,237,11,11,14,14,198,173, - 31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31, - 173,31,29,113,165,98,196,198,11,41, - 68,113,31,11,11,107,158,203,203,176, - 113,11,11,144,195,144,11,31,11,120, - 81,83,196,223,19,201,113,19,19,11, - 11,11,11,132,19,31,11,10,117,77, - 234,135,19,194,117,194,19,77,11,11, + 117,11,31,11,4,105,11,206,11,159, + 169,10,10,11,217,218,11,218,156,218, + 9,218,211,11,11,11,10,158,99,144, + 95,176,11,202,200,11,158,11,11,11, + 99,99,11,11,11,220,220,12,99,177, + 99,220,11,99,11,11,11,99,220,99, + 158,159,11,11,99,37,163,33,50,50, + 148,11,196,158,99,12,204,11,99,28, + 69,12,11,11,159,137,99,99,206,206, + 99,151,99,10,99,159,199,163,227,99, + 99,14,52,55,14,99,128,200,21,52, + 84,37,59,87,101,23,65,196,158,95, + 137,71,21,148,69,69,199,132,132,151, + 43,206,151,220,151,163,163,43,158,163, + 11,31,104,227,14,14,165,84,11,159, + 128,43,11,11,11,113,11,11,11,11, + 11,10,11,11,122,158,23,23,174,23, + 23,23,23,23,23,11,11,11,11,11, + 11,11,11,11,11,11,23,11,11,84, + 59,81,11,220,11,12,23,99,69,11, + 11,99,71,11,141,12,11,93,11,11, + 11,35,35,43,43,159,43,137,144,11, + 232,220,55,43,23,128,148,113,50,50, + 122,235,235,235,235,158,191,12,12,1, + 23,61,137,122,11,11,16,16,191,188, + 23,23,23,23,23,23,23,23,23,23, + 23,23,23,23,23,23,23,23,23,23, + 23,23,23,23,23,23,23,23,23,23, + 188,23,21,99,180,87,200,191,11,39, + 71,99,23,11,11,93,148,132,132,206, + 99,11,11,163,199,163,11,23,11,126, + 73,75,200,139,12,130,99,12,12,11, + 11,11,11,136,12,23,11,10,158,69, + 235,101,12,198,158,198,12,69,11,11, 11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,66,170,11, - 31,11,144,11,11,11,171,11,11,142, - 144,144,113,11,57,11,19,31,45,68, - 31,31,201,190,203,234,234,144,109,31, - 31,10,19,203,11,11,11,11,59,196, - 117,133,31,234,113,146,19,117,196,133, - 31,47,11,11,171,241,241,228,11,241, - 144,144,109,11,113,41,113,11,220,113, - 19,173,173,173,173,11,11,131,59,19, - 140,225,196,11,59,234,19,109,19,230, - 144,11,19,66,79,11,196,68,113,19, - 19,19,19,198,198,59,87,87,11,173, - 225,11,11,19,19,113,171,11,171,144, - 230,173,171,47,11,85,113,68,19,19, - 11,198,31,77,196,11,57,57,107,31, - 11,230,144,19,233,11,79,113,19,77, - 196,171,19,230,144,19,194,79,171,19, - 234,171 + 11,11,11,11,11,11,11,48,185,11, + 23,11,163,11,11,11,186,11,159,161, + 163,163,99,159,63,11,12,23,43,71, + 23,23,130,194,132,235,235,163,95,23, + 23,10,12,132,11,11,11,11,84,200, + 158,137,23,235,99,45,12,158,159,137, + 23,91,11,11,11,186,223,223,238,11, + 223,163,163,95,11,99,39,99,11,220, + 99,12,188,188,188,188,11,11,135,84, + 12,77,141,159,11,84,235,12,95,12, + 240,163,11,12,48,79,11,200,71,99, + 12,12,12,12,191,191,84,111,111,11, + 188,141,11,11,12,12,99,186,11,186, + 163,240,188,186,91,11,35,99,71,12, + 12,11,191,23,69,159,11,63,63,93, + 23,11,240,163,12,234,11,79,99,12, + 69,159,186,12,240,163,12,198,79,186, + 12,235,186 }; }; public final static char nasb[] = Nasb.nasb; @@ -2121,31 +2232,31 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasr { public final static char nasr[] = {0, - 2,12,7,1,151,149,122,148,147,5, - 0,158,0,5,1,7,140,0,33,0, - 154,0,5,12,7,1,2,0,50,4, - 5,7,1,12,0,4,68,0,182,0, - 12,1,7,5,68,0,116,0,114,0, - 175,0,69,139,138,0,57,0,3,2, - 0,157,0,79,0,159,0,61,0,4, - 191,0,12,1,7,5,89,0,126,0, - 5,164,131,0,113,0,141,0,4,50, - 170,0,174,67,44,4,0,168,5,167, - 0,43,0,1,69,0,101,100,66,5, - 1,7,4,0,2,5,1,49,0,188, - 0,108,4,44,67,0,100,101,4,0, - 1,136,69,0,4,28,0,124,0,180, - 0,4,38,39,0,4,179,0,67,44, - 4,137,0,4,7,1,66,5,96,0, - 5,131,189,0,4,44,38,181,0,68, - 44,80,4,38,0,4,44,67,70,0, - 1,5,122,118,119,120,12,93,0,101, - 100,66,56,5,7,1,0,4,103,0, - 5,96,22,4,0,39,5,1,7,4, - 156,0,4,44,67,63,5,130,0,1, - 62,0,101,100,5,56,0,44,48,4, - 106,0,33,4,50,0,4,50,38,0, - 4,50,117,0 + 3,13,8,152,150,123,149,148,1,6, + 0,34,0,115,0,6,2,8,141,0, + 51,5,6,8,2,13,0,5,192,0, + 155,0,183,0,114,0,158,0,13,2, + 8,6,69,0,5,180,0,160,0,80, + 0,2,70,0,70,140,139,0,159,0, + 176,0,58,0,13,2,8,6,90,0, + 62,0,6,165,132,0,181,0,127,0, + 5,69,0,4,3,0,169,6,168,0, + 117,0,102,101,67,6,2,8,5,0, + 5,29,0,40,6,2,8,5,157,0, + 142,0,101,102,5,0,175,68,45,5, + 0,5,51,39,0,189,0,125,0,6, + 97,23,5,0,2,137,70,0,102,101, + 6,57,0,5,8,2,67,6,97,0, + 109,5,45,68,0,3,6,50,1,0, + 5,39,40,0,6,132,190,0,68,45, + 5,138,0,6,13,8,2,3,0,5, + 45,39,182,0,69,45,81,5,39,0, + 5,104,0,102,101,67,57,6,8,2, + 0,5,51,171,0,5,45,68,71,0, + 1,6,123,119,120,121,13,94,0,1, + 63,0,5,51,118,0,5,45,68,64, + 6,131,0,34,5,51,0,45,49,5, + 107,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2153,19 +2264,19 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TerminalIndex { public final static char terminalIndex[] = {0, - 115,2,32,14,11,81,10,102,12,13, - 50,54,62,70,76,77,88,89,104,107, - 109,8,9,114,15,57,63,69,86,90, - 92,96,99,101,111,112,113,46,97,68, - 60,80,122,123,106,56,108,49,66,72, - 75,78,85,91,95,100,55,20,65,93, - 103,105,79,1,3,48,21,45,34,31, - 121,67,120,98,110,51,52,58,59,61, - 71,73,74,87,94,18,19,7,16,17, - 22,23,33,5,24,25,26,27,28,29, - 6,35,36,37,38,39,40,41,42,43, - 44,30,119,4,53,82,83,84,124,64, - 116,117,118 + 115,116,2,32,14,11,81,10,102,117, + 12,13,50,54,62,70,76,77,88,89, + 104,107,109,8,9,114,15,57,63,69, + 86,90,92,96,99,101,111,112,113,46, + 97,68,60,80,122,123,106,56,108,49, + 66,72,75,78,85,91,100,95,55,20, + 65,93,103,105,79,3,48,1,21,45, + 34,121,31,67,98,120,110,51,52,58, + 59,61,71,73,74,87,94,18,19,7, + 16,17,22,23,33,5,24,25,26,27, + 28,29,6,35,36,37,38,39,40,41, + 42,43,44,30,119,4,53,82,83,84, + 124,64,118 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -2173,27 +2284,26 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 136,138,239,0,0,137,235,135,0,134, - 0,146,0,133,0,0,145,150,0,0, - 151,181,160,161,162,163,164,153,165,166, - 139,167,126,168,169,170,0,132,128,171, - 0,198,144,0,0,0,141,178,140,154, - 0,0,0,0,148,157,174,0,205,0, - 188,0,179,0,202,206,0,127,0,131, - 0,0,0,0,0,0,0,0,207,173, - 0,0,0,0,0,0,0,177,125,149, - 0,0,187,0,0,203,213,159,209,210, - 211,0,0,0,0,0,208,180,0,0, - 0,212,0,0,0,242,176,190,191,192, - 193,194,196,197,200,0,215,218,220,221, - 0,238,0,241,0,0,130,142,143,147, - 0,156,0,172,0,182,183,184,185,186, - 189,0,195,0,199,204,0,216,217,0, - 222,225,227,229,0,232,233,234,0,236, - 237,240,0,129,0,152,0,0,155,158, - 175,201,214,219,0,223,224,226,228,230, - 231,243,244,0,0,0,0,0,0,0, - 0 + 132,137,139,240,0,0,138,236,136,0, + 135,0,147,0,134,0,0,146,151,0, + 0,152,182,161,162,163,164,165,154,166, + 167,140,168,126,169,170,171,0,133,128, + 172,0,199,145,0,0,0,142,179,141, + 155,0,0,0,0,149,158,175,0,206, + 0,189,0,180,0,203,207,0,127,0, + 131,0,0,0,0,0,0,0,0,208, + 174,0,0,0,0,0,0,0,178,125, + 150,0,0,188,0,0,204,214,160,210, + 211,212,0,0,0,0,0,209,181,0, + 0,0,213,0,0,0,243,177,191,192, + 193,194,195,197,198,201,0,216,219,221, + 222,0,239,0,242,0,0,130,143,144, + 148,0,157,0,173,0,183,184,185,186, + 187,190,0,196,0,200,205,0,217,218, + 0,223,226,228,230,0,233,234,235,0, + 237,238,241,0,129,0,153,0,0,156, + 159,176,202,215,220,0,224,225,227,229, + 231,232,244,245,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2239,18 +2349,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 63,17,17,84,17,17,17,17,84,164, - 73,46,78,77,120,64,53,84,83,19, - 63,17,84,2,6,161,118,63,76,120, - 119,121,54,46,133,140,84,17,17,133, - 102,58,135,87,167,161,128,119,119,121, - 48,57,180,18,17,17,17,17,17,11, - 116,161,128,84,83,83,37,140,83,19, - 17,17,17,17,102,84,168,164,182,100, - 107,60,79,59,156,88,121,85,81,143, - 180,178,16,161,121,117,21,140,129,129, - 56,140,84,140,63,161,82,138,49,138, - 49,167,117,118,63,63,58 + 64,18,18,85,18,18,18,18,85,165, + 74,47,79,78,121,65,54,85,84,20, + 64,18,85,3,7,162,119,64,77,121, + 120,122,55,47,134,141,85,18,18,134, + 103,59,136,88,168,162,129,120,120,122, + 49,58,181,19,18,18,18,18,18,12, + 117,162,129,85,84,84,38,141,84,20, + 18,18,18,18,103,85,169,165,183,101, + 108,61,80,60,157,89,122,86,82,144, + 181,179,17,162,122,118,22,141,130,130, + 57,141,85,141,64,162,83,139,50,139, + 50,168,118,119,64,64,59 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2258,18 +2368,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLa { public final static byte scopeLa[] = { - 115,73,73,73,73,73,73,73,73,1, - 71,43,71,71,71,67,1,73,120,73, - 65,2,43,67,67,43,71,65,71,71, - 1,1,1,1,67,3,43,1,1,67, - 73,73,73,115,73,43,71,1,1,1, - 43,71,113,73,73,73,73,73,113,1, - 73,1,68,73,73,73,70,3,73,2, - 67,67,67,67,73,43,1,1,73,73, - 2,1,113,73,1,1,1,43,70,73, - 113,73,73,1,55,69,73,4,1,1, - 5,1,75,55,74,43,43,3,3,3, - 3,2,1,65,1,1,2 + 117,76,76,76,76,76,76,76,76,1, + 72,45,72,72,72,69,1,76,122,76, + 66,3,45,69,69,45,72,66,72,72, + 1,1,1,1,69,4,45,1,1,69, + 76,76,76,117,76,45,72,1,1,1, + 45,72,115,76,76,76,76,76,115,1, + 76,1,70,76,76,76,73,4,76,3, + 69,69,69,69,76,45,1,1,76,76, + 3,1,115,76,1,1,1,45,73,76, + 115,76,76,1,58,71,76,5,1,1, + 6,1,77,58,75,45,45,4,4,4, + 4,3,1,66,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2296,71 +2406,71 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 316,2,39,0,126,0,315,2,115,0, - 126,174,0,127,180,74,0,217,0,292, - 127,58,126,0,21,0,294,127,58,55, - 0,21,55,0,34,133,0,21,55,0, - 0,294,127,58,55,190,0,21,131,0, - 292,127,58,130,0,185,128,0,139,0, - 226,2,291,0,291,0,2,0,126,0, - 185,128,254,253,254,0,131,192,172,128, - 0,128,0,192,172,128,0,135,128,0, - 167,0,309,127,167,0,127,167,0,223, - 128,0,172,245,0,138,0,0,0,136, - 0,0,0,308,127,65,252,0,127,0, - 252,0,3,0,0,127,0,307,127,65, - 0,45,127,0,151,2,0,127,281,280, - 127,74,279,167,0,280,127,74,279,167, - 0,216,0,217,0,279,167,0,98,0, - 0,216,0,217,0,204,98,0,0,216, - 0,217,0,280,127,279,167,0,216,0, - 204,0,0,216,0,233,127,2,0,126, - 0,0,0,0,0,233,127,2,223,0, - 230,2,0,219,127,0,209,0,149,0, - 172,128,0,11,0,0,0,221,64,0, - 125,0,233,127,2,182,0,182,0,2, - 0,0,126,0,0,0,0,0,211,2, - 0,202,0,232,127,65,24,40,0,185, - 128,63,62,0,144,128,0,131,185,128, - 277,62,0,185,128,277,62,0,185,128, - 69,1,63,0,232,127,65,63,0,232, - 127,65,165,63,0,232,127,65,124,63, - 0,275,127,65,1,59,0,275,127,65, - 59,0,185,128,59,0,136,0,192,185, - 128,245,0,138,0,185,128,245,0,192, - 172,128,8,0,172,128,8,0,95,138, - 0,268,127,167,0,161,84,0,229,162, - 229,171,2,81,0,126,173,0,229,171, - 2,81,0,128,0,126,173,0,229,162, - 229,162,229,2,81,0,229,162,229,2, - 81,0,229,2,81,0,128,0,128,0, - 126,173,0,161,2,75,203,80,0,126, - 128,0,203,80,0,110,2,132,126,128, - 0,240,2,75,0,211,173,0,34,171, - 0,173,0,177,34,171,0,240,2,85, - 0,203,156,240,2,83,0,64,173,0, - 240,2,83,0,126,173,64,173,0,304, - 127,65,0,161,0,221,77,0,31,0, - 161,112,159,0,31,171,0,178,2,0, - 126,151,0,226,2,0,221,64,303,0, - 161,64,0,178,2,298,42,128,0,126, - 0,0,298,42,128,0,2,148,126,0, - 0,178,2,30,0,14,149,0,125,55, - 172,128,0,32,14,149,0,95,138,32, - 14,149,0,213,185,128,0,149,32,14, - 149,0,178,2,34,0,161,2,34,0, - 161,2,67,178,58,26,0,178,58,26, - 0,21,2,132,126,0,161,2,67,178, - 58,29,0,178,58,29,0,161,2,67, - 178,58,31,0,178,58,31,0,161,2, - 67,178,58,27,0,178,58,27,0,226, - 2,125,192,172,128,8,0,125,192,172, - 128,8,0,138,2,0,126,0,226,2, - 124,259,172,128,8,0,259,172,128,8, - 0,136,2,0,126,0,226,2,135,0, - 226,2,140,0,161,64,140,0,262,0, - 32,0,32,142,0,170,0,135,0,161, - 2,0 + 317,3,41,0,126,0,316,3,117,0, + 126,175,0,128,181,75,0,218,0,293, + 128,60,127,0,21,0,295,128,60,58, + 0,21,55,0,34,134,0,21,55,0, + 0,295,128,60,58,191,0,21,131,0, + 293,128,60,131,0,186,129,0,140,0, + 227,3,292,0,292,0,2,0,126,0, + 186,129,255,254,255,0,132,193,173,129, + 0,128,0,193,173,129,0,136,128,0, + 168,0,310,128,168,0,128,168,0,224, + 128,0,173,246,0,139,0,0,0,137, + 0,0,0,309,128,66,253,0,127,0, + 253,0,3,0,0,127,0,308,128,66, + 0,45,127,0,152,3,0,128,282,281, + 128,75,280,168,0,281,128,75,280,168, + 0,217,0,218,0,280,168,0,98,0, + 0,217,0,218,0,205,98,0,0,217, + 0,218,0,281,128,280,168,0,217,0, + 205,0,0,217,0,234,128,3,0,126, + 0,0,0,0,0,234,128,3,224,0, + 231,3,0,220,128,0,210,0,150,0, + 173,129,0,11,0,0,0,222,68,0, + 125,0,234,128,3,183,0,183,0,2, + 0,0,126,0,0,0,0,0,212,3, + 0,203,0,233,128,66,26,42,0,186, + 129,65,64,0,145,128,0,132,186,129, + 278,64,0,186,129,278,64,0,186,129, + 71,124,65,0,233,128,66,65,0,233, + 128,66,166,65,0,233,128,66,125,65, + 0,276,128,66,124,61,0,276,128,66, + 61,0,186,129,61,0,137,0,193,186, + 129,246,0,139,0,186,129,246,0,193, + 173,129,9,0,173,129,9,0,95,139, + 0,269,128,168,0,162,86,0,230,163, + 230,172,3,83,0,126,174,0,230,172, + 3,83,0,128,0,126,174,0,230,163, + 230,163,230,3,83,0,230,163,230,3, + 83,0,230,3,83,0,128,0,128,0, + 126,174,0,162,3,77,204,82,0,126, + 128,0,204,82,0,110,2,133,126,128, + 0,241,3,77,0,212,174,0,34,172, + 0,174,0,178,34,172,0,241,3,87, + 0,204,157,241,3,85,0,64,174,0, + 241,3,85,0,126,174,64,174,0,305, + 128,66,0,162,0,222,79,0,31,0, + 162,114,160,0,31,172,0,179,3,0, + 126,152,0,227,3,0,222,68,304,0, + 162,68,0,179,3,299,44,129,0,126, + 0,0,299,44,129,0,2,149,126,0, + 0,179,3,32,0,14,150,0,126,58, + 173,129,0,32,14,150,0,95,139,32, + 14,150,0,214,186,129,0,150,32,14, + 150,0,179,3,36,0,162,3,36,0, + 162,3,69,179,60,28,0,179,60,28, + 0,21,2,133,126,0,162,3,69,179, + 60,31,0,179,60,31,0,162,3,69, + 179,60,33,0,179,60,33,0,162,3, + 69,179,60,29,0,179,60,29,0,227, + 3,126,193,173,129,9,0,126,193,173, + 129,9,0,139,2,0,126,0,227,3, + 125,260,173,129,9,0,260,173,129,9, + 0,137,2,0,126,0,227,3,136,0, + 227,3,141,0,162,68,141,0,263,0, + 32,0,32,143,0,171,0,136,0,162, + 3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2368,38 +2478,38 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 1977,1939,0,1495,1453,1411,0,2841,0,4912, - 4903,4886,0,1805,1847,885,1125,0,1005,575, - 0,914,0,1837,3088,0,4323,4900,3278,0, - 2664,2337,0,3943,3876,3855,2700,2616,3788,3767, - 3700,3679,920,3605,3205,3184,1179,554,0,2343, - 919,0,1590,1553,1257,1107,3576,4486,2923,2908, - 3052,2419,2662,0,868,0,3551,722,3576,4656, - 3857,4486,3550,3345,2939,1131,1324,4380,4308,728, - 3070,0,4727,4850,4831,4695,4674,4812,4642,4621, - 4799,4780,4589,4761,4568,4748,4531,4510,4477,4427, - 3667,2705,2466,0,3576,4392,4380,4308,4404,2923, - 4296,3138,4272,2908,2939,2419,2281,4284,3070,0, - 4392,4404,0,3773,3332,2951,2688,2493,3189,2472, - 4727,2955,4850,4831,2333,4695,4674,2459,2352,4812, - 4642,4621,2273,4799,2743,1343,4780,4589,4761,923, - 2737,4568,2486,4748,4531,4510,655,4477,4427,3667, - 1338,2705,3336,2466,2267,870,785,729,997,663, - 2923,4296,3138,4272,3576,2612,1190,2908,1005,575, - 2939,2419,4392,2281,4380,4308,4284,3070,4404,4251, - 4229,4207,2163,2201,2236,589,927,796,2294,2882, - 2851,2580,2549,2522,2431,3526,3502,3478,3162,2625, - 4185,4163,4141,4119,4097,4075,4053,4031,4001,628, - 3103,1893,2125,1851,2087,2049,1208,1148,1809,2011, - 1973,1103,825,1767,1725,1683,1641,1599,1557,1515, - 1473,1431,1389,1347,532,1935,1061,1291,740,1253, - 684,955,881,1019,0,532,3336,2267,0,3548, - 2772,2729,3399,2650,2607,3342,3307,2990,3250,2327, - 4437,4421,0,4499,3548,2772,2729,3399,2650,2607, - 3342,3307,2990,3250,2327,3943,3876,3855,3788,3767, - 3700,3679,3605,3205,3184,0,4437,4421,3943,3876, - 3855,3788,3767,3700,3679,3605,3205,3184,3548,2772, - 2729,3399,2650,2607,3342,3307,2990,3250,2327,0 + 2770,2599,0,2889,2174,2080,0,1421,0,5149, + 4955,4336,0,3119,1390,2501,1088,0,2036,577, + 0,1251,0,1391,3317,0,3063,4604,2721,0, + 2439,2420,0,4585,4534,4513,3164,3087,4462,4441, + 4390,4324,1290,4212,3556,3535,2268,1237,0,1910, + 1161,0,2617,2543,1393,1117,3645,2888,2839,2824, + 2815,2525,2615,0,855,0,1561,1432,3645,5134, + 2874,2888,3837,3784,3259,730,3606,3272,803,3330, + 2948,0,5033,5119,5100,5000,4979,5085,4945,4924, + 5066,4348,4891,3785,4869,3342,4836,4815,4782,3819, + 3112,2933,3032,0,3645,2570,3272,803,2861,2839, + 4713,4271,4644,2824,3259,2525,4675,4688,2948,0, + 2570,2861,0,3720,3541,3696,3167,3691,3148,3626, + 5033,2999,5119,5100,3435,5000,4979,2710,2428,5085, + 4945,4924,2593,5066,2411,2446,4348,4891,3785,2321, + 2600,4869,2332,3342,4836,4815,1108,4782,3819,3112, + 1252,2933,3765,3032,2314,872,788,731,929,658, + 2839,4713,4271,4644,3645,2223,2129,2824,2036,577, + 3259,2525,2570,4675,3272,803,4688,2948,2861,630, + 4301,4173,2239,2278,1033,590,2496,2467,2341,2792, + 2765,2662,2634,2538,2377,3512,3484,3459,3351,3290, + 4132,4109,4086,4063,4040,4017,3994,3971,3948,3397, + 3658,1914,2184,1871,2145,2090,1261,1208,1828,2051, + 1996,1165,884,1785,1742,1699,1656,1613,1570,1527, + 1484,1441,1398,1343,533,1957,1121,816,743,1304, + 686,987,941,1065,0,533,3765,2314,0,4155, + 3179,3136,3868,3056,2975,3825,3728,3379,3685,2685, + 4897,4745,0,5137,4155,3179,3136,3868,3056,2975, + 3825,3728,3379,3685,2685,4585,4534,4513,4462,4441, + 4390,4324,4212,3556,3535,0,4897,4745,4585,4534, + 4513,4462,4441,4390,4324,4212,3556,3535,4155,3179, + 3136,3868,3056,2975,3825,3728,3379,3685,2685,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2407,59 +2517,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,296,62,66,127,167,190,55,40,63, - 297,63,277,2,269,270,252,271,245,272, - 59,273,274,1,126,124,8,128,279,127, - 2,3,130,6,4,124,128,182,55,58, - 24,65,165,1,124,128,128,24,65,172, - 236,128,170,125,1,124,1,65,128,58, - 128,185,172,124,74,127,268,211,189,182, - 127,278,219,128,5,211,6,124,58,173, - 64,2,41,42,185,172,2,58,67,127, - 65,127,65,69,65,185,185,156,127,125, - 124,127,185,3,127,65,127,185,127,172, - 55,127,280,70,2,69,64,219,128,68, - 172,127,127,127,64,64,192,127,127,127, - 232,231,127,128,127,166,131,308,128,186, - 253,62,167,310,127,127,70,192,262,192, - 127,275,247,276,292,173,34,26,29,31, - 27,8,135,133,2,128,30,25,4,10, - 9,5,7,23,22,140,146,148,147,150, - 149,153,152,157,155,158,39,159,295,192, - 280,65,290,128,291,151,127,65,221,159, - 172,5,184,292,219,233,234,145,235,294, - 55,8,57,232,232,185,232,172,127,312, - 254,128,3,275,69,68,127,2,224,223, - 2,58,58,58,58,128,2,178,161,127, - 41,42,172,2,125,124,101,114,2,64, - 88,94,10,9,90,89,5,92,91,67, - 58,86,87,7,96,95,98,97,99,111, - 110,109,108,107,106,105,104,103,102,69, - 112,100,68,281,127,68,185,2,267,127, - 127,156,69,230,211,2,127,68,68,67, - 58,236,236,166,192,309,124,70,286,211, - 68,253,185,219,230,127,2,178,161,178, - 178,178,178,172,226,156,135,8,128,64, - 298,2,178,55,128,55,226,161,147,147, - 146,146,146,149,149,149,149,148,148,152, - 150,150,155,153,157,161,158,127,304,79, - 77,1,161,85,83,81,80,75,82,84, - 78,76,167,63,74,44,226,68,307,127, - 69,69,127,219,127,69,69,131,68,70, - 69,254,233,127,67,67,67,67,192,259, - 128,172,212,2,299,173,151,128,185,172, - 70,282,115,221,70,2,2,2,203,2, - 1,161,127,1,180,68,227,294,128,156, - 233,2,2,2,2,125,124,172,55,178, - 127,127,4,213,55,2,240,173,240,171, - 229,75,240,127,127,67,185,127,156,161, - 161,161,161,2,2,192,156,300,303,64, - 179,3,125,93,315,173,156,211,156,229, - 162,2,156,282,39,57,227,127,226,226, - 125,2,64,161,4,3,156,156,127,69, - 203,162,229,161,2,236,127,227,226,221, - 4,120,229,162,156,316,69,127,156,229, - 68,156 + 0,297,64,67,128,168,191,58,42,65, + 298,65,278,3,270,271,253,272,246,273, + 61,274,275,124,127,125,9,129,280,128, + 3,4,131,7,5,125,129,183,58,60, + 26,66,166,124,125,129,129,26,66,173, + 237,129,171,126,124,125,124,66,129,60, + 129,186,173,125,75,128,269,212,190,183, + 128,279,220,129,6,212,7,125,60,174, + 68,3,43,44,186,173,3,60,69,128, + 66,128,66,71,66,186,186,157,128,126, + 125,128,186,4,128,66,128,186,128,173, + 58,128,281,73,3,71,68,220,129,70, + 173,128,128,128,68,68,193,128,128,128, + 233,232,128,129,128,167,132,309,129,187, + 254,64,168,311,128,128,73,193,263,193, + 128,276,248,277,293,174,36,28,31,33, + 29,9,136,134,3,129,32,27,5,12, + 11,6,8,25,24,141,147,149,148,151, + 150,154,153,158,156,159,41,160,296,193, + 281,66,291,129,292,152,128,66,222,160, + 173,6,185,293,220,234,235,146,236,295, + 58,9,59,233,233,186,233,173,128,313, + 255,129,4,276,71,70,128,3,225,224, + 3,60,60,60,60,129,3,179,162,128, + 43,44,173,3,126,125,103,116,3,68, + 90,96,12,11,92,91,6,94,93,69, + 60,88,89,8,98,97,100,99,101,113, + 112,111,110,109,108,107,106,105,104,71, + 114,102,70,282,128,70,186,3,268,128, + 128,157,71,231,212,3,128,70,70,69, + 60,237,237,167,193,310,125,73,287,212, + 70,254,186,220,231,128,3,179,162,179, + 179,179,179,173,227,157,136,9,129,68, + 299,3,179,58,129,58,227,162,148,148, + 147,147,147,150,150,150,150,149,149,153, + 151,151,156,154,158,162,159,128,305,81, + 79,1,162,87,85,83,82,77,84,86, + 80,78,168,65,75,46,227,70,308,128, + 71,71,128,220,128,71,71,132,70,73, + 71,255,234,128,69,69,69,69,193,260, + 129,173,213,3,300,174,152,129,186,173, + 73,283,117,10,222,73,3,3,3,204, + 3,124,162,128,124,181,70,228,295,129, + 157,234,3,3,3,3,126,125,173,58, + 179,128,128,5,214,58,3,241,174,241, + 172,230,77,241,128,128,69,186,128,157, + 162,162,162,162,3,3,193,157,301,304, + 68,180,4,126,95,316,174,157,212,157, + 230,163,3,157,283,41,59,228,128,227, + 227,126,3,68,162,5,4,157,157,128, + 71,204,163,230,162,3,237,128,228,227, + 222,5,122,230,163,157,317,71,128,157, + 230,70,157 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2599,6 +2709,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "external_declaration_list", "external_declaration", "declaration", + "identifier_token", "expression", "id_expression", "qualified_or_unqualified_name", @@ -2724,7 +2835,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 44, + ERROR_SYMBOL = 46, SCOPE_UBOUND = 116, SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; @@ -2735,20 +2846,20 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 522, + NUM_STATES = 523, NT_OFFSET = 123, - LA_STATE_OFFSET = 5875, + LA_STATE_OFFSET = 6155, MAX_LA = 2147483647, - NUM_RULES = 531, - NUM_NONTERMINALS = 201, - NUM_SYMBOLS = 324, + NUM_RULES = 532, + NUM_NONTERMINALS = 198, + NUM_SYMBOLS = 321, SEGMENT_SIZE = 8192, - START_STATE = 2327, + START_STATE = 2685, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 119, - EOLT_SYMBOL = 119, - ACCEPT_ACTION = 5035, - ERROR_ACTION = 5344; + EOFT_SYMBOL = 121, + EOLT_SYMBOL = 121, + ACCEPT_ACTION = 5269, + ERROR_ACTION = 5623; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java index c0a0774bfec..d7c0d5986e6 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java @@ -15,133 +15,134 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPParsersym { public final static int - TK_asm = 66, - TK_auto = 48, - TK_bool = 11, - TK_break = 76, - TK_case = 77, - TK_catch = 115, - TK_char = 12, - TK_class = 57, - TK_const = 46, - TK_const_cast = 26, - TK_continue = 78, - TK_default = 79, - TK_delete = 41, - TK_do = 80, - TK_double = 13, - TK_dynamic_cast = 27, - TK_else = 120, - TK_enum = 59, - TK_explicit = 49, - TK_export = 72, - TK_extern = 40, - TK_false = 28, - TK_float = 14, - TK_for = 81, - TK_friend = 50, - TK_goto = 82, - TK_if = 83, - TK_inline = 51, - TK_int = 15, - TK_long = 16, - TK_mutable = 52, - TK_namespace = 63, - TK_new = 42, - TK_operator = 6, - TK_private = 116, - TK_protected = 117, - TK_public = 118, - TK_register = 53, - TK_reinterpret_cast = 29, - TK_return = 84, - TK_short = 17, - TK_signed = 18, - TK_sizeof = 30, - TK_static = 54, - TK_static_cast = 31, - TK_struct = 60, - TK_switch = 85, - TK_template = 55, - TK_this = 32, - TK_throw = 39, - TK_try = 74, - TK_true = 33, - TK_typedef = 56, - TK_typeid = 34, - TK_typename = 8, - TK_union = 61, - TK_unsigned = 19, - TK_using = 62, - TK_virtual = 45, - TK_void = 20, - TK_volatile = 47, - TK_wchar_t = 21, - TK_while = 75, - TK_integer = 35, - TK_floating = 36, - TK_charconst = 37, - TK_stringlit = 24, + TK_asm = 67, + TK_auto = 50, + TK_bool = 13, + TK_break = 78, + TK_case = 79, + TK_catch = 117, + TK_char = 14, + TK_class = 59, + TK_const = 48, + TK_const_cast = 28, + TK_continue = 80, + TK_default = 81, + TK_delete = 43, + TK_do = 82, + TK_double = 15, + TK_dynamic_cast = 29, + TK_else = 122, + TK_enum = 61, + TK_explicit = 51, + TK_export = 74, + TK_extern = 42, + TK_false = 30, + TK_float = 16, + TK_for = 83, + TK_friend = 52, + TK_goto = 84, + TK_if = 85, + TK_inline = 53, + TK_int = 17, + TK_long = 18, + TK_mutable = 54, + TK_namespace = 65, + TK_new = 44, + TK_operator = 7, + TK_private = 118, + TK_protected = 119, + TK_public = 120, + TK_register = 55, + TK_reinterpret_cast = 31, + TK_return = 86, + TK_short = 19, + TK_signed = 20, + TK_sizeof = 32, + TK_static = 56, + TK_static_cast = 33, + TK_struct = 62, + TK_switch = 87, + TK_template = 58, + TK_this = 34, + TK_throw = 41, + TK_try = 75, + TK_true = 35, + TK_typedef = 57, + TK_typeid = 36, + TK_typename = 9, + TK_union = 63, + TK_unsigned = 21, + TK_using = 64, + TK_virtual = 47, + TK_void = 22, + TK_volatile = 49, + TK_wchar_t = 23, + TK_while = 77, + TK_integer = 37, + TK_floating = 38, + TK_charconst = 39, + TK_stringlit = 26, TK_identifier = 1, - TK_Completion = 121, - TK_EndOfCompletion = 122, + TK_Completion = 2, + TK_EndOfCompletion = 10, TK_Invalid = 123, - TK_LeftBracket = 64, - TK_LeftParen = 2, - TK_LeftBrace = 65, - TK_Dot = 114, - TK_DotStar = 94, - TK_Arrow = 101, - TK_ArrowStar = 88, - TK_PlusPlus = 22, - TK_MinusMinus = 23, - TK_And = 7, - TK_Star = 5, - TK_Plus = 9, - TK_Minus = 10, - TK_Tilde = 4, - TK_Bang = 25, - TK_Slash = 89, - TK_Percent = 90, - TK_RightShift = 86, - TK_LeftShift = 87, - TK_LT = 58, - TK_GT = 67, - TK_LE = 91, - TK_GE = 92, - TK_EQ = 95, - TK_NE = 96, - TK_Caret = 97, - TK_Or = 98, - TK_AndAnd = 99, - TK_OrOr = 100, - TK_Question = 112, - TK_Colon = 70, - TK_ColonColon = 3, - TK_DotDotDot = 93, - TK_Assign = 69, - TK_StarAssign = 102, - TK_SlashAssign = 103, - TK_PercentAssign = 104, - TK_PlusAssign = 105, - TK_MinusAssign = 106, - TK_RightShiftAssign = 107, - TK_LeftShiftAssign = 108, - TK_AndAssign = 109, - TK_CaretAssign = 110, - TK_OrAssign = 111, - TK_Comma = 68, - TK_zero = 38, - TK_RightBracket = 113, - TK_RightParen = 73, - TK_RightBrace = 71, - TK_SemiColon = 43, - TK_ERROR_TOKEN = 44, - TK_EOF_TOKEN = 119; + TK_LeftBracket = 68, + TK_LeftParen = 3, + TK_LeftBrace = 66, + TK_Dot = 116, + TK_DotStar = 96, + TK_Arrow = 103, + TK_ArrowStar = 90, + TK_PlusPlus = 24, + TK_MinusMinus = 25, + TK_And = 8, + TK_Star = 6, + TK_Plus = 11, + TK_Minus = 12, + TK_Tilde = 5, + TK_Bang = 27, + TK_Slash = 91, + TK_Percent = 92, + TK_RightShift = 88, + TK_LeftShift = 89, + TK_LT = 60, + TK_GT = 69, + TK_LE = 93, + TK_GE = 94, + TK_EQ = 97, + TK_NE = 98, + TK_Caret = 99, + TK_Or = 100, + TK_AndAnd = 101, + TK_OrOr = 102, + TK_Question = 114, + TK_Colon = 73, + TK_ColonColon = 4, + TK_DotDotDot = 95, + TK_Assign = 71, + TK_StarAssign = 104, + TK_SlashAssign = 105, + TK_PercentAssign = 106, + TK_PlusAssign = 107, + TK_MinusAssign = 108, + TK_RightShiftAssign = 109, + TK_LeftShiftAssign = 110, + TK_AndAssign = 111, + TK_CaretAssign = 112, + TK_OrAssign = 113, + TK_Comma = 70, + TK_zero = 40, + TK_RightBracket = 115, + TK_RightParen = 76, + TK_RightBrace = 72, + TK_SemiColon = 45, + TK_ERROR_TOKEN = 46, + TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { "", "identifier", + "Completion", "LeftParen", "ColonColon", "Tilde", @@ -149,6 +150,7 @@ public interface CPPParsersym { "operator", "And", "typename", + "EndOfCompletion", "Plus", "Minus", "bool", @@ -195,8 +197,8 @@ public interface CPPParsersym { "mutable", "register", "static", - "template", "typedef", + "template", "class", "LT", "enum", @@ -204,17 +206,17 @@ public interface CPPParsersym { "union", "using", "namespace", - "LeftBracket", "LeftBrace", "asm", + "LeftBracket", "GT", "Comma", "Assign", - "Colon", "RightBrace", + "Colon", "export", - "RightParen", "try", + "RightParen", "while", "break", "case", @@ -261,8 +263,6 @@ public interface CPPParsersym { "public", "EOF_TOKEN", "else", - "Completion", - "EndOfCompletion", "Invalid" };