From 67dfed0280e7d1ab094073ae39bf1de78259f672 Mon Sep 17 00:00:00 2001 From: Vivian Kong Date: Mon, 9 Aug 2010 17:50:49 +0000 Subject: [PATCH] Bug 315826 Update LR Parser for the template arguments rules - patch by John Liu --- .../grammar/cpp/CPPGrammar.g | 179 +- .../grammar/parserBuild.properties | 2 +- .../dom/lrparser/BaseExtensibleLanguage.java | 268 +- .../action/cpp/CPPBuildASTParserAction.java | 11 +- .../FixedBacktrackingParser.java | 5 + .../dom/lrparser/cpp/CPPExpressionParser.java | 986 ++- .../lrparser/cpp/CPPExpressionParserprs.java | 4560 +++++++----- .../lrparser/cpp/CPPExpressionParsersym.java | 208 +- .../cpp/CPPNoCastExpressionParser.java | 986 ++- .../cpp/CPPNoCastExpressionParserprs.java | 4472 ++++++----- .../cpp/CPPNoCastExpressionParsersym.java | 208 +- .../cpp/CPPNoFunctionDeclaratorParser.java | 982 ++- .../cpp/CPPNoFunctionDeclaratorParserprs.java | 4349 ++++++----- .../cpp/CPPNoFunctionDeclaratorParsersym.java | 208 +- .../core/dom/lrparser/cpp/CPPParser.java | 974 ++- .../core/dom/lrparser/cpp/CPPParserprs.java | 4426 ++++++----- .../core/dom/lrparser/cpp/CPPParsersym.java | 214 +- .../cpp/CPPSizeofExpressionParser.java | 986 ++- .../cpp/CPPSizeofExpressionParserprs.java | 4502 ++++++----- .../cpp/CPPSizeofExpressionParsersym.java | 208 +- .../cpp/CPPTemplateTypeParameterParser.java | 986 ++- .../CPPTemplateTypeParameterParserprs.java | 4559 +++++++----- .../CPPTemplateTypeParameterParsersym.java | 204 +- .../core/dom/lrparser/gpp/GPPParser.java | 1062 +-- .../core/dom/lrparser/gpp/GPPParserprs.java | 5851 ++++++++------- .../core/dom/lrparser/gpp/GPPParsersym.java | 218 +- .../gpp/GPPSizeofExpressionParser.java | 1066 +-- .../gpp/GPPSizeofExpressionParserprs.java | 5884 ++++++++------- .../gpp/GPPSizeofExpressionParsersym.java | 184 +- .../grammar/parserBuild.properties | 4 +- .../core/lrparser/xlc/cpp/XlcCPPParser.java | 1118 +-- .../lrparser/xlc/cpp/XlcCPPParserprs.java | 6606 +++++++++-------- .../lrparser/xlc/cpp/XlcCPPParsersym.java | 202 +- 33 files changed, 31632 insertions(+), 25046 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 76bb4a73da4..b73534b49f4 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g @@ -551,6 +551,90 @@ conditional_expression /. $Build consumeExpressionConditional(); $EndBuild ./ +--rules for template arguments, relational_expression needs brackets when it contains > + +relational_expression_inTemplate + ::= shift_expression + | relational_expression_inTemplate '<' shift_expression + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); $EndBuild ./ + | '(' relational_expression_inTemplate '>' shift_expression ')' + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); $EndBuild ./ + | relational_expression_inTemplate '<=' shift_expression + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); $EndBuild ./ + | relational_expression_inTemplate '>=' shift_expression + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); $EndBuild ./ + +equality_expression_inTemplate + ::= relational_expression_inTemplate + | equality_expression_inTemplate '==' relational_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); $EndBuild ./ + | equality_expression_inTemplate '!=' relational_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); $EndBuild ./ + + +and_expression_inTemplate + ::= equality_expression_inTemplate + | and_expression_inTemplate '&' equality_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); $EndBuild ./ +exclusive_or_expression_inTemplate + ::= and_expression_inTemplate + | exclusive_or_expression_inTemplate '^' and_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); $EndBuild ./ + + +inclusive_or_expression_inTemplate + ::= exclusive_or_expression_inTemplate + | inclusive_or_expression_inTemplate '|' exclusive_or_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); $EndBuild ./ + + +logical_and_expression_inTemplate + ::= inclusive_or_expression_inTemplate + | logical_and_expression_inTemplate '&&' inclusive_or_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); $EndBuild ./ + + +logical_or_expression_inTemplate + ::= logical_and_expression_inTemplate + | logical_or_expression_inTemplate '||' logical_and_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); $EndBuild ./ + + +conditional_expression_inTemplate + ::= logical_or_expression_inTemplate + | logical_or_expression_inTemplate '?' expression ':' assignment_expression_inTemplate + /. $Build consumeExpressionConditional(); $EndBuild ./ + +assignment_expression_inTemplate + ::= conditional_expression_inTemplate + | throw_expression + | logical_or_expression_inTemplate '=' assignment_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); $EndBuild ./ + | logical_or_expression_inTemplate '*=' assignment_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); $EndBuild ./ + | logical_or_expression_inTemplate '/=' assignment_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); $EndBuild ./ + | logical_or_expression_inTemplate '%=' assignment_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); $EndBuild ./ + | logical_or_expression_inTemplate '+=' assignment_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); $EndBuild ./ + | logical_or_expression_inTemplate '-=' assignment_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); $EndBuild ./ + | logical_or_expression_inTemplate '>>=' assignment_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); $EndBuild ./ + | logical_or_expression_inTemplate '<<=' assignment_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); $EndBuild ./ + | logical_or_expression_inTemplate '&=' assignment_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); $EndBuild ./ + | logical_or_expression_inTemplate '^=' assignment_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); $EndBuild ./ + | logical_or_expression_inTemplate '|=' assignment_expression_inTemplate + /. $Build consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); $EndBuild ./ + + + + +--end of rules for template arguments throw_expression ::= 'throw' /. $Build consumeExpressionThrow(false); $EndBuild ./ @@ -1185,7 +1269,6 @@ type_specifier_seq ::= declaration_specifiers - abstract_declarator ::= direct_abstract_declarator | ptr_operator_seq @@ -1583,28 +1666,110 @@ type_parameter /. $Build consumeTemplatedTypeTemplateParameter(true); $EndBuild ./ - template_id_name ::= identifier_name '<' template_argument_list_opt '>' /. $Build consumeTemplateId(); $EndBuild ./ +-- | ERROR_TOKEN +-- /. $Build consumeTemplateIDError(); $EndBuild ./ template_argument_list ::= template_argument - | template_argument_list ',' template_argument + | template_argument_list ',' template_argument template_argument_list_opt ::= template_argument_list | $empty +--type_id in template + +class_name_inTemplate + ::= identifier_name + +class_or_namespace_name_inTemplate -- just identifiers + ::= class_name_inTemplate + --| namespace_name -- namespace_name name can only be an identifier token, which is already accepted by + +nested_name_specifier_inTemplate + ::= class_or_namespace_name_inTemplate '::' nested_name_specifier_with_template_inTemplate + /. $Build consumeNestedNameSpecifier(true); $EndBuild ./ + | class_or_namespace_name_inTemplate '::' + /. $Build consumeNestedNameSpecifier(false); $EndBuild ./ + + +nested_name_specifier_with_template_inTemplate + ::= class_or_namespace_name_with_template_inTemplate '::' nested_name_specifier_with_template_inTemplate + /. $Build consumeNestedNameSpecifier(true); $EndBuild ./ + | class_or_namespace_name_with_template_inTemplate '::' + /. $Build consumeNestedNameSpecifier(false); $EndBuild ./ + + +class_or_namespace_name_with_template_inTemplate + ::= template_opt class_or_namespace_name_inTemplate + /. $Build consumeNameWithTemplateKeyword(); $EndBuild ./ + +nested_name_specifier_opt_inTemplate + ::= nested_name_specifier_inTemplate + | $empty + /. $Build consumeNestedNameSpecifierEmpty(); $EndBuild ./ + + +type_name_inTemplate -- all identifiers of some kind + ::= class_name_inTemplate + +-- last two rules moved here from simple_type_specifier +type_name_specifier_inTemplate -- all identifiers of some kind + ::= type_name_inTemplate +-- | dcolon_opt nested_name_specifier_opt_inTemplate type_name_inTemplate +-- /. $Build consumeQualifiedId(false); $EndBuild ./ +-- | dcolon_opt nested_name_specifier_inTemplate 'template' template_id_name +-- /. $Build consumeQualifiedId(false); $EndBuild ./ + | 'typename' dcolon_opt nested_name_specifier identifier_name + /. $Build consumeQualifiedId(false); $EndBuild ./ + | 'typename' dcolon_opt nested_name_specifier template_opt template_id_name + /. $Build consumeQualifiedId(true); $EndBuild ./ + | 'typename' identifier_name + +type_name_declaration_specifiers_inTemplate + ::= type_name_specifier_inTemplate + | no_type_declaration_specifiers type_name_specifier_inTemplate + | type_name_declaration_specifiers_inTemplate no_type_declaration_specifier + + + +declaration_specifiers_inTemplate + ::= simple_declaration_specifiers + /. $Build consumeDeclarationSpecifiersSimple(); $EndBuild ./ + | class_declaration_specifiers + /. $Build consumeDeclarationSpecifiersComposite(); $EndBuild ./ + | elaborated_declaration_specifiers + /. $Build consumeDeclarationSpecifiersComposite(); $EndBuild ./ + | enum_declaration_specifiers + /. $Build consumeDeclarationSpecifiersComposite(); $EndBuild ./ + | type_name_declaration_specifiers_inTemplate + /. $Build consumeDeclarationSpecifiersTypeName(); $EndBuild ./ + + +type_specifier_seq_inTemplate + ::= declaration_specifiers_inTemplate + + +type_id_inTemplate + ::= type_specifier_seq_inTemplate + /. $Build consumeTypeId(false); $EndBuild ./ + | type_specifier_seq_inTemplate abstract_declarator + /. $Build consumeTypeId(true); $EndBuild ./ + +--end type_id in template + template_argument - ::= assignment_expression - /. $Build consumeTemplateArgumentExpression(); $EndBuild ./ - | type_id + ::= assignment_expression_inTemplate + /. $Build consumeTemplateArgumentExpression(); $EndBuild ./ + | type_id_inTemplate /. $Build consumeTemplateArgumentTypeId(); $EndBuild ./ - --| qualified_or_unqualified_name -- accessible through assignment_expression + explicit_instantiation ::= 'template' declaration diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/parserBuild.properties b/lrparser/org.eclipse.cdt.core.lrparser/grammar/parserBuild.properties index cc949e32c47..171f464603e 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/parserBuild.properties +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/parserBuild.properties @@ -11,4 +11,4 @@ ############################################################################### lpg_exe=D:/lpg/lpgdistribution/lpgexe/lpg.exe -lpg_template=D:/newWorkspace/cdt_70_ies/org.eclipse.cdt.core.lrparser/grammar/template \ No newline at end of file +lpg_template=D:/newWorkspace/rdp80_dev/org.eclipse.cdt.core.lrparser/grammar/template \ No newline at end of file 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 41acd064f1b..9994baf2771 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 @@ -10,15 +10,24 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; +import lpg.lpgjavaruntime.IToken; +import lpg.lpgjavaruntime.PrsStream; +import lpg.lpgjavaruntime.Token; + import org.eclipse.cdt.core.dom.ICodeReaderFactory; import org.eclipse.cdt.core.dom.ast.IASTCompletionNode; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.gnu.c.GCCLanguage; import org.eclipse.cdt.core.dom.ast.gnu.cpp.GPPLanguage; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.parser.CLanguageKeywords; import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration; import org.eclipse.cdt.core.index.IIndex; @@ -53,8 +62,20 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { private static final boolean DEBUG_PRINT_GCC_AST = false; private static final boolean DEBUG_PRINT_AST = false; - + // default 0.5 min + private long parser_timeout_limit_lowerBoundary = 1 * 30 * 1000; + // default 2 mins + private long parser_timeout_limit_uppperBoundary = 1 * 60 * 1000; + //time limit for each token, 1ms + public static long UNIT_PARSER_TIMEOUT_LIMIT = 10; + private static long LONGEST_CORE_RUNTIME; + private static long LONGEST_LPR_RUNTIME; + + + public static boolean CATCH_TEMPLATEID_ERROR = false; + + private ICLanguageKeywords keywords = null; /** * Retrieve the parser (runs after the preprocessor runs). @@ -64,6 +85,13 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { */ protected abstract IParser getParser(IScanner scanner, IIndex index, Map properties); + protected IParser getCompleteParser(IScanner scanner, IIndex index, Map properties){ + return getParser(scanner, index, properties); + } + protected ISecondaryParser getCompleteParser(ITokenStream stream, IScanner scanner, IIndex index, Map properties){ + return (ISecondaryParser)getParser(scanner, index, properties); + } + /** * Returns the ParserLanguage value that is to be used when creating * an instance of CPreprocessor. @@ -77,6 +105,25 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { */ protected abstract IScannerExtensionConfiguration getScannerExtensionConfiguration(); + private class ParseThread extends Thread{ + ParseThread(){ + super(); + super.setName("ParserThread"); + } + AST_TYPE astUnit = null; + AST_TYPE getASTUnit(){ + return astUnit; + } + } + + private AST_TYPE runThreadByLimitedTime(long limitTime, ParseThread parseThread) throws InterruptedException{ + parseThread.start(); + + parseThread.join(limitTime); + + return parseThread.getASTUnit(); + } + @Override @Deprecated public IASTTranslationUnit getASTTranslationUnit(org.eclipse.cdt.core.parser.CodeReader reader, @@ -85,12 +132,29 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { return getASTTranslationUnit(FileContent.adapt(reader), scanInfo, IncludeFileContentProvider .adapt(codeReaderFactory), index, options, log); } - - @Override - public IASTTranslationUnit getASTTranslationUnit(FileContent reader, IScannerInfo scanInfo, - IncludeFileContentProvider fileCreator, IIndex index, int options, IParserLogService log) - throws CoreException { + public void setParser_timeout_limit_lowerBoundary( + long parser_timeout_limit_lowerBoundary) { + this.parser_timeout_limit_lowerBoundary = parser_timeout_limit_lowerBoundary; + } + + public void setParser_timeout_limit_uppperBoundary( + long parser_timeout_limit_uppperBoundary) { + this.parser_timeout_limit_uppperBoundary = parser_timeout_limit_uppperBoundary; + } + + @Override + public IASTTranslationUnit getASTTranslationUnit(final FileContent reader, final IScannerInfo scanInfo, + final IncludeFileContentProvider fileCreator, final IIndex index, int options, final IParserLogService log) + throws CoreException { + CATCH_TEMPLATEID_ERROR = false; + long startTime=0; + java.util.Date today=null; + if(log.isTracing()){ + today = new java.util.Date(); + startTime = today.getTime(); + log.traceLog("^^^^^^ Start parsing " + reader.getFileLocation() + " at " + new java.sql.Timestamp(startTime)); + } IASTTranslationUnit gtu = null; if(DEBUG_PRINT_GCC_AST) { System.out.println("\n********************************************************\nParsing\nOptions: " + options); @@ -103,31 +167,160 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { System.out.println(); } - IScannerExtensionConfiguration config = getScannerExtensionConfiguration(); + final IScannerExtensionConfiguration config = getScannerExtensionConfiguration(); - ParserLanguage pl = getParserLanguage(); - IScanner preprocessor = new CPreprocessor(reader, scanInfo, pl, log, config, fileCreator); + final ParserLanguage pl = getParserLanguage(); + final IScanner preprocessor = new CPreprocessor(reader, scanInfo, pl, log, config, fileCreator); preprocessor.setComputeImageLocations((options & ILanguage.OPTION_NO_IMAGE_LOCATIONS) == 0); - Map parserProperties = new HashMap(); + final Map parserProperties = new HashMap(); parserProperties.put(LRParserProperties.TRANSLATION_UNIT_PATH, reader.getFileLocation()); if((options & OPTION_SKIP_FUNCTION_BODIES) != 0) parserProperties.put(LRParserProperties.SKIP_FUNCTION_BODIES, "true"); if((options & OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS) != 0) parserProperties.put(LRParserProperties.SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS, "true"); - IParser parser = getParser(preprocessor, index, parserProperties); - IASTTranslationUnit tu = parser.parse(); - tu.setIsHeaderUnit((options & OPTION_IS_SOURCE_UNIT) == 0); // the TU is marked as either a source file or a header file + final IParser parser = getParser(preprocessor, index, parserProperties); + long parser_timeout_limit = parser_timeout_limit_uppperBoundary; + if(parser instanceof PrsStream){ + int token_size = ((PrsStream)parser).getSize(); + parser_timeout_limit = token_size * UNIT_PARSER_TIMEOUT_LIMIT; + if(parser_timeout_limit < parser_timeout_limit_lowerBoundary) + parser_timeout_limit = parser_timeout_limit_lowerBoundary; + if(parser_timeout_limit > parser_timeout_limit_uppperBoundary) + parser_timeout_limit = parser_timeout_limit_uppperBoundary; + log.traceLog("^^^^^^ adjusted time out limit with token size: " + token_size + " and the time out limit: " + parser_timeout_limit); + } + IASTTranslationUnit tu = null; + //real token size, substract a dummy token and a eof token + final int orgTokenSize = ((PrsStream)parser).getTokens().size(); + //final List orginalTokens = copyList(((PrsStream)parser).getTokens()); + ParseThread parseThread = new ParseThread() { + + @Override + public void run() { + try{ + astUnit = parser.parse(); + } + + catch (Exception e) { + + /* + if(e instanceof TemplateIDErrorException){ + //IScanner completePreprocessor = new CPreprocessor(reader, scanInfo, pl, log, config, fileCreator); + //IParser completeParser = getCompleteParser(preprocessor, index, parserProperties); + + ISecondaryParser completeParser = getCompleteParser((ITokenStream)parser, preprocessor, index, parserProperties); + //completeParser.setAction(parser.getAction()); + //((ISecondaryParser)completeParser).setTokenMap((ITokenStream)parser); + //copyTokensToParser((PrsStream)completeParser, ((PrsStream)parser).getTokens().subList(0, orgTokenSize)); + ((ISecondaryParser)completeParser).setTokens(((PrsStream)parser).getTokens().subList(1, orgTokenSize-1)); + astUnit = completeParser.parse(); + }else{ + */ + if(log.isTracing()){ + StringWriter stringW = new StringWriter(); + PrintWriter printW = new PrintWriter(stringW); + e.printStackTrace(printW); + + log.traceLog("^^^^^^ PARSER_ERR_STACK" + stringW.toString()); + } + //} + + } + + } + + }; + + try { + tu = runThreadByLimitedTime(parser_timeout_limit, parseThread); + } catch (InterruptedException e) { + + StringWriter stringW = new StringWriter(); + PrintWriter printW = new PrintWriter(stringW); + e.printStackTrace(printW); + + + log.traceLog("^^^^^^_ERR_STACK" + stringW.toString()); + //e.printStackTrace(); + } + parseThread.stop(); + long lprFinishTime=0; + long coreFinishTime=0; + if(log.isTracing()){ + today = new java.util.Date(); + lprFinishTime = today.getTime(); + } + + if(tu==null){ + long lpr_fail_time=0; + if(log.isTracing()){ + lpr_fail_time = lprFinishTime; + log.traceLog("^^^^^^ LR parser fails in parsing " + reader.getFileLocation() + " after running " + (lpr_fail_time-startTime)/1000 + " seconds"); + } + + ILanguage gppLanguage = getParserLanguage() == ParserLanguage.CPP ? GPPLanguage.getDefault() : GCCLanguage.getDefault(); + tu = gppLanguage.getASTTranslationUnit(reader, scanInfo, fileCreator, index, options, log); + if(log.isTracing()){ + today = new java.util.Date(); + coreFinishTime = today.getTime(); + + log.traceLog("^^^^^^ core parser parses " + reader.getFileLocation() + " in " + (coreFinishTime - lpr_fail_time)/1000 + " seconds"); + } + } + if(tu!=null){ + tu.setIsHeaderUnit((options & OPTION_IS_SOURCE_UNIT) == 0); // the TU is marked as either a source file or a header file + } if(DEBUG_PRINT_AST) { System.out.println("Base Extensible Language AST:"); ASTPrinter.print(tu); } + long finishTime ; + if(log.isTracing()){ + if(coreFinishTime>0){ + //parsed by core parser. + finishTime = coreFinishTime; + long core_runtime = finishTime - startTime; + log.traceLog("^^^^^^ Finish parsing with cdt core parser " + reader.getFileLocation() + " at " + new java.sql.Timestamp(finishTime) + " runtime: " + core_runtime); + if(core_runtime > LONGEST_CORE_RUNTIME){ + LONGEST_CORE_RUNTIME = core_runtime; + log.traceLog("^^^^^^ CLCLCLCL so far the longest runtime with core parser is: " + core_runtime/1000); + } + }else{ + finishTime = lprFinishTime; + long lpr_runtime = finishTime - startTime; + log.traceLog("^^^^^^ Finish parsing " + reader.getFileLocation() + " at " + new java.sql.Timestamp(finishTime) + " runtime: " + lpr_runtime); + if(lpr_runtime > LONGEST_LPR_RUNTIME){ + LONGEST_LPR_RUNTIME = lpr_runtime; + log.traceLog("^^^^^^ LLLLLLLL so far the longest runtime by LPR Parser is: " + lpr_runtime/1000); + } + } + } return tu; } + public void copyTokensToParser(PrsStream parser, List tokens) { + parser.resetTokenStream(); + + for(IToken token : tokens) { + + parser.addToken(token); + } + + } + + public List copyList(List orgList){ + List returnList = new ArrayList(orgList.size()); + for(int i=0; i parser = getParser(preprocessor, index, parserProperties); - parser.parse(); + final IParser parser = getParser(preprocessor, index, parserProperties); - IASTCompletionNode completionNode = parser.getCompletionNode(); + long parser_timeout_limit = parser_timeout_limit_uppperBoundary; + if(parser instanceof PrsStream){ + int token_size = ((PrsStream)parser).getSize(); + parser_timeout_limit = token_size * UNIT_PARSER_TIMEOUT_LIMIT; + if(parser_timeout_limit < parser_timeout_limit_lowerBoundary) + parser_timeout_limit = parser_timeout_limit_lowerBoundary; + if(parser_timeout_limit > parser_timeout_limit_uppperBoundary) + parser_timeout_limit = parser_timeout_limit_uppperBoundary; + if(log.isTracing()){ + log.traceLog("^^^^^^ adjusted time out limit with token size: " + token_size + " and the time out limit: " + parser_timeout_limit); + } + } + ParseThread parseThread = new ParseThread() { + + @Override + public void run() { + parser.parse(); + astUnit = parser.getCompletionNode(); + } + + }; + + IASTCompletionNode completionNode=null; + try { + completionNode = runThreadByLimitedTime(parser_timeout_limit*100, parseThread); + } catch (InterruptedException e) { + if(log.isTracing()){ + StringWriter stringW = new StringWriter(); + PrintWriter printW = new PrintWriter(stringW); + e.printStackTrace(printW); + + + log.traceLog("^^^^^^_ERR_STACK" + stringW.toString()); + } + //e.printStackTrace(); + } + parseThread.stop(); + if(completionNode==null){ + log.traceLog("LR parser fails in parsing " + reader.getFileLocation()); + if(log.isTracing()){ + log.traceLog("LR parser fails in parsing " + reader.getFileLocation()); + } + ILanguage gppLanguage = getParserLanguage() == ParserLanguage.CPP ? GPPLanguage.getDefault() : GCCLanguage.getDefault(); + completionNode=gppLanguage.getCompletionNode(reader, scanInfo, fileCreator, index, log, offset); + } if(DEBUG_PRINT_AST) { System.out.println("Base Extensible Language AST:"); 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 a7ca0726c84..99a1629a7f4 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 @@ -478,7 +478,16 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { IASTExpression expr = (IASTExpression) astStack.peek(); if(expr instanceof IASTIdExpression) { - IASTName name = ((IASTIdExpression)expr).getName().copy(); + IASTName orgName =((IASTIdExpression)expr).getName(); + IASTName name = null; + try{ + name = orgName.copy(); + //if there is node throws UnsupportedOperationException in copy, just use the original node + } catch(UnsupportedOperationException ue){ + name = orgName; + } + + ParserUtil.setOffsetAndLength(name, expr); IASTNamedTypeSpecifier declSpec = nodeFactory.newTypedefNameSpecifier(name); ParserUtil.setOffsetAndLength(declSpec, name); diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/FixedBacktrackingParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/FixedBacktrackingParser.java index e002668fdba..9ffd3669427 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/FixedBacktrackingParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/FixedBacktrackingParser.java @@ -305,11 +305,14 @@ public class FixedBacktrackingParser extends Stacks current_kind = tokStream.getKind(curtok), act = tAction(stateStack[stateStackTop], current_kind); + int count = 0; + // // The main driver loop // for (;;) { + count++; // // if the parser needs to stop processing, // it may do so here. @@ -390,6 +393,8 @@ public class FixedBacktrackingParser extends Stacks //System.out.println("****Number of actions: " + action.size()); //System.out.println("****Max Stack Size = " + maxStackTop); //System.out.flush(); + System.out.println("The backtrace parser count is: " + count ); + return (act == ERROR_ACTION ? error_token : 0); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java index 71bae636f81..1394071163f 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java @@ -248,7 +248,13 @@ public void setTokens(List tokens) { public CPPExpressionParser(ITokenStream stream, Map properties) { // constructor for creating secondary parser initActions(properties); tokenMap = new TokenMap(CPPExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); -} +} + + public CPPExpressionParser(ITokenStream stream, IScanner scanner, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map properties) { // constructor for creating secondary parser + initActions(properties); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + tokenMap = new TokenMap(CPPExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); +} public void ruleAction(int ruleNumber) @@ -815,1131 +821,1359 @@ public CPPExpressionParser(ITokenStream stream, Map properties) { } // - // Rule 141: throw_expression ::= throw + // Rule 142: relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression // - case 141: { action. consumeExpressionThrow(false); break; + case 142: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 142: throw_expression ::= throw assignment_expression + // Rule 143: relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression ) // - case 142: { action. consumeExpressionThrow(true); break; + case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 145: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 144: relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression // - case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 146: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 145: relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression // - case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 147: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 147: equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate // - case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 148: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 148: equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate // - case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 149: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 150: and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate // - case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 150: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 152: exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate // - case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 151: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 154: inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate // - case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 152: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 156: logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate // - case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 156: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 153: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 158: logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate // - case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 158: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 154: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 160: conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate // - case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 160: { action. consumeExpressionConditional(); break; } // - // Rule 155: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 163: assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate // - case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 163: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 157: expression_list ::= expression_list_actual + // Rule 164: assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate // - case 157: { action. consumeExpressionList(); break; + case 164: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 161: expression_list_opt ::= $Empty + // Rule 165: assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate // - case 161: { action. consumeEmpty(); break; + case 165: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 163: expression_opt ::= $Empty + // Rule 166: assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate // - case 163: { action. consumeEmpty(); break; + case 166: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 166: constant_expression_opt ::= $Empty + // Rule 167: assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate // - case 166: { action. consumeEmpty(); break; + case 167: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 175: statement ::= ERROR_TOKEN + // Rule 168: assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate // - case 175: { action. consumeStatementProblem(); break; + case 168: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 176: labeled_statement ::= identifier : statement + // Rule 169: assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate // - case 176: { action. consumeStatementLabeled(); break; + case 169: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 177: labeled_statement ::= case constant_expression : statement + // Rule 170: assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate // - case 177: { action. consumeStatementCase(); break; + case 170: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 178: labeled_statement ::= default : statement + // Rule 171: assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate // - case 178: { action. consumeStatementDefault(); break; + case 171: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 179: expression_statement ::= expression ; + // Rule 172: assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate // - case 179: { action. consumeStatementExpression(); break; + case 172: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 180: expression_statement ::= ; + // Rule 173: assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate // - case 180: { action. consumeStatementNull(); break; + case 173: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 181: compound_statement ::= { statement_seq } + // Rule 174: throw_expression ::= throw // - case 181: { action. consumeStatementCompoundStatement(true); break; + case 174: { action. consumeExpressionThrow(false); break; } // - // Rule 182: compound_statement ::= { } + // Rule 175: throw_expression ::= throw assignment_expression // - case 182: { action. consumeStatementCompoundStatement(false); break; + case 175: { action. consumeExpressionThrow(true); break; } // - // Rule 185: selection_statement ::= if ( condition ) statement + // Rule 178: assignment_expression ::= logical_or_expression = assignment_expression // - case 185: { action. consumeStatementIf(false); break; + case 178: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 186: selection_statement ::= if ( condition ) statement else statement + // Rule 179: assignment_expression ::= logical_or_expression *= assignment_expression // - case 186: { action. consumeStatementIf(true); break; + case 179: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 187: selection_statement ::= switch ( condition ) statement + // Rule 180: assignment_expression ::= logical_or_expression /= assignment_expression // - case 187: { action. consumeStatementSwitch(); break; + case 180: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 189: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 181: assignment_expression ::= logical_or_expression %= assignment_expression // - case 189: { action. consumeConditionDeclaration(); break; + case 181: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 191: condition_opt ::= $Empty + // Rule 182: assignment_expression ::= logical_or_expression += assignment_expression // - case 191: { action. consumeEmpty(); break; + case 182: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 192: iteration_statement ::= while ( condition ) statement + // Rule 183: assignment_expression ::= logical_or_expression -= assignment_expression // - case 192: { action. consumeStatementWhileLoop(); break; + case 183: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 193: iteration_statement ::= do statement while ( expression ) ; + // Rule 184: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 193: { action. consumeStatementDoLoop(true); break; + case 184: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 194: iteration_statement ::= do statement + // Rule 185: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 194: { action. consumeStatementDoLoop(false); break; + case 185: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 186: assignment_expression ::= logical_or_expression &= assignment_expression // - case 195: { action. consumeStatementForLoop(); break; + case 186: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 197: for_init_statement ::= simple_declaration_with_declspec + // Rule 187: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 197: { action. consumeStatementDeclaration(); break; + case 187: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 198: jump_statement ::= break ; + // Rule 188: assignment_expression ::= logical_or_expression |= assignment_expression // - case 198: { action. consumeStatementBreak(); break; + case 188: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 199: jump_statement ::= continue ; + // Rule 190: expression_list ::= expression_list_actual // - case 199: { action. consumeStatementContinue(); break; + case 190: { action. consumeExpressionList(); break; } // - // Rule 200: jump_statement ::= return expression ; + // Rule 194: expression_list_opt ::= $Empty // - case 200: { action. consumeStatementReturn(true); break; + case 194: { action. consumeEmpty(); break; } // - // Rule 201: jump_statement ::= return ; + // Rule 196: expression_opt ::= $Empty // - case 201: { action. consumeStatementReturn(false); break; + case 196: { action. consumeEmpty(); break; } // - // Rule 202: jump_statement ::= goto identifier_token ; + // Rule 199: constant_expression_opt ::= $Empty // - case 202: { action. consumeStatementGoto(); break; + case 199: { action. consumeEmpty(); break; } // - // Rule 203: declaration_statement ::= block_declaration + // Rule 208: statement ::= ERROR_TOKEN // - case 203: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 208: { action. consumeStatementProblem(); break; } // - // Rule 204: declaration_statement ::= function_definition + // Rule 209: labeled_statement ::= identifier : statement // - case 204: { action. consumeStatementDeclaration(); break; + case 209: { action. consumeStatementLabeled(); break; } // - // Rule 212: declaration ::= ERROR_TOKEN + // Rule 210: labeled_statement ::= case constant_expression : statement // - case 212: { action. consumeDeclarationProblem(); break; + case 210: { action. consumeStatementCase(); break; } // - // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 211: labeled_statement ::= default : statement // - case 222: { action. consumeDeclarationSimple(true); break; + case 211: { action. consumeStatementDefault(); break; } // - // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 212: expression_statement ::= expression ; // - case 223: { action. consumeDeclarationSimple(true); break; + case 212: { action. consumeStatementExpression(); break; } // - // Rule 224: declaration_specifiers ::= simple_declaration_specifiers + // Rule 213: expression_statement ::= ; // - case 224: { action. consumeDeclarationSpecifiersSimple(); break; + case 213: { action. consumeStatementNull(); break; } // - // Rule 225: declaration_specifiers ::= class_declaration_specifiers + // Rule 214: compound_statement ::= { statement_seq } // - case 225: { action. consumeDeclarationSpecifiersComposite(); break; + case 214: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 226: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 215: compound_statement ::= { } // - case 226: { action. consumeDeclarationSpecifiersComposite(); break; + case 215: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 227: declaration_specifiers ::= enum_declaration_specifiers + // Rule 218: selection_statement ::= if ( condition ) statement // - case 227: { action. consumeDeclarationSpecifiersComposite(); break; + case 218: { action. consumeStatementIf(false); break; } // - // Rule 228: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 219: selection_statement ::= if ( condition ) statement else statement // - case 228: { action. consumeDeclarationSpecifiersTypeName(); break; + case 219: { action. consumeStatementIf(true); break; } // - // Rule 230: declaration_specifiers_opt ::= $Empty + // Rule 220: selection_statement ::= switch ( condition ) statement // - case 230: { action. consumeEmpty(); break; + case 220: { action. consumeStatementSwitch(); break; } // - // Rule 234: no_type_declaration_specifier ::= friend + // Rule 222: condition ::= type_specifier_seq declarator = assignment_expression // - case 234: { action. consumeToken(); break; + case 222: { action. consumeConditionDeclaration(); break; } // - // Rule 235: no_type_declaration_specifier ::= typedef + // Rule 224: condition_opt ::= $Empty // - case 235: { action. consumeToken(); break; + case 224: { action. consumeEmpty(); break; } // - // Rule 255: storage_class_specifier ::= auto + // Rule 225: iteration_statement ::= while ( condition ) statement // - case 255: { action. consumeToken(); break; + case 225: { action. consumeStatementWhileLoop(); break; } // - // Rule 256: storage_class_specifier ::= register + // Rule 226: iteration_statement ::= do statement while ( expression ) ; // - case 256: { action. consumeToken(); break; + case 226: { action. consumeStatementDoLoop(true); break; } // - // Rule 257: storage_class_specifier ::= static + // Rule 227: iteration_statement ::= do statement // - case 257: { action. consumeToken(); break; + case 227: { action. consumeStatementDoLoop(false); break; } // - // Rule 258: storage_class_specifier ::= extern + // Rule 228: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 258: { action. consumeToken(); break; + case 228: { action. consumeStatementForLoop(); break; } // - // Rule 259: storage_class_specifier ::= mutable + // Rule 230: for_init_statement ::= simple_declaration_with_declspec // - case 259: { action. consumeToken(); break; + case 230: { action. consumeStatementDeclaration(); break; } // - // Rule 260: function_specifier ::= inline + // Rule 231: jump_statement ::= break ; // - case 260: { action. consumeToken(); break; + case 231: { action. consumeStatementBreak(); break; } // - // Rule 261: function_specifier ::= virtual + // Rule 232: jump_statement ::= continue ; // - case 261: { action. consumeToken(); break; + case 232: { action. consumeStatementContinue(); break; } // - // Rule 262: function_specifier ::= explicit + // Rule 233: jump_statement ::= return expression ; // - case 262: { action. consumeToken(); break; + case 233: { action. consumeStatementReturn(true); break; } // - // Rule 263: simple_type_specifier ::= simple_type_specifier_token + // Rule 234: jump_statement ::= return ; // - case 263: { action. consumeToken(); break; + case 234: { action. consumeStatementReturn(false); break; } // - // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 235: jump_statement ::= goto identifier_token ; // - case 277: { action. consumeQualifiedId(false); break; + case 235: { action. consumeStatementGoto(); break; } // - // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 236: declaration_statement ::= block_declaration // - case 278: { action. consumeQualifiedId(false); break; + case 236: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 237: declaration_statement ::= function_definition // - case 279: { action. consumeQualifiedId(false); break; + case 237: { action. consumeStatementDeclaration(); break; } // - // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 245: declaration ::= ERROR_TOKEN // - case 280: { action. consumeQualifiedId(true); break; + case 245: { action. consumeDeclarationProblem(); break; } // - // Rule 282: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 255: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 282: { action. consumeTypeSpecifierElaborated(false); break; + case 255: { action. consumeDeclarationSimple(true); break; } // - // Rule 283: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 256: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 283: { action. consumeTypeSpecifierElaborated(true); break; + case 256: { action. consumeDeclarationSimple(true); break; } // - // Rule 284: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 257: declaration_specifiers ::= simple_declaration_specifiers // - case 284: { action. consumeTypeSpecifierElaborated(false); break; + case 257: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 288: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 258: declaration_specifiers ::= class_declaration_specifiers // - case 288: { action. consumeTypeSpecifierEnumeration(false); break; + case 258: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 289: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 259: declaration_specifiers ::= elaborated_declaration_specifiers // - case 289: { action. consumeTypeSpecifierEnumeration(true); break; + case 259: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 295: enumerator_definition ::= identifier_token + // Rule 260: declaration_specifiers ::= enum_declaration_specifiers // - case 295: { action. consumeEnumerator(false); break; + case 260: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 296: enumerator_definition ::= identifier_token = constant_expression + // Rule 261: declaration_specifiers ::= type_name_declaration_specifiers // - case 296: { action. consumeEnumerator(true); break; + case 261: { action. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 298: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } + // Rule 263: declaration_specifiers_opt ::= $Empty // - case 298: { action. consumeNamespaceDefinition(true); break; + case 263: { action. consumeEmpty(); break; } // - // Rule 299: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } + // Rule 267: no_type_declaration_specifier ::= friend // - case 299: { action. consumeNamespaceDefinition(false); break; + case 267: { action. consumeToken(); break; } // - // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 268: no_type_declaration_specifier ::= typedef // - case 301: { action. consumeNamespaceAliasDefinition(); break; + case 268: { action. consumeToken(); break; } // - // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 288: storage_class_specifier ::= auto // - case 302: { action. consumeUsingDeclaration(); break; + case 288: { action. consumeToken(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 289: storage_class_specifier ::= register // - case 303: { action. consumePlaceHolder(); break; + case 289: { action. consumeToken(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 290: storage_class_specifier ::= static // - case 304: { action. consumeEmpty(); break; + case 290: { action. consumeToken(); break; } // - // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 291: storage_class_specifier ::= extern // - case 305: { action. consumeUsingDirective(); break; + case 291: { action. consumeToken(); break; } // - // Rule 306: asm_definition ::= asm ( stringlit ) ; + // Rule 292: storage_class_specifier ::= mutable // - case 306: { action. consumeDeclarationASM(); break; + case 292: { action. consumeToken(); break; } // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 293: function_specifier ::= inline // - case 307: { action. consumeLinkageSpecification(); break; + case 293: { action. consumeToken(); break; } // - // Rule 308: linkage_specification ::= extern stringlit declaration + // Rule 294: function_specifier ::= virtual // - case 308: { action. consumeLinkageSpecification(); break; + case 294: { action. consumeToken(); break; } // - // Rule 313: init_declarator_complete ::= init_declarator + // Rule 295: function_specifier ::= explicit // - case 313: { action. consumeInitDeclaratorComplete(); break; + case 295: { action. consumeToken(); break; } // - // Rule 315: init_declarator ::= complete_declarator initializer + // Rule 296: simple_type_specifier ::= simple_type_specifier_token // - case 315: { action. consumeDeclaratorWithInitializer(true); break; + case 296: { action. consumeToken(); break; } // - // Rule 318: declarator ::= ptr_operator_seq direct_declarator + // Rule 310: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 318: { action. consumeDeclaratorWithPointer(true); break; + case 310: { action. consumeQualifiedId(false); break; } // - // Rule 320: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 311: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 320: { action. consumeDeclaratorWithPointer(true); break; + case 311: { action. consumeQualifiedId(false); break; } // - // Rule 324: basic_direct_declarator ::= declarator_id_name + // Rule 312: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 324: { action. consumeDirectDeclaratorIdentifier(); break; + case 312: { action. consumeQualifiedId(false); break; } // - // Rule 325: basic_direct_declarator ::= ( declarator ) + // Rule 313: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 325: { action. consumeDirectDeclaratorBracketed(); break; + case 313: { action. consumeQualifiedId(true); break; } // - // Rule 326: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 315: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 326: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 315: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 327: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 316: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 327: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 316: { action. consumeTypeSpecifierElaborated(true); break; } // - // Rule 328: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 317: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 328: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 317: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 329: array_modifier ::= [ constant_expression ] + // Rule 321: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 329: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 321: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 330: array_modifier ::= [ ] + // Rule 322: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 330: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 322: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 331: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 328: enumerator_definition ::= identifier_token // - case 331: { action. consumePointer(); break; + case 328: { action. consumeEnumerator(false); break; } // - // Rule 332: ptr_operator ::= pointer_hook & pointer_hook + // Rule 329: enumerator_definition ::= identifier_token = constant_expression // - case 332: { action. consumeReferenceOperator(); break; + case 329: { action. consumeEnumerator(true); break; } // - // Rule 333: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 331: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } // - case 333: { action. consumePointerToMember(); break; + case 331: { action. consumeNamespaceDefinition(true); break; } // - // Rule 340: cv_qualifier ::= const + // Rule 332: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } // - case 340: { action. consumeToken(); break; + case 332: { action. consumeNamespaceDefinition(false); break; } // - // Rule 341: cv_qualifier ::= volatile + // Rule 334: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 341: { action. consumeToken(); break; + case 334: { action. consumeNamespaceAliasDefinition(); break; } // - // Rule 343: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 335: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 343: { action. consumeQualifiedId(false); break; + case 335: { action. consumeUsingDeclaration(); break; } // - // Rule 344: type_id ::= type_specifier_seq + // Rule 336: typename_opt ::= typename // - case 344: { action. consumeTypeId(false); break; + case 336: { action. consumePlaceHolder(); break; } // - // Rule 345: type_id ::= type_specifier_seq abstract_declarator + // Rule 337: typename_opt ::= $Empty // - case 345: { action. consumeTypeId(true); break; + case 337: { action. consumeEmpty(); break; } // - // Rule 348: abstract_declarator ::= ptr_operator_seq + // Rule 338: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 348: { action. consumeDeclaratorWithPointer(false); break; + case 338: { action. consumeUsingDirective(); break; } // - // Rule 349: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 339: asm_definition ::= asm ( stringlit ) ; // - case 349: { action. consumeDeclaratorWithPointer(true); break; + case 339: { action. consumeDeclarationASM(); break; } // - // Rule 353: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 340: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 353: { action. consumeDirectDeclaratorBracketed(); break; + case 340: { action. consumeLinkageSpecification(); break; } // - // Rule 354: basic_direct_abstract_declarator ::= ( ) + // Rule 341: linkage_specification ::= extern stringlit declaration // - case 354: { action. consumeAbstractDeclaratorEmpty(); break; + case 341: { action. consumeLinkageSpecification(); break; } // - // Rule 355: array_direct_abstract_declarator ::= array_modifier + // Rule 346: init_declarator_complete ::= init_declarator // - case 355: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 346: { action. consumeInitDeclaratorComplete(); break; } // - // Rule 356: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 348: init_declarator ::= complete_declarator initializer // - case 356: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 348: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 357: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 351: declarator ::= ptr_operator_seq direct_declarator // - case 357: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 351: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 358: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 353: function_declarator ::= ptr_operator_seq direct_declarator // - case 358: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 353: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 359: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 357: basic_direct_declarator ::= declarator_id_name // - case 359: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; + case 357: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 358: basic_direct_declarator ::= ( declarator ) // - case 360: { action. consumePlaceHolder(); break; + case 358: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 359: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 361: { action. consumeEmpty(); break; + case 359: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 362: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 360: array_direct_declarator ::= array_direct_declarator array_modifier // - case 362: { action. consumePlaceHolder(); break; + case 360: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 368: abstract_declarator_opt ::= $Empty + // Rule 361: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 368: { action. consumeEmpty(); break; + case 361: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 369: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 362: array_modifier ::= [ constant_expression ] // - case 369: { action. consumeParameterDeclaration(); break; + case 362: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 370: parameter_declaration ::= declaration_specifiers + // Rule 363: array_modifier ::= [ ] // - case 370: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 363: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 372: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 364: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 372: { action. consumeDeclaratorWithInitializer(true); break; + case 364: { action. consumePointer(); break; } // - // Rule 374: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 365: ptr_operator ::= pointer_hook & pointer_hook // - case 374: { action. consumeDeclaratorWithInitializer(true); break; + case 365: { action. consumeReferenceOperator(); break; } // - // Rule 375: parameter_init_declarator ::= = parameter_initializer + // Rule 366: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 375: { action. consumeDeclaratorWithInitializer(false); break; + case 366: { action. consumePointerToMember(); break; } // - // Rule 376: parameter_initializer ::= assignment_expression + // Rule 373: cv_qualifier ::= const // - case 376: { action. consumeInitializer(); break; + case 373: { action. consumeToken(); break; } // - // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 374: cv_qualifier ::= volatile // - case 377: { action. consumeFunctionDefinition(false); break; + case 374: { action. consumeToken(); break; } // - // Rule 378: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 376: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 378: { action. consumeFunctionDefinition(true); break; + case 376: { action. consumeQualifiedId(false); break; } // - // Rule 381: initializer ::= ( expression_list ) + // Rule 377: type_id ::= type_specifier_seq // - case 381: { action. consumeInitializerConstructor(); break; + case 377: { action. consumeTypeId(false); break; } // - // Rule 382: initializer_clause ::= assignment_expression + // Rule 378: type_id ::= type_specifier_seq abstract_declarator // - case 382: { action. consumeInitializer(); break; + case 378: { action. consumeTypeId(true); break; } // - // Rule 383: initializer_clause ::= initializer_list + // Rule 381: abstract_declarator ::= ptr_operator_seq // - case 383: { action. consumeInitializer(); break; + case 381: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 384: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // Rule 382: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 384: { action. consumeInitializerList(); break; + case 382: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 385: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // Rule 386: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 385: { action. consumeInitializerList(); break; + case 386: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 386: initializer_list ::= { } + // Rule 387: basic_direct_abstract_declarator ::= ( ) // - case 386: { action. consumeInitializerList(); break; + case 387: { action. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 387: start_initializer_list ::= $Empty + // Rule 388: array_direct_abstract_declarator ::= array_modifier // - case 387: { action. initializerListStart(); break; + case 388: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 388: end_initializer_list ::= $Empty + // Rule 389: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 388: { action. initializerListEnd(); break; + case 389: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 393: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 390: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 393: { action. consumeClassSpecifier(); break; + case 390: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 394: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // Rule 391: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 394: { action. consumeClassHead(false); break; + case 391: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 395: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // Rule 392: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 395: { action. consumeClassHead(false); break; + case 392: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 396: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // Rule 393: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 396: { action. consumeClassHead(true); break; + case 393: { action. consumePlaceHolder(); break; } // - // Rule 397: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // Rule 394: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 397: { action. consumeClassHead(true); break; + case 394: { action. consumeEmpty(); break; } // - // Rule 401: identifier_name_opt ::= $Empty + // Rule 395: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 395: { action. consumePlaceHolder(); break; + } + + // + // Rule 401: abstract_declarator_opt ::= $Empty // case 401: { action. consumeEmpty(); break; + } + + // + // Rule 402: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 402: { action. consumeParameterDeclaration(); break; + } + + // + // Rule 403: parameter_declaration ::= declaration_specifiers + // + case 403: { action. consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // Rule 405: parameter_init_declarator ::= declarator = parameter_initializer + // + case 405: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 407: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 407: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 408: parameter_init_declarator ::= = parameter_initializer + // + case 408: { action. consumeDeclaratorWithInitializer(false); break; + } + + // + // Rule 409: parameter_initializer ::= assignment_expression + // + case 409: { action. consumeInitializer(); break; + } + + // + // Rule 410: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // + case 410: { action. consumeFunctionDefinition(false); break; + } + + // + // Rule 411: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // + case 411: { action. consumeFunctionDefinition(true); break; + } + + // + // Rule 414: initializer ::= ( expression_list ) + // + case 414: { action. consumeInitializerConstructor(); break; + } + + // + // Rule 415: initializer_clause ::= assignment_expression + // + case 415: { action. consumeInitializer(); break; + } + + // + // Rule 416: initializer_clause ::= initializer_list + // + case 416: { action. consumeInitializer(); break; + } + + // + // Rule 417: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // + case 417: { action. consumeInitializerList(); break; + } + + // + // Rule 418: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // + case 418: { action. consumeInitializerList(); break; + } + + // + // Rule 419: initializer_list ::= { } + // + case 419: { action. consumeInitializerList(); break; + } + + // + // Rule 420: start_initializer_list ::= $Empty + // + case 420: { action. initializerListStart(); break; + } + + // + // Rule 421: end_initializer_list ::= $Empty + // + case 421: { action. initializerListEnd(); break; + } + + // + // Rule 426: class_specifier ::= class_head { member_declaration_list_opt } + // + case 426: { action. consumeClassSpecifier(); break; + } + + // + // Rule 427: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // + case 427: { action. consumeClassHead(false); break; + } + + // + // Rule 428: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // + case 428: { action. consumeClassHead(false); break; + } + + // + // Rule 429: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // + case 429: { action. consumeClassHead(true); break; + } + + // + // Rule 430: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // + case 430: { action. consumeClassHead(true); break; + } + + // + // Rule 434: identifier_name_opt ::= $Empty + // + case 434: { action. consumeEmpty(); break; } // - // Rule 405: visibility_label ::= access_specifier_keyword : + // Rule 438: visibility_label ::= access_specifier_keyword : // - case 405: { action. consumeVisibilityLabel(); break; + case 438: { action. consumeVisibilityLabel(); break; } // - // Rule 406: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 439: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 406: { action. consumeDeclarationSimple(true); break; + case 439: { action. consumeDeclarationSimple(true); break; } // - // Rule 407: member_declaration ::= declaration_specifiers_opt ; + // Rule 440: member_declaration ::= declaration_specifiers_opt ; // - case 407: { action. consumeDeclarationSimple(false); break; + case 440: { action. consumeDeclarationSimple(false); break; } // - // Rule 410: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 443: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 410: { action. consumeMemberDeclarationQualifiedId(); break; + case 443: { action. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 416: member_declaration ::= ERROR_TOKEN + // Rule 449: member_declaration ::= ERROR_TOKEN // - case 416: { action. consumeDeclarationProblem(); break; + case 449: { action. consumeDeclarationProblem(); break; } // - // Rule 425: member_declarator ::= declarator constant_initializer + // Rule 458: member_declarator ::= declarator constant_initializer // - case 425: { action. consumeMemberDeclaratorWithInitializer(); break; + case 458: { action. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 426: member_declarator ::= bit_field_declarator : constant_expression + // Rule 459: member_declarator ::= bit_field_declarator : constant_expression // - case 426: { action. consumeBitField(true); break; + case 459: { action. consumeBitField(true); break; } // - // Rule 427: member_declarator ::= : constant_expression + // Rule 460: member_declarator ::= : constant_expression // - case 427: { action. consumeBitField(false); break; + case 460: { action. consumeBitField(false); break; } // - // Rule 428: bit_field_declarator ::= identifier_name + // Rule 461: bit_field_declarator ::= identifier_name // - case 428: { action. consumeDirectDeclaratorIdentifier(); break; + case 461: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 429: constant_initializer ::= = constant_expression + // Rule 462: constant_initializer ::= = constant_expression // - case 429: { action. consumeInitializer(); break; + case 462: { action. consumeInitializer(); break; } // - // Rule 435: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 468: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 435: { action. consumeBaseSpecifier(false, false); break; + case 468: { action. consumeBaseSpecifier(false, false); break; } // - // Rule 436: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 469: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 436: { action. consumeBaseSpecifier(true, true); break; + case 469: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 437: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 470: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 437: { action. consumeBaseSpecifier(true, true); break; + case 470: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 438: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 471: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 438: { action. consumeBaseSpecifier(true, false); break; + case 471: { action. consumeBaseSpecifier(true, false); break; } // - // Rule 439: access_specifier_keyword ::= private + // Rule 472: access_specifier_keyword ::= private // - case 439: { action. consumeToken(); break; + case 472: { action. consumeToken(); break; } // - // Rule 440: access_specifier_keyword ::= protected + // Rule 473: access_specifier_keyword ::= protected // - case 440: { action. consumeToken(); break; + case 473: { action. consumeToken(); break; } // - // Rule 441: access_specifier_keyword ::= public + // Rule 474: access_specifier_keyword ::= public // - case 441: { action. consumeToken(); break; + case 474: { action. consumeToken(); break; } // - // Rule 443: access_specifier_keyword_opt ::= $Empty + // Rule 476: access_specifier_keyword_opt ::= $Empty // - case 443: { action. consumeEmpty(); break; + case 476: { action. consumeEmpty(); break; } // - // Rule 445: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 478: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 445: { action. consumeTemplateId(); break; + case 478: { action. consumeTemplateId(); break; } // - // Rule 446: conversion_function_id ::= operator conversion_type_id + // Rule 479: conversion_function_id ::= operator conversion_type_id // - case 446: { action. consumeConversionName(); break; + case 479: { action. consumeConversionName(); break; } // - // Rule 447: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 480: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 447: { action. consumeTypeId(true); break; + case 480: { action. consumeTypeId(true); break; } // - // Rule 448: conversion_type_id ::= type_specifier_seq + // Rule 481: conversion_type_id ::= type_specifier_seq // - case 448: { action. consumeTypeId(false); break; + case 481: { action. consumeTypeId(false); break; } // - // Rule 449: conversion_declarator ::= ptr_operator_seq + // Rule 482: conversion_declarator ::= ptr_operator_seq // - case 449: { action. consumeDeclaratorWithPointer(false); break; + case 482: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 455: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 488: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 455: { action. consumeConstructorChainInitializer(); break; + case 488: { action. consumeConstructorChainInitializer(); break; } // - // Rule 456: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 489: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 456: { action. consumeQualifiedId(false); break; + case 489: { action. consumeQualifiedId(false); break; } // - // Rule 459: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 492: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 459: { action. consumeTemplateId(); break; + case 492: { action. consumeTemplateId(); break; } // - // Rule 460: operator_id_name ::= operator overloadable_operator + // Rule 493: operator_id_name ::= operator overloadable_operator // - case 460: { action. consumeOperatorName(); break; + case 493: { action. consumeOperatorName(); break; } // - // Rule 503: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 536: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 503: { action. consumeTemplateDeclaration(); break; + case 536: { action. consumeTemplateDeclaration(); break; } // - // Rule 504: export_opt ::= export + // Rule 537: export_opt ::= export // - case 504: { action. consumePlaceHolder(); break; + case 537: { action. consumePlaceHolder(); break; } // - // Rule 505: export_opt ::= $Empty + // Rule 538: export_opt ::= $Empty // - case 505: { action. consumeEmpty(); break; + case 538: { action. consumeEmpty(); break; } // - // Rule 509: template_parameter ::= parameter_declaration + // Rule 542: template_parameter ::= parameter_declaration // - case 509: { action. consumeTemplateParamterDeclaration(); break; + case 542: { action. consumeTemplateParamterDeclaration(); break; } // - // Rule 510: type_parameter ::= class identifier_name_opt + // Rule 543: type_parameter ::= class identifier_name_opt // - case 510: { action. consumeSimpleTypeTemplateParameter(false); break; + case 543: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 511: type_parameter ::= class identifier_name_opt = type_id + // Rule 544: type_parameter ::= class identifier_name_opt = type_id // - case 511: { action. consumeSimpleTypeTemplateParameter(true); break; + case 544: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 512: type_parameter ::= typename identifier_name_opt + // Rule 545: type_parameter ::= typename identifier_name_opt // - case 512: { action. consumeSimpleTypeTemplateParameter(false); break; + case 545: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 513: type_parameter ::= typename identifier_name_opt = type_id + // Rule 546: type_parameter ::= typename identifier_name_opt = type_id // - case 513: { action. consumeSimpleTypeTemplateParameter(true); break; + case 546: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 514: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 547: type_parameter ::= template < template_parameter_list > class identifier_name_opt // - case 514: { action. consumeTemplatedTypeTemplateParameter(false); break; + case 547: { action. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 515: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 548: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 515: { action. consumeTemplatedTypeTemplateParameter(true); break; + case 548: { action. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 516: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 549: template_id_name ::= identifier_name < template_argument_list_opt > // - case 516: { action. consumeTemplateId(); break; + case 549: { action. consumeTemplateId(); break; } // - // Rule 521: template_argument ::= assignment_expression + // Rule 556: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 521: { action. consumeTemplateArgumentExpression(); break; + case 556: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 522: template_argument ::= type_id + // Rule 557: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: // - case 522: { action. consumeTemplateArgumentTypeId(); break; + case 557: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 523: explicit_instantiation ::= template declaration + // Rule 558: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 523: { action. consumeTemplateExplicitInstantiation(); break; + case 558: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 524: explicit_specialization ::= template < > declaration + // Rule 559: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: // - case 524: { action. consumeTemplateExplicitSpecialization(); break; + case 559: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 525: try_block ::= try compound_statement handler_seq + // Rule 560: class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate // - case 525: { action. consumeStatementTryBlock(true); break; + case 560: { action. consumeNameWithTemplateKeyword(); break; } // - // Rule 526: try_block ::= try compound_statement + // Rule 562: nested_name_specifier_opt_inTemplate ::= $Empty // - case 526: { action. consumeStatementTryBlock(false); break; + case 562: { action. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 529: handler ::= catch ( exception_declaration ) compound_statement + // Rule 565: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name // - case 529: { action. consumeStatementCatchHandler(false); break; + case 565: { action. consumeQualifiedId(false); break; } // - // Rule 530: handler ::= catch ( ... ) compound_statement + // Rule 566: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 530: { action. consumeStatementCatchHandler(true); break; + case 566: { action. consumeQualifiedId(true); break; } // - // Rule 531: exception_declaration ::= type_specifier_seq declarator + // Rule 571: declaration_specifiers_inTemplate ::= simple_declaration_specifiers // - case 531: { action. consumeDeclarationSimple(true); break; + case 571: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 532: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 572: declaration_specifiers_inTemplate ::= class_declaration_specifiers // - case 532: { action. consumeDeclarationSimple(true); break; + case 572: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 533: exception_declaration ::= type_specifier_seq + // Rule 573: declaration_specifiers_inTemplate ::= elaborated_declaration_specifiers // - case 533: { action. consumeDeclarationSimple(false); break; + case 573: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 535: exception_specification ::= throw ( ) + // Rule 574: declaration_specifiers_inTemplate ::= enum_declaration_specifiers // - case 535: { action. consumePlaceHolder(); break; + case 574: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 541: expression_parser_start ::= ERROR_TOKEN + // Rule 575: declaration_specifiers_inTemplate ::= type_name_declaration_specifiers_inTemplate // - case 541: { action. consumeEmpty(); break; + case 575: { action. consumeDeclarationSpecifiersTypeName(); break; + } + + // + // Rule 577: type_id_inTemplate ::= type_specifier_seq_inTemplate + // + case 577: { action. consumeTypeId(false); break; + } + + // + // Rule 578: type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator + // + case 578: { action. consumeTypeId(true); break; + } + + // + // Rule 579: template_argument ::= assignment_expression_inTemplate + // + case 579: { action. consumeTemplateArgumentExpression(); break; + } + + // + // Rule 580: template_argument ::= type_id_inTemplate + // + case 580: { action. consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 581: explicit_instantiation ::= template declaration + // + case 581: { action. consumeTemplateExplicitInstantiation(); break; + } + + // + // Rule 582: explicit_specialization ::= template < > declaration + // + case 582: { action. consumeTemplateExplicitSpecialization(); break; + } + + // + // Rule 583: try_block ::= try compound_statement handler_seq + // + case 583: { action. consumeStatementTryBlock(true); break; + } + + // + // Rule 584: try_block ::= try compound_statement + // + case 584: { action. consumeStatementTryBlock(false); break; + } + + // + // Rule 587: handler ::= catch ( exception_declaration ) compound_statement + // + case 587: { action. consumeStatementCatchHandler(false); break; + } + + // + // Rule 588: handler ::= catch ( ... ) compound_statement + // + case 588: { action. consumeStatementCatchHandler(true); break; + } + + // + // Rule 589: exception_declaration ::= type_specifier_seq declarator + // + case 589: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 590: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 590: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 591: exception_declaration ::= type_specifier_seq + // + case 591: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 593: exception_specification ::= throw ( ) + // + case 593: { action. consumePlaceHolder(); break; + } + + // + // Rule 599: expression_parser_start ::= ERROR_TOKEN + // + case 599: { action. consumeEmpty(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java index da47ac3a6a7..050017f0402 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java @@ -51,482 +51,623 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 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,2,1,3,1, - 0,1,0,1,1,0,1,1,1,1, - 1,1,1,1,1,3,4,3,2,1, - 4,2,1,2,5,7,5,1,4,1, - 0,5,7,2,8,1,1,2,2,3, - 2,3,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2,1, - 0,4,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,3,5,3,3,1,3,3,1,3, + 1,3,1,3,1,3,1,3,1,5, + 1,1,3,3,3,3,3,3,3,3, + 3,3,3,1,2,1,1,3,3,3, + 3,3,3,3,3,3,3,3,1,2, + 1,3,1,0,1,0,1,1,0,1, + 1,1,1,1,1,1,1,1,3,4, + 3,2,1,4,2,1,2,5,7,5, + 1,4,1,0,5,7,2,8,1,1, + 2,2,3,2,3,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, - 2,5,6,5,0,1,0,7,8,0, - 1,3,1,0,1,3,1,7,6,0, - 7,6,1,0,6,5,6,4,1,3, - 1,0,1,1,2,1,1,3,1,3, - 1,1,1,1,3,9,2,2,3,2, - 5,3,7,0,1,2,2,1,0,1, - 1,1,3,1,2,1,1,2,3,1, - 1,1,3,2,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,1,7,6,3,0,0,1,3, - 1,1,5,6,6,7,7,0,0,1, - 0,1,1,1,2,4,2,2,1,5, - 1,1,1,1,1,1,1,2,1,0, - 1,3,1,1,2,3,2,1,2,2, - 1,0,1,3,3,5,5,4,1,1, - 1,1,0,1,5,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,2,1,0,4,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,3, + 4,4,5,2,5,6,5,0,1,0, + 7,8,0,1,3,1,0,1,3,1, + 7,6,0,7,6,1,0,6,5,6, + 4,1,3,1,0,1,1,2,1,1, + 3,1,3,1,1,1,1,3,9,2, + 2,3,2,5,3,7,0,1,2,2, + 1,0,1,1,1,3,1,2,1,1, + 2,3,1,1,1,3,2,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,1,7,6,3,0, + 0,1,3,1,1,5,6,6,7,7, + 0,0,1,0,1,1,1,2,4,2, + 2,1,5,1,1,1,1,1,1,1, + 2,1,0,1,3,1,1,2,3,2, + 1,2,2,1,0,1,3,3,5,5, + 4,1,1,1,1,0,1,5,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, - 2,2,7,1,0,1,3,1,1,2, - 4,2,4,7,9,5,1,3,1,0, - 1,1,2,4,4,2,1,2,5,5, - 3,3,1,4,3,1,0,1,3,1, - 1,-62,0,0,0,-2,0,0,0,0, + 1,1,1,2,2,7,1,0,1,3, + 1,1,2,4,2,4,7,9,5,1, + 3,1,0,1,1,3,2,3,2,2, + 1,0,1,1,4,5,2,1,2,2, + 2,2,2,2,2,1,1,2,1,1, + 2,4,4,2,1,2,5,5,3,3, + 1,4,3,1,0,1,3,1,1,-62, + 0,0,0,0,-2,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-4,0,0,0,0,0, - 0,-384,0,0,-5,0,0,0,0,0, - -6,-408,0,0,-243,0,-283,0,0,0, - 0,0,0,0,0,0,0,0,0,-442, - -466,0,-113,0,0,-308,0,0,0,0, - 0,0,0,0,0,0,0,0,-64,0, - -293,0,0,-58,0,0,0,0,0,0, - -189,0,0,-16,0,0,0,0,0,0, - 0,0,0,0,-54,0,0,0,0,0, - 0,0,-179,0,0,0,-330,0,0,0, - 0,0,0,0,-53,0,0,0,0,0, - 0,-334,0,0,-65,-273,0,0,0,0, - 0,0,0,-127,0,0,0,0,0,0, - 0,0,0,0,0,-115,0,0,0,0, + 0,0,0,0,0,0,-122,-65,0,-4, + 0,0,0,0,0,-54,0,0,-48,0, + 0,-5,-10,0,-6,0,0,-117,-137,-119, + 0,0,-365,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-313,0,0, + 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,-73,-120,0,0,0,0,0, + 0,0,0,0,-59,0,0,-470,0,0, + 0,0,-217,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-438,0, + 0,0,0,0,0,0,0,0,-267,-430, 0,0,0,0,0,0,0,0,0,0, - -10,0,0,0,0,0,0,0,-119,0, - 0,0,-178,0,0,0,0,-128,0,0, - 0,0,-116,0,0,0,0,0,0,0, + 0,0,0,-262,0,-115,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-264,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-142,0,0,0,0,0,0,-71, - 0,0,0,-349,0,0,0,0,0,0, - 0,0,-289,-244,0,0,0,0,0,-259, - 0,0,0,-131,0,0,0,0,0,0, + 0,0,0,-53,0,-439,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-285, + 0,-129,0,0,-281,0,0,0,0,-455, + 0,0,0,0,0,-373,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,0,0,0,0,0,-129,0,0,0, - 0,0,-148,0,0,0,-274,0,0,0, - -117,-188,0,-190,0,0,0,0,0,0, - -220,0,0,0,0,0,0,0,0,0, + -369,0,0,0,-508,0,0,0,0,0, + 0,-311,0,0,-539,0,0,0,0,-130, + 0,-127,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -598,0,0,0,0,0,0,0,0,0, + 0,0,0,-343,0,0,0,0,-462,0, + 0,0,0,0,0,-131,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -120,0,0,-302,0,-7,0,0,0,-51, - 0,0,0,0,-359,0,0,-59,0,0, - -416,0,0,0,0,0,0,-424,0,0, - -72,0,0,0,-8,0,0,0,0,0, + 0,0,0,-213,0,-463,0,0,0,0, + 0,0,-58,0,0,0,-417,0,0,0, + 0,-7,0,0,0,0,0,-8,0,-529, 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,0, - 0,0,0,0,-9,0,0,0,0,0, - 0,0,0,0,-363,0,0,0,0,0, - 0,0,0,0,0,-539,0,0,0,-137, - 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,-12,0, - -206,0,0,0,0,0,0,0,0,-391, - -135,0,0,0,-13,0,0,0,0,0, + 0,0,0,-261,0,0,0,0,0,0, 0,0,0,0,0,0,0,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,-412,-332,0,0,0,0,0,0, + -144,0,0,-150,0,0,0,0,0,0, + 0,0,0,0,0,0,-9,-421,0,0, + 0,-474,0,0,0,0,0,-138,0,-407, + 0,0,0,0,0,0,0,0,0,-71, + 0,0,0,0,-154,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-106,0, + 0,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,-315,0,0,0, + -64,0,0,0,0,0,0,-347,0,0, + 0,0,-573,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-49, + -11,0,-12,0,0,0,0,0,0,0, + 0,-13,0,0,0,-179,0,0,0,-597, + 0,0,0,0,-334,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-124,0,0, + 0,-284,0,0,0,0,0,0,-51,0, + 0,0,-50,0,-15,0,0,0,-504,0, 0,0,0,0,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,-230,-74,0, - 0,0,0,-454,-257,-446,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,-142,0,0,0,0,-200,0,0,0, + 0,-29,-3,0,0,0,0,-321,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-57, + -30,0,0,0,0,0,0,0,0,0, + 0,-387,0,0,-271,0,0,0,0,-148, + -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,-178,0,0, + 0,0,-121,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-331,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,-60,0,0,0,0, + 0,0,0,0,0,0,-263,0,0,-16, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-222,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,0,0,0,-146,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-31,0,0,0,-328,0,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,-524,0,0, + -390,0,0,0,0,0,-359,0,0,-32, + 0,0,-266,0,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,0,0,0,0,0,0,0,-3, + 0,0,0,0,-145,-318,0,0,0,0, + 0,0,0,-33,0,0,-34,0,0,-264, + -237,0,0,0,0,0,-41,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-15,0,-397,0,0,0,0,-316, - 0,0,-347,0,0,0,0,0,0,0, + 0,0,0,-503,0,0,0,0,0,0, + 0,0,-588,0,0,-423,0,0,-275,0, + 0,0,0,0,-35,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,-221,0,0,0,0, - 0,-28,-130,0,0,0,-277,0,0,0, - -29,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-30, - 0,0,0,0,0,0,0,0,0,-31, - 0,-183,0,0,0,0,0,0,0,-147, - 0,0,0,0,-222,0,0,0,0,0, - -419,-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,0, - 0,0,0,0,-299,0,-32,0,0,0, - 0,-144,0,0,0,-18,0,0,0,-344, - -321,0,0,0,0,0,0,0,0,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,-154,0,0,0,0, - 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,-122,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-41,0,0, - 0,-301,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -34,0,0,0,0,0,0,0,0,0, - -379,0,-49,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,-223,0,0,0,0,0,0, - 0,0,0,0,0,-50,0,0,0,0, + 0,0,0,-449,0,0,0,0,-199,0, + 0,0,0,0,0,-36,0,0,-495,0, 0,0,0,-95,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,-407,0,-57,0, - 0,0,0,-60,0,0,-96,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-298, + 0,-201,0,-37,0,0,0,0,0,0, + 0,0,-38,0,0,-282,0,0,0,0, + -96,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-186,0,0,0,0,0,0,0,-97, + 0,0,0,0,0,0,0,0,-362,0, + -40,0,0,0,0,0,-404,0,0,-55, + 0,0,-497,0,0,0,0,-97,0,0, + 0,0,-56,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-355, + 0,0,0,-425,0,0,0,0,0,-531, + 0,0,0,0,-98,0,0,0,0,-415, 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,-445,0,0,0, + 0,0,0,0,0,0,-532,0,0,0, + 0,-99,0,0,0,0,-448,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-500,0,-36,0,0,0,-196,-107, - 0,0,-98,0,0,0,-339,0,0,0, + 0,0,0,0,0,0,0,0,0,-459, + 0,-67,0,0,0,0,0,-464,0,0, + 0,0,0,-288,0,0,0,0,-100,0, + 0,0,0,-452,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-37,0,0,0,0, - 0,0,0,0,0,-530,0,-200,0,0, - 0,0,-108,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,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-38,-138,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,-480,0,0,0,0,0,0,0,0, - 0,-531,0,-205,0,0,0,0,0,0, - 0,-101,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,0,0,0,-231,0,0,0, - 0,-114,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,-55,0,0, - 0,0,0,0,0,0,0,-149,0,-256, - 0,0,0,0,-153,0,0,-103,0,0, - 0,-375,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -198,0,-269,0,0,0,0,-280,0,0, - -104,0,0,0,-56,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -378,0,0,-207,0,-270,0,0,0,0, - -514,0,0,-213,0,0,0,-66,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-235,0,-272,0, - 0,0,0,-242,0,0,-533,0,0,0, - -227,0,0,0,0,0,0,0,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,0,0,-249,0,0,-358, - 0,0,0,-333,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-67,0,-69,0,0,0,-382,0, - 0,0,-70,0,0,0,0,0,0,0, - 0,0,0,0,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,-437,0,0,0,0,-383,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-346, - 0,0,0,0,0,0,0,0,0,-367, - 0,-109,0,0,0,-457,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-305,0,0,0,0, - 0,0,0,0,-234,0,0,0,-439,0, - 0,0,-110,-106,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-406,0,0,0, - 0,0,0,0,0,0,-288,0,-267,0, - 0,-202,-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, - 0,0,-357,0,0,-111,0,-91,0,0, - 0,-250,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, - -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,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,-388,0,0,0,0, - 0,0,-89,0,0,0,-112,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-132,0,0,0,0, - 0,-90,0,0,0,-139,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-140,0,0,0,0,0, - -398,0,0,0,0,0,0,0,0,0, - 0,0,0,-82,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,-105,-233,0,0,0,-150,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-281,0,0,-337,0,0,0, - -268,0,0,0,0,0,0,0,-380,0, - 0,0,-155,0,-252,-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,0,-241,0,0,0,0,-473,0, - 0,0,-156,0,0,0,-540,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -212,0,-377,0,0,0,-157,0,0,0, - 0,0,0,0,-286,-84,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,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,0,0,0,0, - 0,-237,0,0,0,0,0,0,0,0, - 0,0,0,0,-124,-143,0,0,0,-271, - 0,0,-307,0,0,0,0,0,0,0, - 0,0,0,0,0,-423,-192,0,0,0, - 0,0,0,-300,-52,0,0,0,-245,0, - 0,-470,0,-47,0,0,0,0,0,0, - 0,0,0,0,-158,0,0,-296,-240,0, - 0,0,0,0,0,-159,-467,0,0,0, - 0,0,0,0,0,0,0,0,0,-247, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-248,0,0,0,0,0,-61,0, - -160,0,0,-161,0,0,0,-345,0,0, - 0,-162,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-356,-297,-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,0,0,0,-315,0,0,0,0, - -163,-211,0,0,0,0,0,0,0,0, - -164,0,0,-165,0,-312,0,0,0,0, - 0,0,0,0,0,0,0,0,-166,0, - 0,0,0,0,-167,0,0,-325,0,-86, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-168,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,-435, - 0,0,0,0,-152,0,0,0,0,0, - 0,0,0,0,0,0,0,-275,0,0, - 0,-365,0,-169,-170,0,0,-146,-292,0, - 0,0,-306,0,0,0,0,-455,0,0, - -310,0,0,-313,0,-445,0,0,0,0, - 0,0,0,0,0,-171,0,0,-353,-239, - 0,0,0,0,-324,-172,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-361, - 0,-173,0,0,0,0,0,0,0,0, - 0,0,0,-390,0,-311,-436,0,0,0, - -174,0,0,0,0,0,0,0,0,0, - 0,0,0,-532,0,0,0,0,0,0, - 0,0,0,0,0,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, - 0,0,0,0,-387,-261,0,0,-145,0, - -175,0,0,0,0,0,-322,0,0,0, - 0,0,-176,0,0,0,-121,0,0,-484, - 0,0,-177,0,0,0,-404,0,0,0, - 0,-327,0,0,0,-180,0,0,0,0, - 0,0,0,0,0,0,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,-364,0,0,-118,-17,-181,-328,0, - 0,0,0,-182,-151,0,0,0,0,0, - 0,0,0,0,-185,0,0,-464,0,0, - -193,0,0,0,0,0,0,0,0,0, - 0,-394,-187,0,0,0,0,0,-194,0, - 0,-197,0,0,0,0,0,0,0,0, - -335,0,0,0,0,-487,0,0,0,0, - 0,-448,0,-527,0,0,0,0,0,0, - 0,0,0,-208,0,-338,0,0,0,0, - -354,0,0,0,0,0,0,0,0,0, - 0,0,0,-489,0,0,0,0,0,0, - 0,-341,0,0,0,0,0,0,0,0, - 0,-14,0,-218,-219,0,0,-323,0,0, - 0,-228,0,0,0,0,0,0,0,0, - 0,-506,0,0,0,0,0,-236,-401,0, - 0,0,0,0,0,0,0,0,0,-343, - 0,-214,0,0,0,0,-238,0,-246,-420, - 0,0,0,0,0,0,0,0,0,-520, - 0,0,-360,0,0,0,0,-392,0,0, - 0,0,0,0,0,0,0,-255,0,0, - 0,0,0,-260,-262,-374,0,0,0,0, - 0,0,0,0,0,0,0,-522,0,0, - 0,0,0,-459,0,-369,0,0,0,0, - 0,0,0,0,0,-505,0,0,-263,0, - 0,-209,0,0,0,-278,0,0,0,0, - 0,0,0,0,0,-279,0,0,0,-285, - 0,-290,0,0,0,0,0,-319,0,0, - 0,0,0,-294,0,-295,0,-229,0,0, - 0,0,0,-426,0,0,0,0,0,0, - 0,0,0,-524,0,0,0,0,0,0, - 0,0,0,0,0,0,-136,-303,0,-393, - 0,-1,0,0,-429,0,0,0,0,0, - -526,0,0,-123,0,-468,-134,0,-418,-376, - 0,0,0,0,-422,0,-431,0,0,0, - 0,0,-125,0,-474,0,0,0,-304,0, - 0,0,0,0,0,0,-414,0,0,0, - 0,0,-336,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-415,0, - -362,-469,0,0,-541,0,0,0,0,0, - 0,0,0,0,0,0,-309,-427,0,0, - 0,0,0,-317,0,0,0,0,-434,0, - 0,0,0,-318,0,0,0,0,0,0, - 0,-329,-340,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-546,0,-348,0,0,0,0,-482, + 0,0,0,0,0,-477,0,0,-69,0, -472,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-476,0,-350,-370,0,0, + -289,0,0,0,0,-101,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,-558,-473,0,-70,0,0,0,0, + 0,-481,0,0,0,0,0,-329,0,0, + 0,0,-102,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,-197, + 0,0,-110,0,0,0,0,0,-506,0, + 0,0,0,0,-341,0,0,0,0,-103, + 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,-211,0,0,0, + 0,0,0,0,0,-112,0,0,0,0, + 0,-371,0,0,0,0,-104,0,0,0, + 0,-132,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-370,-485,0,0,0,0,0, + 0,0,-517,0,0,0,0,0,-203,0, + 0,0,0,-224,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,-113,0,-322,0,0,0,-526, + 0,0,-402,0,0,-380,0,0,0,0, + -248,0,0,0,0,-140,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -141,-505,0,0,0,0,0,0,0,0, + 0,0,0,0,-14,0,-118,0,-155,0, + -432,0,0,0,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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-286,-107,0,0,0,-156,-433, + -335,0,-411,0,0,0,-157,0,0,0, + -194,0,-231,0,0,0,0,0,-437,0, + 0,0,-482,-412,0,0,0,0,0,0, + 0,0,-250,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-108, + 0,0,-114,0,0,0,-158,0,0,-274, + 0,0,0,0,0,0,-159,0,0,0, + 0,0,0,0,0,0,-589,0,-160,0, + 0,-356,0,0,0,0,0,0,-251,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,0,0,0,0,0,-566, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -161,0,0,0,-162,0,-163,0,-164,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,0,0,0,0, + 0,-165,0,0,-392,0,0,0,0,0, + -216,0,0,0,-166,0,0,0,-43,0, + -167,0,-442,0,-325,0,0,0,0,0, + -494,0,0,0,0,0,0,0,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,0,0,0,0,-168,-149,0, + 0,-72,0,0,0,0,0,0,0,0, + 0,0,0,0,-446,0,0,0,-352,0, + 0,-465,-169,0,0,0,0,0,0,0, + -170,0,0,0,0,0,-254,0,0,0, + 0,-153,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-209,0,-152,0,0,0, + 0,0,0,0,0,0,0,0,0,-466, + -272,0,-171,0,0,0,-596,0,-358,0, + -310,0,-172,0,0,0,-173,0,0,0, + 0,0,-255,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,0,-147,0,0,0,-223,0,0,0, + 0,0,0,-276,0,0,0,0,-174,0, + -357,-323,-175,-512,-324,0,0,0,0,0, + 0,-376,-391,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,0,0,0,0,-176,0,-395,0, + 0,0,-528,0,0,0,0,0,0,-283, + -177,0,0,0,-180,0,-413,-574,0,0, + 0,0,-184,0,0,0,-394,-572,-185,0, + 0,0,0,0,-257,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-290,0,0,-435,0,0,0,0,0, + 0,0,0,0,0,-326,-381,0,-44,0, + 0,0,0,0,-186,-330,-187,0,-123,0, + 0,0,-420,0,-188,0,0,0,0,0, + -258,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-189,0,0, + 0,0,-294,0,0,-342,-363,0,0,0, + 0,0,-414,0,-45,0,-125,0,-190,0, + -191,0,-192,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-354,0,0,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,-292,0,0,0,0,0, + 0,-193,0,-535,-367,-196,-346,-204,-134,0, + 0,0,0,0,-205,0,0,0,-208,0, + 0,0,-542,0,0,0,-397,0,0,0, + 0,0,-591,0,0,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,0,0,0,0,0,0,0, + 0,-219,0,0,0,-229,0,-293,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,0,0,-230,0, + 0,-527,0,0,0,-238,0,0,-340,0, + 0,-405,0,0,0,0,-559,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,-277,0,0,0,-424,0,0, + -379,0,0,-501,-385,0,0,-61,-393,0, + -279,-586,0,0,-220,0,0,0,-416,0, + 0,0,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,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,0,0,0,0,0,-327,0, + -602,0,0,0,0,0,-287,0,0,-298, + 0,0,-299,-300,0,0,0,0,0,0, + 0,0,-301,-302,-540,-350,0,-441,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-232,0,-538,-303,0,-585, + 0,0,0,0,0,0,-351,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,-304,0,-305, + 0,-306,0,0,0,0,0,0,-399,0, + 0,-233,-401,0,-418,-427,-451,0,-307,0, + 0,0,-308,0,0,0,-309,-18,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,0,0,0,0,0, + -476,-353,0,-280,-1,0,0,0,0,0, + 0,0,-314,0,-316,-317,0,0,-480,0, + 0,0,0,0,-489,0,-553,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,-492,-332,-554,0,0,0,0,0, + 0,-382,0,-247,0,0,0,0,-422,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -434,0,-534,0,-537,0,0,0,0,0, + -556,-560,-333,-344,-569,0,0,-561,0,0, + 0,0,0,0,-348,-349,0,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,-360,-361,-366, + 0,-374,0,0,0,-245,0,0,0,0, + -450,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-375,-386,-406,0,-577,-372,0,-339, + 0,0,-408,0,0,-428,-431,-444,-457,-581, + 0,-458,0,-460,-461,-467,-469,-475,0,-484, + 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,0,0, + 0,0,0,-530,0,0,-246,0,0,0, + 0,-533,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-483,-490,-491,0,-514,-516, + -518,0,-594,-601,-519,-520,-521,-523,-541,-543, + -544,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,-546,-551,0,0,0,-242,0, + 0,0,0,-536,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-555,-562,-570, + -579,-587,-592,0,-603,0,0,0,0,0, + 0,0,0,0,-565,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, + 0,0,0,0,0,-567,-571,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, + -243,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-456,0,0, + 0,0,0,0,0,0,0,0,0,0, + -244,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-575,0,0, + 0,0,-136,0,0,-525,-576,0,-182,-74, + 0,0,-105,0,0,0,0,0,0,-595, + 0,0,0,0,-338,0,-234,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-235,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,-600,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,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,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -84,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,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, + 0,0,0,0,-239,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-240,0,0,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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-278,0,0,0,0, + 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,-337,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-364, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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,0,-198, + 0,0,0,0,0,-295,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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,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,-388,-47, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-593,0,-265,-225, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,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,0,0,0,0,0,0, + 0,0,0,0,0,0,-493,-128,0,0, + 0,0,0,0,-143,0,0,0,0,0, + 0,0,0,0,0,-568,0,0,0,0, + 0,0,0,0,0,-151,0,0,0,0, + 0,0,0,0,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, + -500,0,0,0,0,0,0,0,0,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,-227, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-590,0,0, + 0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,-496,0,0, + 0,0,0,-509,0,0,0,0,0,0, + 0,-384,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,0,0,0,0,-522, + -270,0,0,0,0,0,-410,0,0,-228, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-545,0,-550,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,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-547,0,0,0,0,0,0, + 0,-336,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -479,0,0,0,0,0,-373,0,0,0, - 0,0,-386,0,0,0,0,0,-477,0, - 0,0,0,0,0,0,0,0,-475,0, - -399,0,0,0,0,0,0,0,-79,0, 0,0,-400,0,0,0,0,0,0,0, + 0,0,0,0,-259,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-80,0,0,0,-402,0,0, + 0,0,0,0,0,-564,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,-81,0, - 0,0,-403,0,0,0,0,0,0,0, + 0,0,0,0,-409,0,0,0,0,0, + -345,0,0,0,0,0,0,0,0,0, + 0,0,-563,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-578,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-409,0,-21,0,0,0,-411,0,0, + -419,0,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,-17,0, + 0,0,0,0,-46,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-580, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-22,0,0,0, - -417,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-23, - 0,0,0,-425,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-24,0,0,0,-432,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-25,0,0,0,-433, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-26,0, - 0,0,-456,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-27,0,0,0,-458,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-63,0,0,0,-460,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-75,0,0, - 0,-461,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -76,0,0,0,-462,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-582,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-133,0,0,0,-463,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,-203,0,0,0, - -538,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-381, + 0,0,0,0,0,-468,0,0,0,0, + 0,-584,-195,0,0,0,0,0,0,-471, 0,0,0,0,0,0,0,0,0,0, - 0,0,-501,-447,0,0,0,0,0,0, - 0,0,0,0,0,0,-19,0,0,0, - -495,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-368,-478, - -465,-215,0,-48,-73,0,-528,0,0,0, - 0,0,-396,0,0,-483,0,-485,-216,0, - -486,0,0,0,0,0,0,0,0,-496, - 0,0,0,0,0,0,-503,-544,-498,-253, - 0,0,0,0,-488,0,0,0,0,0, - 0,0,0,0,-287,0,0,0,0,0, - 0,0,-523,0,0,0,0,0,0,0, - -232,0,0,0,0,0,0,0,0,0, - -502,0,0,0,0,-444,0,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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-599,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-583,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -604,0,0,0,0,0,0,0,0,0, + 0,-486,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-202, + 0,0,0,0,0,0,0,0,0,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,0,0,0,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,0,0,0,0,0,0,0, + 0,0,0,0,-403,0,0,0,0,0, + 0,0,0,0,0,0,0,-498,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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,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, + 0,0,0,0,0,0,0,0,0,0, + 0,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,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,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,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,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,0,-63, + 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,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,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,-214,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-19,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-426,-499,0,0, + 0,0,0,0,0,0,0,0,-215,-454, 0,0,0,0,0,0,0,0,-507,0, - 0,0,-493,-43,-366,0,-44,0,0,-536, - 0,0,-509,0,0,0,0,0,0,-511, - -217,-497,-543,0,0,0,0,0,0,0, - -504,0,0,0,0,0,0,0,0,0, - 0,-126,0,0,0,0,0,-519,0,0, - 0,0,0,-512,0,0,-405,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-521,-385,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,-529, - 0,0,0,0,0,-265,0,0,0,0, - 0,0,0,0,0,0,0,0,-534,-199, - -513,-517,0,0,0,-284,-545,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -518,-537,0,0,0,0,0,0,-371,0, - 0,-355,0,0,0,0,0,0,0,0, - 0,0,0,0,-395,0,0,0,0,0, - 0,0,0,0,0,0,-254,-331,0,0, - 0,0,0,0,0,0,0,0,-314,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-542,0,0,0,0,0, - 0,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,-492,0,0,0, - 0,0,0,0,0,0,-430,0,0,0, - 0,0,0,0,0,0,-291,-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,0,0,0,0,0,-438,0,0, - 0,0,-443,0,0,0,0,0,0,0, - 0,0,0,0,-450,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-516,0, - 0,0,0,-195,0,0,0,0,0,0, - 0,0,-372,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-224,0, - 0,0,0,0,-266,0,0,0,0,0, - 0,0,0,0,0,-282,0,0,0,0, - 0,0,0,0,-481,0,0,0,0,0, - 0,0,0,0,0,0,-342,0,0,0, + 0,0,-502,0,0,0,0,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,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-351,0,0,0, - -389,0,0,0,0,0,0,0,0,0, - 0,-410,0,0,0,0,0,0,-413,0, - 0,0,0,0,0,0,-428,0,0,0, - 0,0,0,0,0,0,0,0,-525,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,-441,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,0,0,0,-510,0,0,0,0,0, - 0,0,-42,0,0,0,0,0,0,0, - 0,0,-451,0,-68,-45,0,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,0,0,0,0,0,0,-184, 0,0,0,0,0,0,0,0,0,0, - 0,0,-191,0,0,0,-201,0,0,0, - 0,0,0,-210,0,0,0,-258,0,0, - 0,-46,0,0,0,0,-490,0,0,0, + 0,-510,0,0,0,0,0,0,0,0, + 0,-126,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-42,0,0, + 0,0,0,-68,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-491, - -494,0,0,0,0,-204,0,0,0,0, - 0,0,0,0,-452,0,0,0,0,0, - -453,0,0,0,0,0,0,-499,0,0, - 0,0,-535,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,0,0, + 0,0,0,0,0,0,0,-319,0,0, + 0,0,0,0,0,0,0,0,0,0, + -236,0,0,0,0,0,-398,0,0,0, + 0,0,0,0,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,0,0,0,0,0,0,0,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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-453,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-479, + 0,0,0,0,0,0,0,0,0,-548, + 0,0,0,0,0,0,0,0,0,0, + -296,0,0,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,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,-383,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-549,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-312,0,0,0, + 0,0,0,-511,0,0,0,0,0,0, + -557,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-552,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -538,13 +679,7 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,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; @@ -554,551 +689,693 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface BaseAction { public final static char baseAction[] = { - 176,4,137,82,82,33,33,68,68,39, - 39,43,43,202,1,1,16,16,16,16, + 191,5,154,94,94,30,30,81,81,39, + 39,42,42,218,1,1,16,16,16,16, 16,16,16,17,17,17,15,11,11,6, - 6,6,6,6,6,2,66,66,5,5, - 12,12,45,45,138,138,139,58,58,44, + 6,6,6,6,6,2,75,75,4,4, + 12,12,44,44,155,155,156,67,67,43, 18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18, - 140,140,140,114,114,19,19,19,19,19, + 157,157,157,131,131,19,19,19,19,19, 19,19,19,19,19,19,19,19,20,20, - 177,177,178,178,179,143,143,144,144,141, - 141,145,142,142,21,21,22,22,24,24, - 24,25,25,25,25,26,26,26,27,27, - 27,28,28,28,28,28,29,29,29,31, - 31,32,32,34,34,36,36,37,37,38, - 38,42,42,41,41,41,41,41,41,41, - 41,41,41,41,41,41,40,30,146,146, - 96,96,180,180,91,203,203,69,69,69, - 69,69,69,69,69,69,70,70,70,67, - 67,57,57,181,181,71,71,71,102,102, - 182,182,72,72,72,72,183,183,73,73, - 73,73,73,74,74,83,83,83,83,83, - 83,83,83,51,51,51,51,51,115,115, - 113,113,52,184,23,23,23,23,23,49, - 49,86,86,86,86,86,153,153,148,148, - 148,148,148,149,149,149,150,150,150,151, - 151,151,152,152,152,87,87,87,87,87, - 88,88,88,13,14,14,14,14,14,14, - 14,14,14,14,14,97,119,119,119,119, - 119,119,117,117,117,154,155,155,118,118, - 185,157,157,156,156,121,121,103,80,80, - 122,54,48,158,158,55,53,85,85,159, - 159,147,147,123,124,124,125,77,77,160, - 160,64,64,64,61,61,60,65,65,76, - 76,59,59,59,50,89,89,99,98,98, - 63,63,62,62,56,56,46,100,100,100, - 92,92,92,93,93,94,94,94,95,95, - 104,104,104,106,106,105,105,204,204,90, - 90,187,187,187,187,187,127,47,47,162, - 186,186,128,128,129,129,129,130,164,188, - 188,35,35,116,131,131,131,131,190,108, - 107,107,120,120,120,165,166,166,166,166, - 166,166,166,166,166,166,166,192,192,189, - 189,191,191,167,168,168,168,168,169,193, - 110,109,109,194,194,170,170,170,170,101, - 101,101,195,195,8,8,9,196,196,197, - 171,161,161,172,172,173,174,174,7,7, - 10,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,78,81,81,175,175,133,133, - 134,134,134,134,134,134,3,135,135,132, - 132,111,111,84,79,75,75,163,163,112, - 112,199,199,199,136,136,126,126,200,200, - 176,176,1119,35,2498,2475,1791,2706,27,30, - 31,1065,1233,26,28,2456,263,25,23,50, - 1282,106,76,77,108,73,1291,1320,1310,1424, - 1377,1587,1777,1501,1716,71,1685,275,1775,1826, - 143,1592,1882,158,144,1631,2950,1892,35,1049, - 32,4458,4566,27,30,31,1065,1233,342,28, - 2450,587,4081,1280,2735,233,1869,35,1049,32, - 4782,4566,27,30,31,1065,1233,342,28,1547, - 354,666,3378,346,587,2115,2446,34,236,231, - 232,2275,1148,535,1504,35,1049,32,1330,276, - 41,30,31,1065,1233,1618,2799,322,2544,324, - 182,317,1948,587,35,3305,538,1631,243,246, - 249,252,1457,355,2898,1088,322,2544,324,743, - 317,1948,666,921,1857,1312,1476,3584,501,347, - 1776,1020,352,2898,327,35,281,1941,565,4803, - 3186,739,3127,3504,3523,4242,2320,35,1049,32, - 2735,1386,27,30,31,1065,1233,26,28,1039, - 263,25,23,50,1282,106,76,77,108,346, - 1291,1320,1310,1424,1377,1587,823,1501,1716,3442, - 1685,155,1775,1826,143,70,2744,521,144,1225, - 653,1330,2799,587,35,2446,3304,502,674,35, - 2113,392,522,2320,35,1049,32,2735,1386,27, - 30,31,1065,1233,26,28,1039,263,25,23, - 50,1282,106,76,77,108,346,1291,1320,1310, - 1424,1377,1587,49,1501,1716,71,1685,322,1775, - 1826,143,1998,3211,521,144,3109,291,1005,2799, - 3689,3442,233,327,35,281,2727,517,4807,522, - 1217,35,1049,32,2685,3195,27,30,31,1065, - 1233,57,28,2619,1446,245,231,232,3146,4790, - 1621,3188,1240,3594,2320,35,1049,32,2735,1386, - 27,30,31,1065,1233,26,28,1039,263,25, - 23,50,1282,106,76,77,108,346,1291,1320, - 1310,1424,1377,1587,517,1501,1716,1088,1685,408, - 1775,1826,143,1352,3205,521,144,587,35,284, - 2799,1446,155,2979,155,3194,4790,3458,3188,4171, - 522,2528,35,1049,32,2735,1386,27,30,31, - 1065,1233,26,28,1039,263,25,23,50,1282, - 106,76,77,108,346,1291,1320,1310,1424,1377, - 1587,1611,1501,1716,135,1685,1766,1775,1826,143, - 1603,3205,521,144,881,587,3584,2799,1618,3422, - 335,587,35,2113,392,517,2236,522,1356,464, - 61,1381,35,1049,32,1853,3195,27,30,31, - 1065,1233,56,28,1642,88,3229,94,102,3188, - 1322,4004,2663,35,1049,32,435,1386,27,30, - 31,1065,1233,26,28,1039,263,25,23,50, - 1282,106,76,77,108,2086,1291,1320,1310,1424, - 1377,1587,518,1501,1716,2619,1685,425,1775,1826, - 143,42,3264,382,144,3661,2389,35,1049,32, - 1456,1386,27,30,31,1065,1233,26,28,1039, - 263,25,23,50,1282,106,76,77,108,1377, - 1291,1320,1310,1424,1377,1587,1697,1501,1716,2229, - 1685,2125,1775,1826,143,824,292,382,144,3661, - 1906,2837,35,1049,32,2230,1386,27,30,31, - 1065,1233,26,28,1039,263,25,23,50,1282, - 106,76,77,108,4138,1291,1320,1310,1424,1377, - 1587,60,1501,1716,1611,1685,356,1775,3232,164, - 389,383,1802,2447,3127,35,1049,32,4641,1386, - 27,30,31,1065,1233,26,28,1039,263,25, - 23,50,1282,106,76,77,108,447,1291,1320, - 1310,1424,1377,1587,315,1501,1716,582,1685,69, - 1775,3232,164,330,390,383,1802,89,1611,49, - 102,4139,1689,1200,2762,752,2595,35,1049,32, - 4107,1386,27,30,31,1065,1233,26,28,1039, - 263,25,23,50,1282,106,76,77,108,156, - 1291,1320,1310,1424,1377,1587,359,1501,1716,1426, - 1685,2029,1775,1826,143,2972,536,382,144,3661, - 2892,35,1049,32,3105,1386,27,30,31,1065, - 1233,26,28,1039,263,25,23,50,1282,106, - 76,77,108,393,1291,1320,1310,1424,1377,1587, - 93,1501,1716,2246,1685,2075,1775,1826,143,4431, - 2315,158,144,3127,35,1049,32,1943,1386,27, - 30,31,1065,1233,26,28,1039,263,25,23, - 50,1282,106,76,77,108,527,1291,1320,1310, - 1424,1377,1587,434,1501,1716,56,1685,3515,1775, - 3232,164,2249,1088,380,383,1802,2892,35,1049, - 32,413,1386,27,30,31,1065,1233,26,28, - 1039,263,25,23,50,1282,106,76,77,108, - 1449,1291,1320,1310,1424,1377,1587,3130,1501,1716, - 64,1685,2038,1775,1826,143,3378,4790,376,144, - 1718,35,1049,32,427,56,40,30,31,1065, - 1233,1906,2892,35,1049,32,565,1386,27,30, - 31,1065,1233,26,28,1039,263,25,23,50, - 1282,106,76,77,108,463,1291,1320,1310,1424, - 1377,1587,3205,1501,1716,1800,1685,2288,1775,1826, - 143,336,1088,376,144,332,2156,35,2113,392, - 2437,2892,35,1049,32,2323,1386,27,30,31, - 1065,1233,26,28,1039,263,25,23,50,1282, - 106,76,77,108,375,1291,1320,1310,1424,1377, - 1587,49,1501,1716,330,1685,1088,1775,1826,143, - 1998,675,376,144,2461,35,1049,32,3543,1386, - 27,30,31,1065,1233,26,28,1039,263,25, - 23,50,1282,106,76,77,108,1229,1291,1320, - 1310,1424,1377,1587,4027,1501,1716,358,1685,374, - 1775,1826,143,331,338,142,144,536,2892,35, - 1049,32,1611,1386,27,30,31,1065,1233,26, - 28,1039,263,25,23,50,1282,106,76,77, - 108,494,1291,1320,1310,1424,1377,1587,51,1501, - 1716,1611,1685,49,1775,1826,143,696,372,159, - 144,2892,35,1049,32,3266,1386,27,30,31, - 1065,1233,26,28,1039,263,25,23,50,1282, - 106,76,77,108,56,1291,1320,1310,1424,1377, - 1587,1511,1501,1716,582,1685,49,1775,1826,143, - 753,451,155,144,2892,35,1049,32,379,1386, - 27,30,31,1065,1233,26,28,1039,263,25, - 23,50,1282,106,76,77,108,1243,1291,1320, - 1310,1424,1377,1587,1900,1501,1716,1611,1685,49, - 1775,1826,143,834,1618,154,144,2892,35,1049, - 32,882,1386,27,30,31,1065,1233,26,28, - 1039,263,25,23,50,1282,106,76,77,108, - 56,1291,1320,1310,1424,1377,1587,24,1501,1716, - 582,1685,49,1775,1826,143,4549,3223,153,144, - 2892,35,1049,32,379,1386,27,30,31,1065, - 1233,26,28,1039,263,25,23,50,1282,106, - 76,77,108,377,1291,1320,1310,1424,1377,1587, - 3241,1501,1716,1906,1685,400,1775,1826,143,1088, - 1618,152,144,2892,35,1049,32,1611,1386,27, - 30,31,1065,1233,26,28,1039,263,25,23, - 50,1282,106,76,77,108,1409,1291,1320,1310, - 1424,1377,1587,69,1501,1716,1611,1685,49,1775, - 1826,143,3010,1618,151,144,2892,35,1049,32, - 3406,1386,27,30,31,1065,1233,26,28,1039, - 263,25,23,50,1282,106,76,77,108,3589, - 1291,1320,1310,1424,1377,1587,68,1501,1716,582, - 1685,329,1775,1826,143,1105,1877,150,144,2892, - 35,1049,32,530,1386,27,30,31,1065,1233, - 26,28,1039,263,25,23,50,1282,106,76, - 77,108,1611,1291,1320,1310,1424,1377,1587,326, - 1501,1716,1611,1685,49,1775,1826,143,585,536, - 149,144,2892,35,1049,32,1620,1386,27,30, - 31,1065,1233,26,28,1039,263,25,23,50, - 1282,106,76,77,108,4181,1291,1320,1310,1424, - 1377,1587,357,1501,1716,582,1685,49,1775,1826, - 143,676,1618,148,144,2892,35,1049,32,529, - 1386,27,30,31,1065,1233,26,28,1039,263, - 25,23,50,1282,106,76,77,108,416,1291, - 1320,1310,1424,1377,1587,53,1501,1716,1618,1685, - 49,1775,1826,143,1375,1618,147,144,2892,35, - 1049,32,1706,1386,27,30,31,1065,1233,26, - 28,1039,263,25,23,50,1282,106,76,77, - 108,87,1291,1320,1310,1424,1377,1587,52,1501, - 1716,1618,1685,49,1775,1826,143,2876,1988,146, - 144,2892,35,1049,32,1447,1386,27,30,31, - 1065,1233,26,28,1039,263,25,23,50,1282, - 106,76,77,108,353,1291,1320,1310,1424,1377, - 1587,2437,1501,1716,1618,1685,49,1775,1826,143, - 2994,2762,145,144,2892,35,1049,32,1174,1386, - 27,30,31,1065,1233,26,28,1039,263,25, - 23,50,1282,106,76,77,108,90,1291,1320, - 1310,1424,1377,1587,327,1501,1716,1618,1685,49, - 1775,1826,143,2856,1618,140,144,3011,35,1049, - 32,2448,1386,27,30,31,1065,1233,26,28, - 1039,263,25,23,50,1282,106,76,77,108, - 2072,1291,1320,1310,1424,1377,1587,2287,1501,1716, - 2236,1685,49,1775,1826,143,3448,1618,189,144, - 3127,35,1049,32,1088,1386,27,30,31,1065, - 1233,26,28,1039,263,25,23,50,1282,106, - 76,77,108,527,1291,1320,1310,1424,1377,1587, - 67,1501,1716,2563,1685,1324,1775,3232,164,3127, - 35,1049,32,1445,1386,27,30,31,1065,1233, - 26,28,1039,263,25,23,50,1282,106,76, - 77,108,1597,1291,1320,1310,1424,1377,1587,1986, - 1501,1716,451,1685,3254,1775,3232,164,587,35, - 2551,2289,587,35,2113,392,97,3127,35,1049, - 32,296,1386,27,30,31,1065,1233,26,28, - 1039,263,25,23,50,1282,106,76,77,108, - 2556,1291,1320,1310,1424,1377,1587,456,1501,1716, - 1795,1685,160,1775,3232,164,3182,35,1049,32, - 426,1386,27,30,31,1065,1233,26,28,1039, - 263,25,23,50,1282,106,76,77,108,406, - 1291,1320,1310,1424,1377,1587,155,1501,1716,410, - 1685,4587,1775,3232,164,587,35,2446,278,587, - 35,2113,392,246,3127,35,1049,32,429,1386, - 27,30,31,1065,1233,26,28,1039,263,25, - 23,50,1282,106,76,77,108,1795,1291,1320, - 1310,1424,1377,1587,438,1501,1716,49,1685,69, - 3032,657,1864,3127,35,1049,32,4145,1386,27, - 30,31,1065,1233,26,28,1039,263,25,23, - 50,1282,106,76,77,108,302,1291,1320,1310, - 1424,1377,1587,752,1501,1716,590,3006,3127,35, - 1049,32,1618,1386,27,30,31,1065,1233,26, - 28,1039,263,25,23,50,1282,106,76,77, - 108,1618,1291,1320,1310,1424,1377,1587,1330,1501, - 2974,3127,35,1049,32,66,1386,27,30,31, - 1065,1233,26,28,1039,263,25,23,50,1282, - 106,76,77,108,65,1291,1320,1310,1424,1377, - 1587,288,2975,3127,35,1049,32,2991,1386,27, - 30,31,1065,1233,26,28,1039,263,25,23, - 50,1282,106,76,77,108,1951,1291,1320,1310, - 1424,1377,2889,3127,35,1049,32,848,1386,27, - 30,31,1065,1233,26,28,1039,263,25,23, - 50,1282,106,76,77,108,2687,1291,1320,1310, - 1424,2895,3127,35,1049,32,1878,1386,27,30, - 31,1065,1233,26,28,1039,263,25,23,50, - 1282,106,76,77,108,3327,1291,1320,1310,1424, - 2923,1522,35,1049,32,4782,4637,27,30,31, - 1065,1233,342,28,3127,35,1049,32,1457,1386, - 27,30,31,1065,1233,26,28,1039,263,25, - 23,50,1282,106,76,77,108,442,1291,1320, - 1310,2801,49,2375,35,279,1200,1785,35,1049, - 32,3205,4814,27,30,31,1065,1233,59,28, - 335,322,2544,324,1964,317,1948,1718,35,1049, - 32,2694,156,2200,30,31,1065,1233,316,327, - 35,457,3016,408,4652,1618,3127,35,1049,32, - 2808,1386,27,30,31,1065,1233,26,28,1039, - 263,25,23,50,1282,106,76,77,108,2968, - 1291,1320,1310,2804,1101,35,2446,278,64,587, - 35,2113,392,580,309,313,948,2347,35,1049, - 32,3559,4814,27,30,31,1065,1233,26,28, - 328,1336,515,1718,35,1049,32,1015,2726,2277, - 30,31,1065,1233,437,1618,3127,35,1049,32, - 3824,1386,27,30,31,1065,1233,26,28,1039, - 263,25,23,50,1282,106,76,77,108,3046, - 1291,1320,1310,2812,3127,35,1049,32,3189,1386, - 27,30,31,1065,1233,26,28,1039,263,25, - 23,50,1282,106,76,77,108,1330,1291,1320, - 1310,2861,2067,35,1049,32,4326,4566,27,30, - 31,1065,1233,342,28,241,2216,35,2113,392, - 2453,35,282,1401,35,3647,32,4782,4637,27, - 30,31,1065,1233,342,28,1795,587,35,2113, - 392,450,3772,3778,1312,3237,35,2113,392,2444, - 748,49,587,4222,587,35,2113,392,238,263, - 1998,2292,322,2544,324,1234,317,1948,1618,2411, - 35,279,275,3205,2727,222,1378,2560,355,3436, - 275,1200,335,322,2544,324,4389,317,1948,49, - 587,3454,2446,74,347,1776,1020,352,1998,603, - 814,55,3426,1101,35,2446,3456,156,233,2151, - 2547,846,2808,3507,932,3422,201,4130,1956,35, - 1049,32,1311,4637,27,30,31,1065,1233,342, - 28,236,231,232,277,4155,2315,1618,3127,35, - 1049,32,276,1386,27,30,31,1065,1233,26, - 28,1039,263,25,23,50,1282,106,76,77, - 85,243,246,249,252,1457,1476,3584,3205,884, - 54,1548,757,35,2113,392,921,336,322,2544, - 324,1591,320,1948,1679,355,2425,44,3264,369, - 421,423,3625,3186,739,3127,3504,3523,4242,1278, - 631,347,1776,1020,352,2562,653,275,1618,345, - 3127,35,1049,32,2190,1386,27,30,31,1065, - 1233,26,28,1039,263,25,23,50,1282,106, - 76,77,108,2643,1291,1320,2871,3127,35,1049, - 32,325,1386,27,30,31,1065,1233,26,28, - 1039,263,25,23,50,1282,106,76,77,108, - 259,1291,1320,2874,542,1785,35,1049,32,3349, - 4814,27,30,31,1065,1233,58,28,587,35, - 2446,280,1088,229,1707,2139,72,291,49,2241, - 156,3044,1200,2576,4790,394,431,1390,1,180, - 3404,49,542,582,2425,3009,49,204,216,4533, - 1200,203,213,214,215,217,486,169,1984,2425, - 1879,229,2826,3594,2735,2488,2066,168,156,183, - 167,170,171,172,173,174,4100,180,3404,3205, - 1879,582,1127,2692,2735,204,216,4533,2979,203, - 213,214,215,217,752,169,49,843,35,457, - 3271,2132,4652,2692,98,168,181,184,167,170, - 171,172,173,174,2077,35,1049,32,4326,4566, - 27,30,31,1065,1233,342,28,3127,35,1049, - 32,1330,1386,27,30,31,1065,1233,26,28, - 1039,263,25,23,50,1282,106,76,77,108, - 363,1291,2563,395,431,2631,1244,35,297,2050, - 4659,2225,289,2735,2635,3328,3347,49,397,431, - 363,3030,96,2235,322,2544,324,1240,317,1948, - 2770,2988,346,2350,3368,3328,3347,1016,35,400, - 355,531,1364,35,1049,32,1267,4637,27,30, - 31,1065,1233,342,28,1051,347,1776,1020,352, - 3127,35,1049,32,532,1386,27,30,31,1065, - 1233,26,28,1039,263,25,23,50,1282,106, - 76,77,108,1618,1291,2603,3353,49,761,49, - 233,542,3205,3561,1726,929,35,2113,392,240, - 263,336,322,2544,324,1226,318,1948,345,924, - 346,2085,542,248,231,232,101,156,355,454, - 3772,3778,752,1016,35,3312,2041,1604,1482,2310, - 49,229,2280,2799,349,1776,1020,352,156,1998, - 2621,49,528,938,3847,4205,431,180,3404,233, - 542,582,1795,2862,2783,204,216,4533,49,203, - 213,214,215,217,2416,169,49,1998,2158,229, - 4099,2425,241,231,232,168,156,4203,167,170, - 171,172,173,174,517,180,3404,1814,542,582, - 299,306,49,204,216,4533,3510,203,213,214, - 215,217,2719,169,2419,2517,2735,229,587,35, - 2113,392,2289,168,156,178,167,170,171,172, - 173,174,603,180,3404,346,542,582,2226,155, - 1139,204,216,4533,4667,203,213,214,215,217, - 49,169,49,275,1981,229,1200,2143,930,2491, - 752,168,156,176,167,170,171,172,173,174, - 689,180,3404,49,542,582,528,1060,1618,204, - 216,4533,156,203,213,214,215,217,2519,169, - 396,431,2077,229,2155,2692,1244,3703,297,168, - 156,177,167,170,171,172,173,174,775,180, - 3404,3509,542,582,1795,343,49,204,216,4533, - 4113,203,213,214,215,217,2778,169,298,2153, - 2735,229,587,35,2113,392,2522,168,156,187, - 167,170,171,172,173,174,2557,180,3404,346, - 2328,582,2496,179,2735,204,216,4533,1800,203, - 213,214,215,217,2695,169,2586,49,929,35, - 2113,392,4248,2692,1618,168,46,4319,167,170, - 171,172,173,174,1695,35,1049,32,4782,4566, - 27,30,31,1065,1233,342,28,2421,2555,924, - 49,4320,2253,49,1341,2651,1200,3252,446,2735, - 460,861,1998,47,1610,542,1795,1446,1482,49, - 2651,3543,4790,4493,2735,49,2710,49,2692,4186, - 354,4753,156,1784,229,587,35,2113,392,2697, - 364,156,540,2692,322,2544,324,155,317,1948, - 180,3404,4688,1800,582,199,3363,338,204,216, - 4533,316,203,213,214,215,217,3205,169,155, - 436,1800,1795,355,4705,947,335,233,168,542, - 192,167,170,171,172,173,174,2626,155,347, - 1776,1020,352,4726,2584,509,233,1941,229,49, - 251,231,232,1154,2591,156,4524,309,313,948, - 509,198,2690,2001,180,3404,3543,2735,582,254, - 231,232,204,216,4533,4341,203,213,214,215, - 217,4210,169,1033,3543,2703,229,542,507,508, - 1795,1618,168,3824,186,167,170,171,172,173, - 174,337,338,506,508,49,229,1738,2585,1683, - 206,216,4533,156,205,213,214,215,217,3490, - 338,49,180,3404,455,4063,582,2743,546,305, - 204,216,4533,2658,203,213,214,215,217,752, - 169,207,209,211,3419,3728,524,208,210,1979, - 168,2720,195,167,170,171,172,173,174,3127, - 35,1049,32,2732,1386,27,30,31,1065,1233, - 26,28,1039,263,25,23,50,1282,106,76, - 77,108,534,2627,3127,35,1049,32,1713,1386, - 27,30,31,1065,1233,26,28,1039,263,25, - 23,50,1282,106,76,77,108,307,2755,3127, - 35,1049,32,2718,1386,27,30,31,1065,1233, - 26,28,1039,263,25,23,50,1282,106,76, - 77,108,2741,2766,3127,2115,1049,2123,2751,1386, - 27,30,31,1065,1233,26,28,1039,263,25, - 23,50,1282,106,76,77,84,3127,35,1049, - 32,2758,1386,27,30,31,1065,1233,26,28, - 1039,263,25,23,50,1282,106,76,77,83, - 3127,35,1049,32,2753,1386,27,30,31,1065, - 1233,26,28,1039,263,25,23,50,1282,106, - 76,77,82,3127,35,1049,32,2733,1386,27, - 30,31,1065,1233,26,28,1039,263,25,23, - 50,1282,106,76,77,81,3127,35,1049,32, - 2739,1386,27,30,31,1065,1233,26,28,1039, - 263,25,23,50,1282,106,76,77,80,3127, - 35,1049,32,2793,1386,27,30,31,1065,1233, - 26,28,1039,263,25,23,50,1282,106,76, - 77,79,3127,35,1049,32,2794,1386,27,30, - 31,1065,1233,26,28,1039,263,25,23,50, - 1282,106,76,77,78,2956,35,1049,32,87, - 1386,27,30,31,1065,1233,26,28,1039,263, - 25,23,50,1282,106,76,77,104,3127,35, - 1049,32,2763,1386,27,30,31,1065,1233,26, - 28,1039,263,25,23,50,1282,106,76,77, - 110,3127,35,1049,32,2764,1386,27,30,31, - 1065,1233,26,28,1039,263,25,23,50,1282, - 106,76,77,109,3127,35,1049,32,2765,1386, - 27,30,31,1065,1233,26,28,1039,263,25, - 23,50,1282,106,76,77,107,3127,35,1049, - 32,150,1386,27,30,31,1065,1233,26,28, - 1039,263,25,23,50,1282,106,76,77,105, - 1992,35,3647,32,4782,4566,27,30,31,1065, - 1233,342,28,752,1869,35,1049,32,4782,4566, - 27,30,31,1065,1233,342,28,3072,35,1049, - 32,1795,1386,27,30,31,1065,1233,26,28, - 1039,263,25,23,50,1282,86,76,77,1566, - 1618,2769,49,2735,1355,1355,1200,2240,1200,1200, - 322,2544,324,1827,317,1948,1977,2735,2776,49, - 202,173,229,1200,322,2544,324,814,317,1948, - 1795,386,156,381,160,160,229,1795,150,2771, - 1355,316,2332,1991,1200,2795,206,216,4533,156, - 205,213,214,215,217,587,35,2446,3602,2351, - 206,216,4533,1795,205,213,214,215,217,200, - 160,674,35,2113,392,4031,301,207,209,211, - 3419,49,218,208,210,972,1914,310,313,948, - 2735,207,209,211,3419,385,218,208,210,1618, - 1862,1905,4893,2796,49,1800,49,49,2735,229, - 1795,2735,3222,1618,4365,1998,47,422,423,3625, - 49,49,2790,1795,3474,1200,3350,346,4365,877, - 346,2417,3360,206,216,4533,2758,205,213,214, - 215,217,3286,35,2113,392,3398,748,2485,223, - 2799,156,3064,2799,2777,239,263,1016,35,400, - 2202,2565,193,2253,207,209,211,3419,3543,218, - 208,210,2799,1956,35,1049,32,275,4637,27, - 30,31,1065,1233,342,28,1869,35,1049,32, - 4782,4566,27,30,31,1065,1233,342,28,3679, - 2800,4365,384,333,338,233,1494,35,1049,32, - 2713,4566,27,30,31,1065,1233,342,28,2798, - 1901,1618,1618,3205,2735,4790,1446,1990,237,231, - 232,4790,336,322,2544,324,5443,318,1948,276, - 5443,1618,1618,2692,5443,407,322,2544,324,1653, - 317,1948,2447,2735,3501,1726,5443,4641,244,247, - 250,253,1457,4272,3870,1740,319,3577,324,2735, - 3205,5443,229,921,1812,4223,3205,1355,1355,335, - 5443,1200,1200,5443,5443,335,5443,5443,229,587, - 35,2446,283,5443,5443,5443,206,216,4533,5443, - 205,213,214,215,217,1618,5443,160,160,4524, - 363,5443,206,216,4533,3142,205,213,214,215, - 217,5443,5443,5443,2027,3328,3347,207,209,211, - 3419,2088,523,208,210,2735,5443,2560,3623,5443, - 5443,542,5443,207,209,211,3419,2175,219,208, - 210,2735,5443,3105,229,5443,5443,49,1901,5443, - 4220,1200,2735,4790,5443,5443,2983,156,5443,5443, - 229,5443,5443,2827,3183,5443,180,3404,206,216, - 4533,2692,205,213,214,215,217,156,1355,5443, - 5443,5443,1200,1800,206,216,4533,2084,205,213, - 214,215,217,5443,196,587,35,297,3205,207, - 209,211,3419,5443,308,208,210,335,160,1016, - 35,400,433,5443,1980,207,209,211,3419,4790, - 503,208,210,2160,35,1049,32,2481,4566,27, - 30,31,1065,1233,342,28,3673,3142,363,1180, - 5443,5443,5443,2735,4818,1286,3543,5443,5443,2735, - 4818,5443,2027,3328,3347,5443,674,35,2113,392, - 5443,5443,229,5443,3205,587,35,297,229,5443, - 5443,5443,5443,336,3631,5443,5443,929,35,2113, - 392,3645,338,319,3577,324,830,411,4306,5443, - 355,49,830,411,4306,5443,5443,5443,3630,5443, - 1998,3015,5443,5443,5443,5443,349,1776,1020,352, - 4735,197,49,5443,3308,5443,4300,412,413,414, - 3419,1998,47,412,413,414,3419,674,35,2113, - 392,674,35,2113,392,2623,5443,5443,5443,5443, - 3384,5443,674,35,2113,392,3384,5443,5443,674, - 35,2113,392,5443,5443,5443,5443,1649,35,2113, - 392,5443,49,5443,5443,5443,49,5443,4137,49, - 5443,1998,572,1200,5443,1998,47,49,674,35, - 2113,392,5443,2983,49,3308,1998,47,5443,941, - 5443,5443,49,1998,47,674,35,2113,392,156, - 2162,1998,47,5443,415,417,5443,2249,5443,4342, - 415,418,5443,49,5443,4505,2168,35,2113,392, - 5443,5443,1998,47,5443,2721,5443,5443,1155,542, - 49,4555,5443,49,5443,5443,2599,542,5443,1998, - 47,5443,5443,2686,5443,49,49,2735,346,542, - 2735,49,5443,3525,5443,156,346,5443,5443,5443, - 1998,47,5443,156,5443,188,2692,5443,346,346, - 5443,4286,1446,1733,4575,156,5443,4790,5443,2799, - 587,35,2113,392,5443,1604,5443,5443,5443,1690, - 5443,2799,2799,587,35,2113,392,587,35,2113, - 392,1898,2326,5443,587,35,2113,392,587,35, - 2113,392,49,5443,5443,49,2735,49,5443,5443, - 5443,542,3205,5443,1998,1276,5443,190,49,5443, - 5443,335,49,509,5443,346,5443,1998,2523,49, - 346,1998,2759,49,5443,5443,5443,156,1998,675, - 49,49,1998,2734,542,542,49,188,2799,5443, - 2735,4273,5443,4286,5443,49,5443,5443,2427,2735, - 5443,49,5443,346,346,2735,506,508,49,346, - 156,156,2735,2516,5443,5443,5443,1200,346,5443, - 188,188,5443,5443,346,5443,4286,4286,5443,5443, - 5443,346,2799,5443,5443,5443,5443,4163,5443,5443, - 5443,2799,2034,156,5443,5443,5443,2799,4116,4199, - 5443,513,5443,162,2799,5443,5443,511,5443,5443, - 5443,5443,5443,5443,539,5443,5443,5443,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,5443,5443, - 5443,5443,4213,4321,5443,5443,5443,5443,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,5443,5443, - 5443,5443,5443,4405,5443,0,39,5458,0,39, - 5457,0,1513,29,0,444,1556,0,458,1599, - 0,38,624,0,38,5458,0,38,5457,0, - 2636,126,0,1,448,0,462,867,0,461, - 1283,0,2978,91,0,1513,391,0,35,33, - 0,32,34,0,39,624,0,1,731,0, - 1,5717,0,1,5716,0,1,5715,0,1, - 5714,0,1,5713,0,1,5712,0,1,5711, - 0,1,5710,0,1,5709,0,1,5708,0, - 1,5707,0,39,1,5458,0,39,1,5457, - 0,634,1,0,285,398,0,285,290,0, - 5678,242,0,5677,242,0,5784,242,0,5783, - 242,0,5705,242,0,5704,242,0,5703,242, - 0,5702,242,0,5701,242,0,5700,242,0, - 5699,242,0,5698,242,0,5717,242,0,5716, - 242,0,5715,242,0,5714,242,0,5713,242, - 0,5712,242,0,5711,242,0,5710,242,0, - 5709,242,0,5708,242,0,5707,242,0,39, - 5458,242,0,39,5457,242,0,5481,242,0, - 5458,48,0,5457,48,0,5449,1,0,5448, - 1,0,4104,238,0,32,392,0,29,391, - 0,43,5479,0,43,37,0,2636,128,0, - 2636,127,0,334,449,0,5481,1,0,39, - 1,0,47,37,0,1,92,0,505,3385, - 0,5481,1,230,0,39,1,230,0,230, - 420,0,5458,37,0,5457,37,0,5458,2, - 37,0,5457,2,37,0,5458,36,0,5457, - 36,0,5479,45,0,37,45,0,5453,409, - 0,5452,409,0,1,606,0,1,3302,0, - 1,624,0,230,419,0,3117,321,0,334, - 95,0,35,73,0,1,334,0,4140,280, - 0,505,4349,0,1,230,0,230,221,0, - 1,3137,0,1,4257,0,230,220,0,5455, - 1,0,5451,1,0,1,230,3916,0,5452, - 230,0,3939,230,0,5455,387,0,5454,387, - 0,4121,230,0,10,12,0,8,10,12, - 0,4254,194,0,185,3565,0,4327,387,0, - 8,12,0 + 192,192,193,193,194,160,160,161,161,158, + 158,162,159,159,21,21,22,22,23,23, + 23,24,24,24,24,25,25,25,26,26, + 26,31,31,31,31,31,33,33,33,34, + 34,35,35,37,37,38,38,40,40,41, + 41,45,45,45,45,45,47,47,47,53, + 53,55,55,61,61,62,62,63,63,64, + 64,65,65,65,65,65,65,65,65,65, + 65,65,65,65,29,29,46,46,46,46, + 46,46,46,46,46,46,46,46,46,36, + 28,163,163,105,105,195,195,104,219,219, + 82,82,82,82,82,82,82,82,82,83, + 83,83,79,79,66,66,196,196,84,84, + 84,116,116,197,197,85,85,85,85,198, + 198,86,86,86,86,86,87,87,95,95, + 95,95,95,95,95,95,56,56,56,56, + 56,132,132,130,130,57,199,27,27,27, + 27,27,50,50,69,69,69,69,69,137, + 137,133,133,133,133,133,134,134,134,135, + 135,135,136,136,136,165,165,165,70,70, + 70,70,70,71,71,71,13,14,14,14, + 14,14,14,14,14,14,14,14,106,138, + 138,138,138,138,138,111,111,111,166,167, + 167,112,112,200,169,169,168,168,139,139, + 117,92,92,140,59,49,170,170,60,58, + 97,97,171,171,164,164,141,142,142,143, + 89,89,172,172,77,77,77,73,73,72, + 78,78,80,80,68,68,68,54,98,98, + 108,107,107,51,51,74,74,76,76,52, + 109,109,109,99,99,99,100,100,101,101, + 101,102,102,118,118,118,120,120,119,119, + 220,220,103,103,202,202,202,202,202,145, + 48,48,174,201,201,146,146,147,147,147, + 148,176,203,203,32,32,110,114,114,114, + 114,205,122,121,121,113,113,113,177,178, + 178,178,178,178,178,178,178,178,178,178, + 207,207,204,204,206,206,179,180,180,180, + 180,181,208,124,123,123,209,209,182,182, + 182,182,115,115,115,210,210,8,8,9, + 211,211,212,183,173,173,184,184,185,186, + 186,7,7,10,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,90,93,93,187, + 187,150,150,151,151,151,151,151,151,3, + 152,152,149,149,188,221,222,222,223,223, + 224,225,225,189,190,190,190,190,214,214, + 214,126,126,126,126,126,127,128,128,125, + 125,96,91,88,88,175,175,129,129,215, + 215,215,153,153,144,144,216,216,191,191, + 1119,35,2221,2196,4455,1355,27,30,31,1162, + 1215,26,28,2149,296,25,23,50,1246,106, + 76,77,108,1272,1474,1301,1564,1938,1335,177, + 332,1520,308,1625,1567,1704,2277,1666,1713,2276, + 1751,176,413,147,1273,1510,191,4350,1508,1941, + 1350,266,5173,1243,35,1153,32,4862,4737,27, + 30,31,1162,1215,375,28,534,193,1088,269, + 264,265,2905,35,1153,32,3328,600,27,30, + 31,1162,1215,26,28,1151,296,25,23,50, + 1246,106,76,77,108,1272,1474,1301,2779,379, + 189,266,2956,2683,2276,1488,309,441,1396,1273, + 276,279,282,627,705,2277,368,3066,1734,278, + 264,265,5007,1824,3118,355,2291,357,810,389, + 350,1175,193,2237,650,1353,2839,5932,285,1537, + 35,490,3432,5166,2353,5739,2301,2030,715,159, + 1638,35,1153,32,4862,3838,27,30,31,1162, + 1215,375,28,630,69,2897,2360,35,1153,32, + 3328,5363,27,30,31,1162,1215,26,28,1151, + 296,25,23,50,1246,106,76,77,108,1272, + 1474,1301,2779,1659,1818,162,1492,35,3563,32, + 4862,4737,27,30,31,1162,1215,375,28,2592, + 1508,2773,1818,2837,5173,2555,35,312,3327,2835, + 2593,2878,352,3520,357,6140,2929,2845,2899,2901, + 161,579,4270,1847,2360,35,1153,32,3328,5363, + 27,30,31,1162,1215,26,28,1151,296,25, + 23,50,1246,106,76,77,108,1272,1474,1301, + 2779,2634,3379,162,2956,71,35,330,355,2291, + 357,2702,2489,350,1175,71,35,330,2957,2773, + 1818,2837,1537,35,314,1050,5330,2835,535,2878, + 2045,550,576,3889,580,2845,2899,2901,161,579, + 467,1912,35,1153,32,6094,497,27,30,31, + 1162,1215,26,28,2627,2765,548,93,2903,759, + 35,433,2887,483,3576,3577,2360,35,1153,32, + 3328,5363,27,30,31,1162,1215,26,28,1151, + 296,25,23,50,1246,106,76,77,108,1272, + 1474,1301,2779,426,2413,162,759,35,433,550, + 576,3889,580,71,1939,2102,34,71,3522,1166, + 94,2773,2046,2837,496,455,456,3555,2224,2835, + 1488,2878,3225,2952,427,464,2903,2845,2899,2901, + 161,579,3478,1820,2570,35,1153,32,3328,5363, + 27,30,31,1162,1215,26,28,1151,296,25, + 23,50,1246,106,76,77,108,1272,1474,1301, + 2779,1818,2630,162,1729,35,1153,32,6094,2683, + 27,30,31,1162,1215,59,28,2369,2627,2773, + 3646,2837,71,35,1892,425,3471,2835,2532,2878, + 2702,550,576,3889,580,2845,2899,2901,161,579, + 1543,35,1153,32,4476,1818,27,30,31,1162, + 1215,57,28,88,468,2965,102,3647,2903,3327, + 35,1153,32,3328,843,27,30,31,1162,1215, + 26,28,1151,296,25,23,50,1246,106,76, + 77,108,1272,1474,1301,1564,325,1229,35,330, + 1520,1520,1625,1567,1704,5762,1666,2647,1365,551, + 576,3889,580,2708,35,1153,32,3328,390,27, + 30,31,1162,1215,26,28,1151,296,25,23, + 50,1246,106,76,77,108,1272,1474,1301,1564, + 56,1400,177,2736,1520,766,1625,1567,1704,51, + 1666,1713,2738,1751,176,3465,71,35,3059,415, + 2428,35,1153,32,3328,2670,27,30,31,1162, + 1215,26,28,1151,296,25,23,50,1246,106, + 76,77,108,1272,1474,1301,1564,89,1213,177, + 102,1520,2600,1625,1567,1704,2705,1666,1713,1647, + 1751,176,3465,56,648,2765,415,61,834,2638, + 35,1153,32,3328,1517,27,30,31,1162,1215, + 26,28,1151,296,25,23,50,1246,106,76, + 77,108,1272,1474,1301,1564,3735,2639,177,70, + 1520,3201,1625,1567,1704,360,1666,1713,458,1751, + 176,3465,1537,35,314,415,5842,1405,1315,422, + 416,3257,1239,2973,35,1153,32,3328,159,27, + 30,31,1162,1215,26,28,1151,296,25,23, + 50,1246,106,76,77,108,1272,1474,1301,1564, + 56,1449,177,1555,1520,926,1625,1567,1704,2631, + 1666,1713,2600,1751,176,1488,423,416,3257,191, + 1595,2852,35,1153,32,3328,3122,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,1474,1301,1564,71,35, + 2102,3026,1520,1655,1625,1567,1704,2826,1666,1713, + 914,2969,197,3474,1702,413,416,3257,2973,35, + 1153,32,3328,1818,27,30,31,1162,1215,26, + 28,1151,296,25,23,50,1246,106,76,77, + 108,1272,1474,1301,1564,3125,2277,177,1267,1520, + 2955,1625,1567,1704,266,1666,1713,69,1751,176, + 1559,35,1153,32,409,363,41,30,31,1162, + 1215,480,281,264,265,1373,24,2003,35,1892, + 425,2973,35,1153,32,3328,630,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,1474,1301,1564,56,308, + 177,365,1520,1273,1625,1567,1704,362,1666,1713, + 1038,1751,176,3474,1233,42,3022,409,71,35, + 317,2973,35,1153,32,3328,2658,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,1474,1301,1564,71,3387, + 177,1818,1520,408,1625,1567,1704,241,1666,1713, + 1338,1751,176,71,35,2176,1278,409,2502,35, + 1153,32,3328,3207,27,30,31,1162,1215,26, + 28,1151,296,25,23,50,1246,106,76,77, + 108,1272,1474,1301,1564,2095,1501,177,72,1520, + 4250,1625,1567,1704,55,1666,1713,1662,1751,176, + 69,1537,35,567,175,6161,407,2973,35,1153, + 32,3328,379,27,30,31,1162,1215,26,28, + 1151,296,25,23,50,1246,106,76,77,108, + 1272,1474,1301,1564,56,97,177,723,1520,1273, + 1625,1567,1704,1488,1666,1713,1818,1751,176,71, + 35,2102,311,192,2641,65,405,2973,35,1153, + 32,3328,3704,27,30,31,1162,1215,26,28, + 1151,296,25,23,50,1246,106,76,77,108, + 1272,1474,1301,1564,1499,2630,177,2977,1520,147, + 1625,1567,1704,4731,1666,1713,228,1751,176,71, + 35,1892,425,188,2973,35,1153,32,3328,588, + 27,30,31,1162,1215,26,28,1151,296,25, + 23,50,1246,106,76,77,108,1272,1474,1301, + 1564,489,147,177,61,1520,4800,1625,1567,1704, + 98,1666,1713,1007,1751,176,931,35,2102,311, + 187,2973,35,1153,32,3328,1749,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,1474,1301,1564,2491,147, + 177,1334,1520,4883,1625,1567,1704,2491,1666,1713, + 1348,1751,176,71,35,1892,425,186,2973,35, + 1153,32,3328,1847,27,30,31,1162,1215,26, + 28,1151,296,25,23,50,1246,106,76,77, + 108,1272,1474,1301,1564,471,439,177,392,1520, + 69,1625,1567,1704,2178,1666,1713,594,1751,176, + 71,35,1892,425,185,2973,35,1153,32,3328, + 2489,27,30,31,1162,1215,26,28,1151,296, + 25,23,50,1246,106,76,77,108,1272,1474, + 1301,1564,470,443,177,233,1520,1915,1625,1567, + 1704,5180,1666,1713,3119,1751,176,71,35,1892, + 425,184,2973,35,1153,32,3328,2489,27,30, + 31,1162,1215,26,28,1151,296,25,23,50, + 1246,106,76,77,108,1272,1474,1301,1564,469, + 147,177,2795,1520,5312,1625,1567,1704,2178,1666, + 1713,321,1751,176,71,3485,2102,74,183,2973, + 35,1153,32,3328,2489,27,30,31,1162,1215, + 26,28,1151,296,25,23,50,1246,106,76, + 77,108,1272,1474,1301,1564,1499,335,177,1361, + 1520,147,1625,1567,1704,5428,1666,1713,322,1751, + 176,931,35,2102,3486,182,2973,35,1153,32, + 3328,2489,27,30,31,1162,1215,26,28,1151, + 296,25,23,50,1246,106,76,77,108,1272, + 1474,1301,1564,1499,147,177,1482,1520,5808,1625, + 1567,1704,2178,1666,1713,332,1751,176,71,35, + 2102,313,181,2973,35,1153,32,3328,1413,27, + 30,31,1162,1215,26,28,1151,296,25,23, + 50,1246,106,76,77,108,1272,1474,1301,1564, + 56,255,177,1934,1520,4369,1625,1567,1704,2178, + 1666,1713,331,1751,176,71,35,2102,3554,180, + 2973,35,1153,32,3328,2112,27,30,31,1162, + 1215,26,28,1151,296,25,23,50,1246,106, + 76,77,108,1272,1474,1301,1564,56,339,177, + 391,1520,3364,1625,1567,1704,2132,1666,1713,594, + 1751,176,71,35,2102,316,179,2973,35,1153, + 32,3328,2831,27,30,31,1162,1215,26,28, + 1151,296,25,23,50,1246,106,76,77,108, + 1272,1474,1301,1564,2634,147,177,359,1520,5829, + 1625,1567,1704,2178,1666,1713,594,1751,176,71, + 35,1892,425,178,2973,35,1153,32,3328,1832, + 27,30,31,1162,1215,26,28,1151,296,25, + 23,50,1246,106,76,77,108,1272,1474,1301, + 1564,308,212,177,1104,1520,3002,1625,1567,1704, + 2178,1666,1713,2934,1751,176,71,35,1892,425, + 140,3094,35,1153,32,3328,3785,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,1474,1301,2779,308,232, + 162,3724,1243,35,1153,32,4862,4737,27,30, + 31,1162,1215,375,28,2734,2773,1257,2837,2008, + 4250,1229,3572,330,2835,310,2878,428,464,1348, + 273,296,2845,2899,2901,161,173,3094,35,1153, + 32,3328,379,27,30,31,1162,1215,26,28, + 1151,296,25,23,50,1246,106,76,77,108, + 1272,1474,1301,2779,2623,2277,162,1209,266,2084, + 2789,2701,376,2634,355,2291,357,1423,3010,350, + 1175,1815,2773,3847,2837,5173,274,264,265,1488, + 2835,349,2878,2322,2634,69,273,296,2845,2899, + 2901,161,172,3094,35,1153,32,3328,1166,27, + 30,31,1162,1215,26,28,1151,296,25,23, + 50,1246,106,76,77,108,1272,1474,1301,2779, + 2277,2630,162,2277,266,2956,2309,1645,1517,3125, + 2456,35,312,343,346,2313,484,1653,2773,369, + 2837,361,274,264,265,412,2835,1488,2878,227, + 68,2639,2007,53,2845,2899,2901,161,171,3094, + 35,1153,32,3328,2934,27,30,31,1162,1215, + 26,28,1151,296,25,23,50,1246,106,76, + 77,108,1272,1474,1301,2779,430,464,162,2630, + 1243,35,1153,32,4862,4737,27,30,31,1162, + 1215,375,28,2777,2773,1998,2837,429,464,44, + 3022,399,2835,587,2878,415,479,417,493,2417, + 2845,2899,2901,161,170,3094,35,1153,32,3328, + 1749,27,30,31,1162,1215,26,28,1151,296, + 25,23,50,1246,106,76,77,108,1272,1474, + 1301,2779,2420,410,162,71,35,2102,566,364, + 371,56,355,2291,357,495,1202,350,1175,56, + 2773,2874,2837,2345,4250,2693,35,315,2835,3731, + 2878,2171,35,490,348,5166,2845,2899,2901,161, + 169,3094,35,1153,32,3328,379,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,1474,1301,2779,3001,2277, + 162,3118,2215,35,1153,32,4476,3327,27,30, + 31,1162,1215,56,28,1556,2773,2572,2837,2731, + 35,565,1488,405,2835,2008,2878,484,2683,87, + 2092,1917,2845,2899,2901,161,168,3094,35,1153, + 32,3328,2277,27,30,31,1162,1215,26,28, + 1151,296,25,23,50,1246,106,76,77,108, + 1272,1474,1301,2779,2630,2277,162,1729,35,1153, + 32,6094,52,27,30,31,1162,1215,58,28, + 2626,56,2773,572,2837,4447,3199,319,412,1488, + 2835,56,2878,1752,2485,386,2382,1929,2845,2899, + 2901,161,167,3094,35,1153,32,3328,2277,27, + 30,31,1162,1215,26,28,1151,296,25,23, + 50,1246,106,76,77,108,1272,1474,1301,2779, + 475,3156,162,1994,35,1153,32,2524,90,40, + 30,31,1162,1215,2277,487,3576,3577,2773,2185, + 2837,1335,56,2353,1728,56,2835,861,2878,60, + 2124,215,2007,1365,2845,2899,2901,161,166,3094, + 35,1153,32,3328,2836,27,30,31,1162,1215, + 26,28,1151,296,25,23,50,1246,106,76, + 77,108,1272,1474,1301,2779,3423,2418,162,1994, + 35,1153,32,71,3728,1804,30,31,1162,1215, + 2277,2450,2683,2777,2773,2496,2837,1734,759,35, + 433,5007,2835,1867,2878,1984,2749,2007,1728,571, + 2845,2899,2901,161,165,3094,35,1153,32,3328, + 2886,27,30,31,1162,1215,26,28,1151,296, + 25,23,50,1246,106,76,77,108,1272,1474, + 1301,2779,2277,418,162,1994,35,1153,32,3315, + 371,1898,30,31,1162,1215,56,2762,2777,56, + 2773,3558,2837,585,4250,2268,56,581,2835,1833, + 2878,2712,67,2007,71,753,2845,2899,2901,161, + 164,3094,35,1153,32,3328,379,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,1474,1301,2779,491,2973, + 162,3118,1847,2276,370,371,56,2661,1273,3732, + 266,1312,2183,2929,2777,56,2773,1922,2837,2006, + 4250,1657,2683,1019,2835,2033,2878,585,284,264, + 265,193,2845,2899,2901,161,163,3154,35,1153, + 32,3328,379,27,30,31,1162,1215,26,28, + 1151,296,25,23,50,1246,106,76,77,108, + 1272,1474,1301,2779,2277,2277,162,3118,266,466, + 3317,371,2533,3260,2489,56,1248,1904,2914,1508, + 2293,5173,2773,5173,2837,2534,287,264,265,744, + 2835,2055,2878,2280,66,65,3568,1488,2845,2899, + 2901,161,160,3214,35,1153,32,3328,3226,27, + 30,31,1162,1215,26,28,1151,296,25,23, + 50,1246,106,76,77,108,1272,1474,1301,1564, + 56,2956,177,2956,1520,2314,1625,1567,1704,3316, + 1666,1713,835,1751,176,2957,2492,368,2277,222, + 3327,35,1153,32,3328,340,27,30,31,1162, + 1215,26,28,1151,296,25,23,50,1246,106, + 76,77,108,1272,1474,1301,1564,4312,64,2564, + 1867,1520,2178,1625,1567,1704,3062,1666,1713,2277, + 2969,197,3327,35,1153,32,3328,2489,27,30, + 31,1162,1215,26,28,1151,296,25,23,50, + 1246,106,76,77,108,1272,1474,1301,1564,3115, + 1486,231,586,1520,2290,1625,1567,1704,2007,1666, + 1713,56,2969,197,2007,56,4991,96,3766,56, + 2843,2018,2490,2959,3108,71,35,1892,425,3327, + 35,1153,32,3328,1616,27,30,31,1162,1215, + 26,28,1151,296,25,23,50,1246,106,76, + 77,108,1272,1474,1301,1564,56,49,419,2777, + 1520,5807,1625,1567,1704,2777,1666,1713,46,2969, + 197,3327,35,1153,32,3328,460,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,1474,1301,1564,388,1851, + 3522,319,1520,2637,1625,1567,1704,1011,1666,1713, + 589,2969,197,743,915,366,371,380,1048,649, + 385,3463,371,925,2045,2178,2277,378,3327,35, + 1153,32,3328,329,27,30,31,1162,1215,26, + 28,1151,296,25,23,50,1246,106,76,77, + 108,1272,1474,1301,1564,2011,55,1488,2542,1520, + 2818,1625,1567,1704,338,1666,1713,2277,2969,197, + 3486,35,1153,32,3328,459,27,30,31,1162, + 1215,26,28,1151,296,25,23,50,1246,106, + 76,77,108,1272,1474,1301,1564,54,577,3472, + 2486,1520,2179,1625,1567,1704,266,1666,1713,56, + 2969,197,2092,56,3461,56,56,56,2394,2494, + 1654,5820,1936,2389,278,264,265,757,1673,35, + 1892,425,462,3433,35,1153,32,3328,324,27, + 30,31,1162,1215,26,28,1151,296,25,23, + 50,1246,106,76,77,108,1272,1474,1301,2779, + 49,56,2010,266,2594,2292,3114,826,3553,4250, + 1273,1845,628,2528,3694,2878,2945,417,2773,56, + 2837,281,264,265,5833,56,2835,2178,2878,586, + 4674,4166,143,189,2845,3323,3327,35,1153,32, + 3328,598,27,30,31,1162,1215,26,28,1151, + 296,25,23,50,1246,106,76,77,108,1272, + 1474,1301,1564,56,2595,2178,235,1520,2704,1625, + 1567,1704,2277,2633,3380,35,1153,32,3328,2277, + 27,30,31,1162,1215,26,28,1151,296,25, + 23,50,1246,106,76,77,108,1272,1474,1301, + 2779,2822,358,56,233,56,4250,396,1983,101, + 3077,2669,56,2601,2706,56,2778,1123,2178,2773, + 5129,2837,3069,3104,3121,3003,1663,2835,4166,2878, + 3327,35,1153,32,3328,3302,27,30,31,1162, + 1215,26,28,1151,296,25,23,50,1246,106, + 76,77,108,1272,1474,1301,1564,334,2628,3004, + 2664,1520,2633,1625,1567,2573,3380,35,1153,32, + 3328,2277,27,30,31,1162,1215,26,28,1151, + 296,25,23,50,1246,106,76,77,108,1272, + 1474,1301,2779,2960,2778,2995,605,2927,1851,3522, + 2566,3361,4598,2959,542,4250,1216,2793,2961,1218, + 2178,2773,3064,2837,1292,3006,3059,2881,2962,2835, + 2277,3298,3327,35,1153,32,3328,4166,27,30, + 31,1162,1215,26,28,1151,296,25,23,50, + 1246,106,76,77,108,1272,1474,1301,1564,4367, + 2039,539,541,1520,2277,1625,2581,3380,35,1153, + 32,3328,2416,27,30,31,1162,1215,26,28, + 1151,296,25,23,50,1246,106,76,77,108, + 1272,1474,1301,2779,488,3117,3124,3176,3574,3092, + 3183,87,592,2178,2178,3086,3118,3119,3120,1362, + 3147,173,2773,397,2837,3327,35,1153,32,3328, + 3300,27,30,31,1162,1215,26,28,1151,296, + 25,23,50,1246,106,76,77,108,1272,1474, + 1301,1564,256,226,3212,2998,1520,324,2495,3380, + 35,1153,32,3328,2277,27,30,31,1162,1215, + 26,28,1151,296,25,23,50,1246,106,76, + 77,108,1272,1474,1301,2779,2893,3553,3177,1637, + 3178,3236,3237,2966,414,2958,6862,6862,6862,6862, + 6862,6862,6862,6862,2773,2277,3223,3327,35,1153, + 32,3328,6862,27,30,31,1162,1215,26,28, + 1151,296,25,23,50,1246,106,76,77,108, + 1272,1474,1301,1564,6862,4978,2277,2277,2501,3327, + 35,1153,32,3328,6862,27,30,31,1162,1215, + 26,28,1151,296,25,23,50,1246,106,76, + 77,108,1272,1474,1301,1564,5040,5172,6862,6862, + 2548,3380,35,1153,32,3328,6862,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,1474,1301,2779,1258,35, + 1153,32,4945,4737,27,30,31,1162,1215,375, + 28,3380,35,1153,32,3328,3224,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,1474,1301,2779,2277,6862, + 6862,6862,6862,2776,6862,6862,2180,2277,6187,2023, + 56,1273,2956,56,2959,1273,3258,6862,1273,6862, + 2277,6862,6862,6862,6862,1508,368,2181,1613,5173, + 355,2291,357,387,189,350,1175,2377,189,6862, + 6862,189,3425,6862,2783,234,1065,349,6862,2643, + 3654,3327,35,1153,32,3328,5415,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,1474,1301,2379,266,2956, + 6862,6862,6862,388,6862,6862,2277,6862,6862,388, + 6862,6862,6862,368,6862,266,284,264,265,342, + 346,2313,380,1048,649,385,6862,6862,380,1048, + 649,385,2615,570,264,265,5301,6862,578,6862, + 6862,6862,1992,4682,3327,35,1153,32,3328,3645, + 27,30,31,1162,1215,26,28,1151,296,25, + 23,50,1246,106,76,77,108,1272,1474,1301, + 2441,3327,35,1153,32,3328,6862,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,1474,1301,2445,3327,35, + 1153,32,3328,6862,27,30,31,1162,1215,26, + 28,1151,296,25,23,50,1246,106,76,77, + 108,1272,1474,1301,2447,3327,35,1153,32,3328, + 6862,27,30,31,1162,1215,26,28,1151,296, + 25,23,50,1246,106,76,77,108,1272,1474, + 1301,3210,3327,35,1153,32,3328,6862,27,30, + 31,1162,1215,26,28,1151,296,25,23,50, + 1246,106,76,77,108,1272,1474,1301,3213,3327, + 35,1153,32,3328,6862,27,30,31,1162,1215, + 26,28,1151,296,25,23,50,1246,106,76, + 77,108,1272,1474,1301,3214,1339,35,1153,32, + 4862,3905,27,30,31,1162,1215,375,28,3327, + 35,1153,32,3328,6862,27,30,31,1162,1215, + 26,28,1151,296,25,23,50,1246,106,76, + 77,108,1272,1474,1301,3362,3759,35,1153,32, + 4862,6219,27,30,31,1162,1215,375,28,6862, + 1220,35,3563,32,4945,4737,27,30,31,1162, + 1215,375,28,6862,6862,6862,387,6862,355,2291, + 357,6862,6862,350,1175,6862,388,6862,6862,6862, + 3539,35,1892,425,4448,3473,6862,6862,6862,6862, + 6862,6862,6862,271,296,380,1048,649,385,6862, + 759,35,3100,1084,2956,3424,2276,6862,355,2291, + 357,1273,308,350,1175,6862,388,6862,368,6862, + 6862,6862,355,2291,357,3432,6862,350,1175,6862, + 6862,266,49,6862,193,380,1048,649,385,1050, + 6862,6862,2126,1845,1523,2615,5173,6862,5415,269, + 264,265,3327,35,1153,32,3328,6862,27,30, + 31,1162,1215,26,28,1151,296,25,23,50, + 1246,106,76,77,108,1272,1474,2449,6862,2276, + 71,35,1892,425,1273,6862,309,6862,6862,6862, + 276,279,282,627,705,6862,2956,3508,402,1179, + 56,6862,1273,6267,4250,1273,6862,193,6862,6862, + 369,3267,49,2237,650,1353,2839,5932,285,6862, + 6862,749,388,1845,2174,189,262,6862,189,454, + 456,3555,6862,195,6862,6862,2812,6862,6862,6862, + 6862,382,1048,649,385,2897,6862,668,444,6008, + 6862,3327,35,1153,32,3328,1757,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,1474,2482,259,243,35, + 1892,425,600,6862,3439,2027,35,1892,425,445, + 446,447,3376,6862,6862,6862,2182,6862,6862,6862, + 6862,600,6862,6862,262,189,329,35,1892,425, + 49,6862,6862,2133,3373,6862,213,49,6862,2630, + 6862,1845,2958,379,189,237,249,750,1845,954, + 6862,6862,221,236,246,247,248,250,49,1, + 6862,2775,6862,202,600,2139,4250,6862,2420,1845, + 2687,6862,2139,6862,6862,6862,201,6862,6862,216, + 200,203,204,205,206,207,262,189,379,6862, + 6862,593,6862,1427,56,2133,448,450,213,1273, + 56,2630,6862,6862,6862,1273,6862,237,249,750, + 6862,6862,3966,3118,6862,236,246,247,248,250, + 6862,6862,189,872,6862,202,5192,6862,189,6862, + 2944,6862,223,6862,6862,6862,2945,596,201,6862, + 214,217,200,203,204,205,206,207,1416,35, + 1153,32,4862,3905,27,30,31,1162,1215,375, + 28,3327,35,1153,32,3328,6862,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,108,1272,2239,6862,6862,3327,35, + 1153,32,3328,4509,27,30,31,1162,1215,26, + 28,1151,296,25,23,50,1246,106,76,77, + 108,1272,2289,3570,6862,6862,6862,6862,2276,6862, + 355,2291,357,1273,2882,350,1175,6862,388,4250, + 6862,6862,1770,35,1153,32,4945,589,27,30, + 31,1162,1215,375,28,6862,193,380,1048,649, + 385,4166,3327,35,1153,32,3328,590,27,30, + 31,1162,1215,26,28,1151,296,25,23,50, + 1246,106,76,77,108,2297,6862,3622,6862,6862, + 345,329,35,1892,425,600,2956,1508,6862,6862, + 56,5173,6862,6862,6862,1273,6862,6862,6862,6862, + 369,6862,6862,6862,355,2291,357,262,189,351, + 1175,6862,388,49,6862,6862,2133,6862,189,213, + 6862,6862,2630,3614,1845,47,3028,542,237,249, + 750,382,1048,649,385,6862,236,246,247,248, + 250,2956,431,6862,2180,6862,202,600,2505,600, + 243,35,1892,425,6862,368,6862,6862,6862,201, + 6862,6862,3695,200,203,204,205,206,207,262, + 189,3475,189,6862,539,541,6862,6862,2133,6862, + 2133,213,49,213,2630,5985,6862,6862,6862,6862, + 237,249,750,1845,47,6862,6862,6862,236,246, + 247,248,250,6862,517,6862,6862,6862,202,600, + 6862,3659,243,35,1892,425,6862,1478,6862,6862, + 6862,201,6862,229,211,200,203,204,205,206, + 207,262,189,329,35,1892,425,6862,6862,6862, + 2133,6862,6862,213,49,56,2630,6862,6862,6862, + 1273,6862,237,249,750,1845,2827,6862,6862,6862, + 236,246,247,248,250,49,603,6862,6862,6862, + 202,600,6862,189,6862,6862,1845,47,6862,2186, + 2822,3319,6862,201,6862,4250,209,200,203,204, + 205,206,207,262,189,243,35,1892,425,6862, + 2815,56,2133,6862,6862,213,1273,4166,2630,6862, + 6862,6862,6862,2700,237,249,750,6862,4250,6862, + 6862,6862,236,246,247,248,250,49,689,189, + 6862,6862,202,600,6862,6862,6862,1511,1845,2503, + 379,2594,4466,230,6862,201,4250,6862,210,200, + 203,204,205,206,207,262,189,243,35,1892, + 425,6862,2186,6862,2133,3557,6862,213,4166,56, + 2630,6862,6862,6862,600,56,237,249,750,6862, + 4250,6862,6862,542,236,246,247,248,250,49, + 775,6862,6862,6862,202,600,379,189,6862,6862, + 1845,47,379,6862,6862,1396,6862,201,6862,6862, + 220,200,203,204,205,206,207,262,189,6862, + 6862,3118,6862,6862,1042,6862,2133,3118,6862,213, + 540,541,2630,6862,6862,6862,6862,6862,237,249, + 750,6862,6862,6862,396,715,236,246,247,248, + 250,2086,6862,6862,6862,6862,202,6862,6862,3531, + 3104,3121,6862,6862,6862,6862,6862,6862,6862,201, + 6862,6862,3733,200,203,204,205,206,207,2382, + 35,1153,32,4862,4737,27,30,31,1162,1215, + 375,28,3327,35,1153,32,3328,6862,27,30, + 31,1162,1215,26,28,1151,296,25,23,50, + 1246,106,76,77,108,2357,243,35,1892,425, + 6862,6862,861,71,35,1892,425,600,3887,6862, + 243,35,1892,425,6862,6862,6862,6862,6862,6862, + 6862,6862,1296,6862,6862,6862,6267,4250,49,262, + 189,355,2291,357,6862,49,350,1175,2133,1845, + 47,213,49,6862,2630,6862,1845,764,349,262, + 237,249,750,1845,47,6862,6862,6862,236,246, + 247,248,250,1669,6862,6862,6862,6862,202,947, + 668,444,6008,6862,600,6862,6862,1763,6862,6862, + 6862,201,6862,6862,225,200,203,204,205,206, + 207,6862,6862,6862,6862,6862,262,189,6862,6862, + 342,346,2313,6862,56,2133,6862,6862,213,1273, + 6862,2630,445,446,447,3376,6862,237,249,750, + 6862,6862,6862,3653,6862,236,246,247,248,250, + 3645,1033,189,6862,6862,202,600,3373,6862,6862, + 3900,6862,2271,35,1892,425,6862,6862,201,6862, + 6862,219,200,203,204,205,206,207,262,189, + 71,35,1892,425,6862,6862,6862,2133,6862,6862, + 213,6862,6862,2630,49,6862,6862,6862,6862,237, + 249,750,6862,6862,6862,1845,47,236,246,247, + 248,250,49,3638,35,554,6862,202,6862,448, + 451,6862,6862,1845,2360,6862,271,296,6862,865, + 201,6862,6862,228,200,203,204,205,206,207, + 3327,35,1153,32,3328,6862,27,30,31,1162, + 1215,26,28,1151,296,25,23,50,1246,106, + 76,77,108,2367,266,1385,35,1153,32,4945, + 6862,27,30,31,1162,1215,375,28,243,35, + 1892,425,269,264,265,3327,35,1153,32,3328, + 6862,27,30,31,1162,1215,26,28,1151,296, + 25,23,50,1246,106,76,77,85,6862,6862, + 49,6862,6862,6862,6862,6862,6862,6862,6862,2956, + 6862,1845,47,276,279,282,627,705,6862,6862, + 6862,6862,6862,369,6862,6862,6862,355,2291,357, + 6862,6862,353,1175,6862,1810,2303,3255,3312,3907, + 6021,3327,1939,1153,1986,3328,6862,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,84,3327,35,1153,32,3328,6862, + 27,30,31,1162,1215,26,28,1151,296,25, + 23,50,1246,106,76,77,83,6862,6862,6862, + 6862,563,564,568,3327,35,1153,32,3328,6862, + 27,30,31,1162,1215,26,28,1151,296,25, + 23,50,1246,106,76,77,82,3924,3327,35, + 1153,32,3328,6862,27,30,31,1162,1215,26, + 28,1151,296,25,23,50,1246,106,76,77, + 81,3327,35,1153,32,3328,6862,27,30,31, + 1162,1215,26,28,1151,296,25,23,50,1246, + 106,76,77,80,3327,35,1153,32,3328,6862, + 27,30,31,1162,1215,26,28,1151,296,25, + 23,50,1246,106,76,77,79,3327,35,1153, + 32,3328,6862,27,30,31,1162,1215,26,28, + 1151,296,25,23,50,1246,106,76,77,78, + 3033,35,1153,32,3328,6862,27,30,31,1162, + 1215,26,28,1151,296,25,23,50,1246,106, + 76,77,104,3327,35,1153,32,3328,6862,27, + 30,31,1162,1215,26,28,1151,296,25,23, + 50,1246,106,76,77,110,3327,35,1153,32, + 3328,6862,27,30,31,1162,1215,26,28,1151, + 296,25,23,50,1246,106,76,77,109,3327, + 35,1153,32,3328,6862,27,30,31,1162,1215, + 26,28,1151,296,25,23,50,1246,106,76, + 77,107,3327,35,1153,32,3328,6862,27,30, + 31,1162,1215,26,28,1151,296,25,23,50, + 1246,106,76,77,105,3274,35,1153,32,3328, + 6862,27,30,31,1162,1215,26,28,1151,296, + 25,23,50,1246,86,76,77,1603,243,35, + 1892,425,4250,6862,6862,6862,6862,6862,6862,56, + 1870,6862,6862,6862,4250,4250,6862,6862,6862,2459, + 35,1892,425,1959,262,6862,6862,6862,4250,6862, + 49,6862,71,35,1892,425,379,262,6862,6862, + 6862,1845,47,6862,6862,239,249,750,6862,6862, + 262,49,6862,238,246,247,248,250,239,249, + 750,3118,1845,47,49,1857,238,246,247,248, + 250,239,249,750,6862,1845,815,6862,6862,238, + 246,247,248,250,6862,2760,875,240,242,244, + 3376,6862,251,241,243,6862,6862,6862,6862,6862, + 240,242,244,3376,6862,251,241,243,6862,6862, + 6862,6862,56,240,242,244,3376,4250,251,241, + 243,6862,3589,35,1892,425,4448,1914,6862,6125, + 6862,6862,6862,6862,6862,272,296,6862,56,379, + 1961,6862,6125,600,56,6862,6862,6862,6862,600, + 6862,6862,6862,2954,308,6125,6862,6862,6862,6862, + 6862,6862,6862,6862,3118,379,189,6862,6862,6862, + 6862,379,189,266,2350,1385,35,1153,32,4945, + 1396,27,30,31,1162,1215,375,28,546,6862, + 3118,270,264,265,6862,6862,3118,6862,2315,35, + 1153,32,4862,4220,27,30,31,1162,1215,375, + 28,3687,35,554,2285,6862,6862,2048,6862,6862, + 2549,6862,4250,6862,272,296,6862,6862,309,2956, + 6862,6862,277,280,283,627,705,440,6862,6862, + 6862,1692,6862,369,262,6862,4250,355,2291,357, + 6862,6862,351,1175,6862,6862,6862,6862,6862,6862, + 286,6862,266,6862,6862,239,249,750,262,6862, + 352,3520,357,238,246,247,248,250,6862,6862, + 270,264,265,6862,71,35,1892,425,6862,239, + 249,750,6862,6862,6862,6862,6862,238,246,247, + 248,250,6862,6862,6862,6862,6862,240,242,244, + 3376,6862,582,241,243,1781,49,6862,6862,6862, + 4250,277,280,283,627,705,6862,1845,628,6862, + 2137,240,242,244,3376,4250,581,241,243,6862, + 56,6862,262,6862,6862,600,6862,6862,6862,6862, + 6862,71,35,1892,425,6862,6862,262,6862,6862, + 6862,6862,6862,239,249,750,6862,379,189,6862, + 2887,238,246,247,248,250,221,2260,239,249, + 750,5173,4250,49,6862,6862,238,246,247,248, + 250,2226,2420,6862,1845,2569,4250,6862,6862,563, + 564,569,6862,6862,4166,240,242,244,3376,2260, + 252,241,243,5173,4250,6862,6862,6862,262,6862, + 240,242,244,3376,6862,341,241,243,6862,6862, + 6862,2956,6862,6862,6862,6862,4166,6862,56,239, + 249,750,6862,600,6862,368,6862,238,246,247, + 248,250,6862,6862,6862,6862,3745,71,35,1892, + 425,6862,6862,2956,56,379,189,6862,6862,4250, + 6862,56,6862,6862,221,4312,4250,368,6862,6862, + 396,240,242,244,3376,6862,536,241,243,49, + 2420,379,6862,6862,56,2694,3104,3121,379,600, + 1845,2701,6862,6862,6862,6862,6862,4682,6862,6862, + 6862,6862,396,6862,6862,6862,3118,6862,6862,6862, + 6862,379,189,3118,6862,6862,6862,2694,3104,3121, + 221,6862,6862,6862,6862,6862,6862,6862,6862,6862, + 544,6862,6862,6862,6862,6862,2420,597,6862,6862, + 6862,6862,6862,6862,3776,6862,6862,6862,6862,6862, + 6862,6862,6862,6862,6862,6862,6862,6862,6862,6862, + 6862,6862,6862,6862,6862,6862,6862,6862,6862,6862, + 6862,6862,6862,6862,6862,6862,6862,6862,6862,6862, + 6862,6862,6862,6862,6862,6862,6862,6862,6862,6862, + 6862,6862,6862,6862,6862,6862,6862,6862,6862,6862, + 3777,6862,0,39,6877,0,39,6876,0,1150, + 29,0,477,1213,0,491,1300,0,38,963, + 0,38,6877,0,38,6876,0,4031,126,0, + 1,481,0,495,812,0,494,880,0,1458, + 91,0,1150,424,0,35,33,0,32,34, + 0,39,963,0,1,643,0,1,7169,0, + 1,7168,0,1,7167,0,1,7166,0,1, + 7165,0,1,7164,0,1,7163,0,1,7162, + 0,1,7161,0,1,7160,0,1,7159,0, + 39,1,6877,0,39,1,6876,0,318,431, + 0,318,323,0,7130,275,0,7129,275,0, + 7236,275,0,7235,275,0,7157,275,0,7156, + 275,0,7155,275,0,7154,275,0,7153,275, + 0,7152,275,0,7151,275,0,7150,275,0, + 7169,275,0,7168,275,0,7167,275,0,7166, + 275,0,7165,275,0,7164,275,0,7163,275, + 0,7162,275,0,7161,275,0,7160,275,0, + 7159,275,0,39,6877,275,0,39,6876,275, + 0,6900,275,0,6877,48,0,6876,48,0, + 6868,1,0,6867,1,0,639,271,0,32, + 425,0,29,424,0,43,6898,0,43,37, + 0,4031,128,0,4031,127,0,1,5785,0, + 1,5435,0,1,5524,0,1,5554,0,1, + 5578,0,1,5601,0,1,5624,0,1,5647, + 0,1410,1,0,1,2235,0,1,5501,0, + 1,6884,0,1,6883,0,1,6882,0,1, + 6881,0,1,6880,0,1,6879,0,1,6878, + 0,1,642,0,1,645,0,1,972,0, + 1,978,0,1,1037,0,1,672,0,39, + 1,0,367,482,0,6900,1,0,47,37, + 0,1,92,0,6877,275,0,6876,275,0, + 538,3375,0,6900,1,263,0,39,1,263, + 0,263,453,0,6877,37,0,6876,37,0, + 6877,2,37,0,6876,2,37,0,6877,36, + 0,6876,36,0,6898,45,0,37,45,0, + 6872,442,0,6871,442,0,1,653,0,1, + 963,0,263,452,0,3111,354,0,367,95, + 0,35,73,0,1,367,0,2883,313,0, + 538,6051,0,1,263,0,263,254,0,1, + 919,0,1,956,0,263,253,0,6874,1, + 0,6870,1,0,1,263,3650,0,6871,263, + 0,3651,263,0,6874,420,0,6873,420,0, + 3661,263,0,10,12,0,8,10,12,0, + 3730,227,0,218,5239,0,3735,420,0,8, + 12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1112,350 +1389,403 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 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,0,49, - 50,51,52,53,54,0,56,57,58,59, - 60,61,62,0,64,65,66,67,0,6, - 0,71,0,3,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,0,56,57,58,59, + 0,61,62,63,0,65,66,67,0,69, + 0,1,2,73,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,0,49,50,51,52,53, - 54,69,56,57,58,59,60,61,62,0, - 64,65,66,67,0,92,93,71,4,0, + 44,45,46,47,48,49,50,51,52,53, + 86,87,56,57,58,59,0,61,62,63, + 4,65,66,67,94,69,92,93,0,73, 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, - 0,49,50,51,52,53,54,68,56,57, - 58,59,60,61,62,0,64,65,66,67, - 0,1,2,71,4,0,74,75,76,77, + 48,49,50,51,52,53,0,0,56,57, + 58,59,0,61,62,63,4,65,66,67, + 0,69,0,1,2,73,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,0,49,50,51, - 52,53,54,68,56,57,58,59,60,61, - 62,0,64,65,66,67,0,1,2,0, - 4,10,74,75,76,77,78,79,80,81, + 42,43,44,45,46,47,48,49,50,51, + 52,53,86,87,56,57,58,59,0,61, + 62,63,95,65,66,67,0,69,0,1, + 2,0,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,0,49,50,51,52,53,54,0, - 56,57,58,59,60,61,62,0,64,65, - 66,67,0,6,0,0,87,88,74,75, + 46,47,48,49,50,51,52,53,0,68, + 56,57,58,59,0,61,62,63,0,65, + 66,67,0,69,0,3,0,0,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,63,49, - 50,51,52,53,54,0,56,57,58,59, - 60,61,62,0,64,65,66,67,99,92, - 93,89,9,91,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,86,87,56,57,58,59, + 0,61,62,63,0,65,66,67,94,69, + 86,87,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,0,49,50,51,52,53, - 54,0,56,57,58,59,60,61,62,0, - 64,65,66,67,99,6,0,1,2,0, + 44,45,46,47,48,49,50,51,52,53, + 0,0,56,57,58,59,0,61,62,63, + 0,65,66,67,94,69,92,93,0,0, 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, - 0,49,50,51,52,53,54,68,56,57, - 58,59,60,61,62,0,64,65,66,67, - 5,92,93,0,1,2,74,75,76,77, + 48,49,50,51,52,53,86,87,56,57, + 58,59,0,61,62,63,95,65,66,67, + 94,69,92,93,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,0,49,50,51, - 52,53,54,0,56,57,58,59,60,61, - 62,0,64,65,66,67,0,1,2,8, - 0,5,74,75,76,77,78,79,80,81, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,0,56,57,58,59,0,61, + 62,63,0,65,66,67,0,69,0,1, + 2,5,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,71,49,50,51,52,53,54,69, - 56,57,58,59,60,61,62,0,64,65, - 66,67,0,1,2,0,4,0,74,75, + 46,47,48,49,50,51,52,53,86,87, + 56,57,58,59,0,61,62,63,4,65, + 66,67,0,69,101,102,4,95,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,0,49, - 50,51,52,53,54,68,56,57,58,59, - 60,61,62,0,64,65,66,67,0,1, - 2,0,87,88,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,0,56,57,58,59, + 0,61,62,63,0,65,66,67,0,69, + 0,1,2,0,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,0,49,50,51,52,53, - 54,0,56,57,58,59,60,61,62,0, - 64,65,66,67,0,0,1,2,87,88, + 44,45,46,47,48,49,50,51,52,53, + 86,87,56,57,58,59,0,61,62,63, + 0,65,66,67,4,69,92,93,0,0, 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, - 0,49,50,51,52,53,54,0,56,57, - 58,59,60,61,62,8,64,65,66,67, - 0,1,2,89,0,91,74,75,76,77, + 48,49,50,51,52,53,68,0,56,57, + 58,59,0,61,62,63,9,65,66,67, + 0,69,96,0,1,2,74,75,76,77, 78,79,80,81,82,83,84,85,0,1, - 2,3,4,5,6,7,0,9,10,11, + 2,3,4,5,6,7,8,40,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,0,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,0,49,50,51, - 52,53,54,0,56,57,58,4,60,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,100,118,27,28,29,30, - 31,32,33,34,35,36,0,1,2,40, - 4,5,0,7,0,0,100,48,0,1, - 2,6,4,0,9,56,57,58,59,0, - 61,62,0,0,1,2,22,23,24,0, - 71,72,28,29,30,31,32,33,34,35, - 36,22,23,24,48,86,0,28,29,30, - 31,32,33,34,35,36,48,0,0,0, - 1,2,103,104,105,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, - 0,0,27,28,29,30,31,32,33,34, - 35,36,89,0,91,40,3,48,0,6, - 0,8,9,48,68,0,1,2,96,97, - 5,56,57,58,59,0,61,62,25,26, - 27,0,1,2,0,0,71,72,3,48, - 37,38,8,0,1,2,3,4,5,6, - 7,86,9,96,97,0,0,0,55,3, - 0,1,2,48,4,5,63,7,103,104, - 105,68,69,70,71,72,73,87,88,48, - 0,1,2,3,4,5,6,7,0,9, - 87,88,89,90,91,92,93,94,95,96, - 97,98,99,100,101,70,63,73,48,106, - 107,108,109,110,111,112,113,114,115,116, - 117,118,119,120,0,0,0,3,0,4, - 6,6,8,9,9,0,0,1,2,3, - 4,5,6,7,8,9,89,0,91,25, - 26,27,72,25,26,0,1,2,22,23, - 24,37,38,27,28,29,30,31,32,33, - 34,35,36,0,1,2,3,4,5,55, - 7,8,0,0,1,2,98,63,5,63, - 7,55,68,69,70,71,72,73,63,63, - 27,0,1,2,3,4,5,6,7,73, - 9,87,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,0,0,0,3, - 106,107,108,109,110,111,112,113,114,115, - 116,117,118,119,120,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, - 0,0,27,28,29,30,31,32,33,34, - 35,36,0,1,2,40,4,0,6,0, - 0,9,0,48,0,25,26,0,8,0, - 0,56,57,58,59,8,61,62,8,64, - 0,22,23,24,87,88,71,28,29,30, - 31,32,33,34,35,36,55,27,0,1, - 2,86,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,67,0,27, - 28,29,30,31,32,33,34,35,36,70, - 73,0,40,63,0,1,2,3,4,5, - 48,7,8,25,26,0,0,55,56,57, - 58,59,0,61,62,10,64,0,1,2, - 101,27,5,0,7,0,107,108,109,110, - 111,112,113,114,115,116,117,0,86,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,59,0,27,28,29,30, - 31,32,33,34,35,36,0,1,2,40, - 68,69,6,0,0,1,2,48,4,5, - 0,7,55,68,0,56,57,58,59,0, - 61,62,8,64,98,22,23,24,0,72, - 71,28,29,30,31,32,33,34,35,36, - 55,27,23,24,48,86,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,55,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,0,56,57,58,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,0,1,2,0,4,0,40,0, + 1,2,3,4,5,6,7,8,0,1, + 2,53,0,55,56,57,58,5,0,61, + 62,63,0,1,2,3,4,0,6,71, + 8,73,5,38,7,38,0,0,1,2, + 3,4,5,6,7,8,88,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,0,0,27,28,29,30,31,32,33, - 34,35,36,0,1,2,40,0,0,1, - 2,3,4,5,48,7,0,0,0,3, - 3,0,56,57,58,59,8,61,62,8, - 64,0,1,2,3,4,5,71,7,8, - 0,1,2,0,4,0,6,55,8,9, - 120,48,86,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,0,63, - 27,28,29,30,31,32,33,34,35,36, - 0,73,71,40,63,0,1,2,3,4, - 5,48,7,0,73,60,3,0,90,56, - 57,58,59,73,61,62,0,64,0,0, - 1,2,3,4,71,6,8,0,9,0, - 90,0,1,2,3,4,5,8,7,86, + 24,25,26,27,28,29,30,31,32,33, + 71,0,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,91, + 0,99,100,0,0,40,98,0,0,1, + 2,3,4,5,6,7,8,0,53,0, + 55,56,57,58,0,64,61,62,63,68, + 0,0,0,3,0,5,71,7,73,9, + 6,22,23,24,25,26,27,28,29,30, + 31,32,33,88,0,1,2,3,4,55, + 6,54,8,0,34,35,36,37,60,0, + 40,64,3,70,0,1,2,60,70,114, + 115,116,0,9,54,0,1,2,3,4, + 60,6,0,8,64,64,89,90,68,68, + 70,71,72,73,101,102,103,104,105,106, + 107,108,109,110,111,112,86,87,0,89, + 90,91,92,93,94,95,96,97,98,99, + 100,101,102,103,104,105,106,107,108,109, + 110,111,112,69,120,60,64,117,118,119, + 120,0,34,35,3,0,5,0,7,4, + 9,0,1,2,3,4,9,6,0,8, + 0,0,1,2,3,4,5,0,7,0, + 10,4,5,91,7,34,35,36,37,0, + 98,40,3,22,23,24,25,26,27,28, + 29,30,31,32,33,54,0,1,2,54, + 4,60,0,1,2,64,4,0,6,68, + 8,70,71,72,73,0,69,59,0,1, + 2,60,71,54,6,64,8,86,87,68, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,102,103,104,105,106,107,108, + 109,110,111,112,0,1,2,55,117,118, + 119,120,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,0,0,1,2, + 3,4,40,6,0,8,0,1,2,55, + 4,5,0,7,0,53,0,55,56,57, + 58,0,0,61,62,63,4,65,7,114, + 115,116,0,1,2,73,22,23,24,25, + 26,27,28,29,30,31,32,33,0,53, + 88,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,0,70,0,0,1, + 2,40,4,0,6,91,8,4,66,67, + 0,0,98,91,53,54,55,56,57,58, + 98,0,61,62,63,22,65,101,102,103, + 104,105,106,107,108,109,110,111,112,0, + 1,2,3,4,5,6,7,8,38,88, 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,0,63,27,28,29, - 30,31,32,33,34,35,36,0,1,2, - 40,4,63,6,68,69,9,69,48,0, - 63,73,3,103,104,105,56,57,58,59, - 71,61,62,72,64,0,0,1,2,3, - 4,5,6,7,0,9,0,1,2,3, - 4,5,8,7,0,0,86,0,1,2, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,0,1,2,0,4,5, + 40,7,71,0,1,2,9,4,5,60, + 7,0,0,53,3,55,56,57,58,0, + 113,61,62,63,0,65,0,114,115,116, + 0,1,2,73,22,23,24,25,26,27, + 28,29,30,31,32,33,0,0,88,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,0,1,2,60,4,5,40, + 7,0,1,2,0,4,0,6,4,8, + 54,0,53,7,55,56,57,58,0,0, + 61,62,63,0,65,118,22,0,1,2, + 0,4,73,22,23,24,25,26,27,28, + 29,30,31,32,33,89,90,88,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,55,0,1,2,0,64,40,6, + 60,8,0,1,2,0,0,0,6,0, + 0,53,5,55,56,57,58,0,9,61, + 62,63,0,65,96,3,0,1,2,23, + 24,73,22,23,24,25,26,27,28,29, + 30,31,32,33,0,0,88,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,0,0,27,28,29,30,31,32, - 33,34,35,36,0,1,2,40,4,63, - 6,0,48,9,3,48,70,72,0,63, - 55,67,0,56,57,58,59,9,61,62, - 0,64,0,3,0,0,1,2,8,0, - 1,2,3,4,5,0,7,0,1,2, - 0,1,2,86,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,0, - 48,27,28,29,30,31,32,33,34,35, - 36,69,0,63,40,0,1,2,68,69, - 65,66,48,73,0,0,72,3,0,0, - 56,57,58,59,0,61,62,3,64,0, - 0,1,2,0,4,0,6,8,0,9, - 0,3,0,1,2,3,4,5,6,7, - 86,9,10,11,12,13,14,15,16,17, - 18,19,20,21,0,1,2,25,26,0, - 65,66,8,55,55,37,38,0,0,37, - 38,39,4,41,42,43,44,45,46,47, - 55,49,50,51,52,53,54,0,69,0, - 71,63,60,61,0,90,0,65,66,0, - 1,2,3,4,5,6,7,0,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,67,55,55,25,26,0,1,2,0, - 4,5,3,7,106,68,37,38,39,0, - 41,42,43,44,45,46,47,119,49,50, - 51,52,53,54,0,1,2,68,0,60, - 101,94,95,69,65,66,107,68,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 0,1,2,25,26,0,0,90,0,4, - 0,3,48,3,0,37,38,39,8,41, - 42,43,44,45,46,47,0,49,50,51, - 52,53,54,0,1,2,0,0,60,0, - 4,4,0,1,2,67,40,8,48,71, - 0,1,2,3,4,5,6,7,22,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,0,63,0,25,26,0,1,2, - 0,48,8,73,4,0,72,37,38,39, - 48,41,42,43,44,45,46,47,72,49, - 50,51,52,53,54,0,0,0,0,3, - 60,0,73,8,6,65,66,0,1,2, - 3,4,5,6,7,48,9,10,11,12, - 13,14,15,16,17,18,19,20,21,103, - 104,105,25,26,0,0,0,73,63,0, - 0,0,0,8,37,38,39,8,41,42, - 43,44,45,46,47,0,49,50,51,52, - 53,54,27,0,0,0,27,60,73,4, - 0,70,65,66,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,55,55,0,25, - 26,3,68,39,69,0,70,0,3,68, - 0,37,38,39,4,41,42,43,44,45, - 46,47,0,49,50,51,52,53,54,74, - 0,0,22,70,60,94,95,0,0,69, - 10,67,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,0,0,0,25,26,0, - 40,0,3,0,0,10,0,55,48,37, - 38,39,0,41,42,43,44,45,46,47, - 68,49,50,51,52,53,54,0,0,0, - 0,3,60,5,6,40,69,9,8,67, - 0,0,0,48,4,0,94,95,0,4, - 0,55,0,25,26,3,55,27,55,55, - 0,55,0,3,70,37,38,0,39,41, - 3,0,0,0,0,3,3,3,0,0, - 0,3,55,55,72,0,0,0,3,3, - 0,63,0,65,66,55,68,69,70,0, - 55,0,0,0,0,0,0,0,0,0, - 0,70,70,0,0,87,88,89,70,69, - 92,93,94,95,96,97,98,99,100,101, - 0,69,0,0,106,0,108,109,110,111, - 112,113,114,115,116,117,0,1,2,3, + 23,24,25,26,27,28,29,30,31,32, + 33,72,60,0,0,68,64,40,5,0, + 68,0,66,67,0,86,87,3,54,54, + 53,96,55,56,57,58,99,100,61,62, + 63,0,65,22,23,24,25,26,27,28, + 29,30,31,32,33,0,1,2,3,4, + 5,0,7,89,90,88,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,55,70, - 0,25,26,102,72,72,72,90,70,70, - 75,102,102,37,38,39,0,41,42,43, - 44,45,46,47,102,49,50,51,52,53, - 54,0,1,2,3,4,5,6,7,39, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,0,0,25,26,121,0, - 0,0,0,0,0,0,0,0,37,38, - 39,0,41,42,43,44,45,46,47,0, - 49,50,51,52,53,54,0,0,0,0, - 0,60,0,0,118,0,1,2,3,4, - 5,6,7,0,9,10,11,12,13,14, - 15,16,17,18,19,20,21,0,0,0, - 25,26,0,0,0,0,0,0,0,0, - 0,0,37,38,39,0,41,42,43,44, - 45,46,47,0,49,50,51,52,53,54, - 0,1,2,3,4,5,6,7,63,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,0,0,0,25,26,0,0,0, - 0,0,0,0,0,0,0,37,38,39, - 0,41,42,43,44,45,46,47,0,49, - 50,51,52,53,54,0,0,0,0,0, - 60,0,1,2,3,4,5,6,7,0, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,0,0,25,26,0,0, - 0,0,0,0,0,0,0,0,37,38, - 39,0,41,42,43,44,45,46,47,0, - 49,50,51,52,53,54,0,1,2,3, - 4,5,6,7,0,9,10,11,12,13, - 14,15,16,17,18,19,20,21,0,0, - 0,25,26,0,0,0,0,0,0,0, - 0,0,0,37,38,39,0,41,42,43, - 44,45,46,47,0,49,50,51,52,53, - 54,0,1,2,3,4,5,6,7,0, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,0,0,25,26,0,0, - 0,0,0,0,0,0,0,0,37,38, - 39,0,41,42,43,44,45,46,47,0, - 49,50,51,52,53,54,0,1,2,0, - 4,0,0,0,0,0,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,0,0,0,28,29,30,31,32,33, - 34,35,36,0,0,0,40,0,0,0, - 0,0,0,0,0,0,1,2,0,4, - 0,0,56,57,58,10,11,12,13,14, + 24,25,26,27,28,29,30,31,32,33, + 0,1,2,0,4,64,40,0,0,0, + 0,0,99,100,0,60,9,3,9,53, + 9,55,56,57,58,64,0,61,62,63, + 0,65,22,23,24,25,26,27,28,29, + 30,31,32,33,0,1,2,40,4,40, + 6,40,8,0,88,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, - 0,0,0,28,29,30,31,32,33,34, - 35,36,0,0,0,40,0,1,2,3, - 4,5,6,7,8,9,0,0,0,0, - 0,56,57,58,0,0,0,0,22,23, - 24,0,0,27,28,29,30,31,32,33, - 34,35,36,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,0,0,0, - 28,29,30,31,32,33,34,35,36,63, - 0,0,0,0,0,0,0,0,0,73, + 25,26,27,28,29,30,31,32,33,0, + 1,2,0,4,5,40,7,0,9,55, + 0,1,2,95,7,0,0,54,53,0, + 55,56,57,58,9,9,61,62,63,0, + 65,0,1,2,3,4,5,6,7,8, + 0,10,11,12,13,14,15,16,17,18, + 19,20,21,88,0,1,2,3,4,0, + 6,0,8,9,3,34,35,36,37,38, + 39,72,41,42,43,44,45,46,47,48, + 49,50,51,52,0,1,2,72,72,5, + 59,0,0,62,40,3,97,66,67,0, + 1,2,3,4,5,6,7,8,0,10, + 11,12,13,14,15,16,17,18,19,20, + 21,0,1,2,3,4,97,6,0,8, + 9,70,113,34,35,36,37,38,39,55, + 41,42,43,44,45,46,47,48,49,50, + 51,52,0,1,2,0,0,0,59,0, + 3,40,54,64,9,66,67,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 34,35,3,34,35,0,1,2,0,1, + 2,34,35,36,37,38,39,55,41,42, + 43,44,45,46,47,48,49,50,51,52, + 0,1,2,68,96,0,59,72,0,0, + 0,0,7,0,3,0,69,9,9,9, + 73,0,1,2,3,4,5,6,7,8, + 55,10,11,12,13,14,15,16,17,18, + 19,20,21,0,1,2,0,0,0,6, + 40,0,0,0,3,34,35,36,37,38, + 39,0,41,42,43,44,45,46,47,48, + 49,50,51,52,0,1,2,68,68,64, + 59,73,73,0,71,0,3,66,67,0, + 1,2,3,4,5,6,7,8,55,10, + 11,12,13,14,15,16,17,18,19,20, + 21,60,0,0,0,54,64,64,71,0, + 0,9,9,34,35,36,37,38,39,55, + 41,42,43,44,45,46,47,48,49,50, + 51,52,0,1,2,0,0,0,59,3, + 89,90,0,0,9,66,67,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,60, + 0,69,97,0,70,72,3,0,0,0, + 70,34,35,36,37,38,39,55,41,42, + 43,44,45,46,47,48,49,50,51,52, + 97,64,0,1,2,0,59,0,73,0, + 0,0,70,3,71,0,69,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,60, + 0,1,2,0,74,0,3,0,5,6, + 7,34,35,36,37,38,39,55,41,42, + 43,44,45,46,47,48,49,50,51,52, + 60,0,1,2,0,60,59,34,35,36, + 37,70,39,0,0,0,69,0,3,0, + 3,113,0,9,9,55,0,54,0,54, + 0,54,0,60,0,3,97,64,10,66, + 67,68,0,70,22,23,24,25,26,27, + 28,29,30,31,32,33,55,0,54,86, + 87,0,89,90,91,92,93,94,95,96, + 0,10,99,100,101,60,103,104,105,106, + 107,108,109,110,111,112,72,72,54,61, + 117,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,0,53,0,55,0,0,4, + 0,0,4,3,54,34,35,36,37,38, + 39,10,41,42,43,44,45,46,47,48, + 49,50,51,52,0,1,2,3,4,5, + 6,7,8,0,10,11,12,13,14,15, + 16,17,18,19,20,21,0,54,0,54, + 113,54,54,0,53,9,55,64,34,35, + 36,37,38,39,0,41,42,43,44,45, + 46,47,48,49,50,51,52,0,0,0, + 0,0,89,90,3,0,9,0,55,118, + 66,67,0,1,2,3,4,5,6,7, + 8,0,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,68,0,72,55, + 0,0,0,0,71,0,34,35,36,37, + 38,39,54,41,42,43,44,45,46,47, + 48,49,50,51,52,0,0,68,68,71, + 73,59,0,1,2,3,4,5,6,7, + 8,0,10,11,12,13,14,15,16,17, + 18,19,20,21,54,54,54,54,0,54, + 0,0,0,0,64,71,34,35,36,37, + 38,39,75,41,42,43,44,45,46,47, + 48,49,50,51,52,0,121,0,3,89, + 90,0,60,0,1,2,3,4,5,6, + 7,8,0,10,11,12,13,14,15,16, + 17,18,19,20,21,54,0,0,0,0, + 3,3,3,0,0,64,68,34,35,36, + 37,38,39,70,41,42,43,44,45,46, + 47,48,49,50,51,52,0,0,0,3, + 89,90,59,0,1,2,3,4,5,6, + 7,8,71,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,54,0, + 3,0,0,0,68,0,0,34,35,36, + 37,38,39,70,41,42,43,44,45,46, + 47,48,49,50,51,52,0,0,0,0, + 0,0,59,0,1,2,3,4,5,6, + 7,8,0,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,0,0, + 0,0,0,0,0,70,70,34,35,36, + 37,38,39,71,41,42,43,44,45,46, + 47,48,49,50,51,52,0,0,0,0, + 0,0,59,0,1,2,3,4,5,6, + 7,8,71,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,0,0, + 0,0,0,0,0,70,70,34,35,36, + 37,38,39,0,41,42,43,44,45,46, + 47,48,49,50,51,52,0,1,2,3, + 4,5,6,7,8,0,10,11,12,13, + 14,15,16,17,18,19,20,21,0,0, + 0,0,0,0,0,0,0,0,0,0, + 34,35,36,37,38,39,0,41,42,43, + 44,45,46,47,48,49,50,51,52,0, + 1,2,3,4,5,6,7,8,0,10, + 11,12,13,14,15,16,17,18,19,20, + 21,0,0,0,0,0,0,0,0,0, + 0,0,0,34,35,36,37,38,39,0, + 41,42,43,44,45,46,47,48,49,50, + 51,52,0,1,2,3,4,5,6,7, + 8,0,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,0,0,0, + 0,0,0,0,0,0,34,35,36,37, + 38,39,0,41,42,43,44,45,46,47, + 48,49,50,51,52,0,1,2,3,4, + 5,6,7,8,0,10,11,12,13,14, + 15,16,17,18,19,20,21,0,0,0, + 0,0,0,0,0,0,9,0,0,34, + 35,36,37,38,39,0,41,42,43,44, + 45,46,47,48,49,50,51,52,0,1, + 2,0,4,0,0,0,0,0,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,0,0,0,0,0,0,0,72, + 0,0,0,0,0,0,0,0,0,1, + 2,53,4,0,56,57,58,0,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,2, + 0,53,0,0,56,57,58,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,2,0, + 53,0,0,56,57,58,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 0,0,0,0,1,2,3,4,5,6, + 7,8,9,0,0,0,0,3,0,53, + 0,0,56,57,58,22,23,24,25,26, + 27,28,29,30,31,32,33,0,0,1, + 2,3,4,40,6,0,8,9,3,0, + 36,37,0,0,9,0,0,54,0,0, + 0,0,0,60,0,1,2,3,4,5, + 6,7,8,9,60,72,0,0,0,0, + 0,0,0,0,0,0,22,23,24,25, + 26,27,28,29,30,31,32,33,60,0, + 0,0,0,0,40,60,0,0,0,64, + 72,0,0,68,0,0,0,72,0,0, + 0,0,0,0,60,0,0,0,0,0, + 0,117,0,119,0,0,72,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 0,1,2,3,4,5,0,7,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,22,23,24,25,26,27,28,29, + 30,31,32,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, + 60,0,0,0,64,0,0,0,68,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,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; @@ -1463,346 +1793,401 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface TermAction { public final static char termAction[] = {0, - 5443,5405,5384,5384,5384,5384,5384,5384,5421,5384, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5409,1,1, + 6862,6824,6803,6803,6803,6803,6803,6803,6803,6840, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,334,1,1,1,2742, - 1,5618,1912,115,3667,1,1,5454,399,3749, - 5443,5450,157,4743,1094,4101,3562,2206,3506,3893, - 3208,4008,601,3985,2767,3962,10,5424,5424,5424, - 5424,5424,5424,5424,5424,5424,5424,5424,5424,5424, - 5424,5424,5424,5424,5424,5424,5424,5424,5424,5424, - 5424,5424,5424,5424,5424,5424,5424,5424,5424,5424, - 5424,5424,5424,5424,5424,5424,5424,5424,5424,5424, - 5424,5424,5424,5424,300,5424,5424,5424,5424,5424, - 5424,1478,5424,5424,5424,5424,5424,5424,5424,388, - 5424,5424,5424,5424,39,3724,3699,5424,5481,5443, - 5424,5424,5424,5424,5424,5424,5424,5424,5424,5424, - 5424,5424,8,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, - 5443,5427,5427,5427,5427,5427,5427,3051,5427,5427, - 5427,5427,5427,5427,5427,5443,5427,5427,5427,5427, - 290,5177,5177,5427,285,5443,5427,5427,5427,5427, - 5427,5427,5427,5427,5427,5427,5427,5427,5443,5405, - 5384,5384,5384,5384,5384,5384,5412,5384,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5409,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5443,1,1,1, - 1,1,1,3111,1,1,1,2742,1,5618, - 1912,304,3667,1,1,5454,5443,5079,5076,121, - 5481,5746,1094,4101,3562,2206,3506,3893,3208,4008, - 601,3985,2767,3962,5443,5405,5384,5384,5384,5384, - 5384,5384,5412,5384,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5409,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5443,1,1,1,1,1,1,135, - 1,1,1,2742,1,5618,1912,117,3667,1, - 1,5454,111,3749,5443,462,2900,2927,1094,4101, - 3562,2206,3506,3893,3208,4008,601,3985,2767,3962, - 5443,5405,5384,5384,5384,5384,5384,5384,5412,5384, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5409,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5106,1, - 1,1,1,1,1,136,1,1,1,2742, - 1,5618,1912,131,3667,1,1,5454,2328,3724, - 3699,3958,2393,3981,1094,4101,3562,2206,3506,3893, - 3208,4008,601,3985,2767,3962,5443,5405,5384,5384, - 5384,5384,5384,5384,5412,5384,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5409,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5443,1,1,1,1,1, - 1,5443,1,1,1,2742,1,5618,1912,116, - 3667,1,1,5454,2328,3749,5443,5457,5458,5443, - 1094,4101,3562,2206,3506,3893,3208,4008,601,3985, - 2767,3962,5443,5405,5384,5384,5384,5384,5384,5384, - 5412,5384,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5409, + 6828,1,1,1,1,1,1,1,1,1, + 1,1,1,1,121,1,1,1,1,1, + 133,2753,7070,2290,129,3567,1,1,367,6873, + 6862,6876,6877,6869,980,3658,3062,3270,2180,3649, + 4730,3657,1508,3656,3886,3655,10,6843,6843,6843, + 6843,6843,6843,6843,6843,6843,6843,6843,6843,6843, + 6843,6843,6843,6843,6843,6843,6843,6843,6843,6843, + 6843,6843,6843,6843,6843,6843,6843,6843,6843,6843, + 6843,6843,6843,6843,6843,6843,6843,6843,6843,6843, + 6843,6843,6843,6843,6843,6843,6843,6843,6843,6843, + 4322,4421,6843,6843,6843,6843,39,6843,6843,6843, + 6900,6843,6843,6843,3582,6843,3779,3747,432,6843, + 6843,6843,6843,6843,6843,6843,6843,6843,6843,6843, + 6843,6843,8,6846,6846,6846,6846,6846,6846,6846, + 6846,6846,6846,6846,6846,6846,6846,6846,6846,6846, + 6846,6846,6846,6846,6846,6846,6846,6846,6846,6846, + 6846,6846,6846,6846,6846,6846,6846,6846,6846,6846, + 6846,6846,6846,6846,6846,6846,6846,6846,6846,6846, + 6846,6846,6846,6846,6846,6846,125,135,6846,6846, + 6846,6846,6862,6846,6846,6846,1320,6846,6846,6846, + 333,6846,6862,6607,6604,6846,6846,6846,6846,6846, + 6846,6846,6846,6846,6846,6846,6846,6846,6862,6824, + 6803,6803,6803,6803,6803,6803,6803,6831,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5443,1,1,1,1,1,1,3123,1,1, - 1,2742,1,5618,1912,5443,3667,1,1,5454, - 2780,3724,3699,5443,5263,5260,1094,4101,3562,2206, - 3506,3893,3208,4008,601,3985,2767,3962,5443,5405, - 5384,5384,5384,5384,5384,5384,5412,5384,1,1, + 1,1,1,1,1,1,1,1,6828,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5409,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5443,1,1,1, - 1,1,1,5443,1,1,1,2742,1,5618, - 1912,5443,3667,1,1,5454,5443,5457,5458,5451, - 519,2780,1094,4101,3562,2206,3506,3893,3208,4008, - 601,3985,2767,3962,5443,5405,5384,5384,5384,5384, - 5384,5384,5412,5384,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5409,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5450,1,1,1,1,1,1,891, - 1,1,1,2742,1,5618,1912,5443,3667,1, - 1,5454,5443,5079,5076,125,5481,5443,1094,4101, - 3562,2206,3506,3893,3208,4008,601,3985,2767,3962, - 5443,5405,5384,5384,5384,5384,5384,5384,5412,5384, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5409,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5443,1, - 1,1,1,1,1,3133,1,1,1,2742, - 1,5618,1912,5443,3667,1,1,5454,48,5263, - 5260,124,2900,2927,1094,4101,3562,2206,3506,3893, - 3208,4008,601,3985,2767,3962,5443,5405,5384,5384, - 5384,5384,5384,5384,5412,5384,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5409,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5443,1,1,1,1,1, - 1,5443,1,1,1,2742,1,5618,1912,5443, - 3667,1,1,5454,114,401,5457,5458,2900,2927, - 1094,4101,3562,2206,3506,3893,3208,4008,601,3985, - 2767,3962,5443,3916,1,1,1,1,1,1, - 3939,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5452, + 1,1,4322,4421,1,1,1,1,421,2753, + 7070,2290,3490,3567,1,1,6862,6873,48,6607, + 6604,190,980,3658,3062,3270,2180,3649,4730,3657, + 1508,3656,3886,3655,6862,6824,6803,6803,6803,6803, + 6803,6803,6803,6831,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5443,1,1,1,1,1,1,5443,1,1, - 1,2742,1,5618,1912,5447,3667,1,1,5454, - 36,5339,5336,3958,137,3981,1094,4101,3562,2206, - 3506,3893,3208,4008,601,3985,2767,3962,39,5079, - 5076,3187,634,3774,3843,3302,138,3866,803,5709, - 5707,5716,5715,5711,5712,5710,5713,5714,5717,5708, - 5704,5783,5784,3820,3797,5443,5698,5705,5701,5677, - 5703,5702,5699,5700,5678,3912,3889,5462,5845,2828, - 581,995,5464,926,4077,955,5443,5465,5463,575, - 5459,5460,5461,5443,2705,5846,5847,873,1434,5443, - 5315,5315,230,5311,230,230,230,5319,230,1, + 1,1,1,1,6828,1,1,1,1,1, + 1,1,1,1,1,1,1,1,124,1577, + 1,1,1,1,134,2753,7070,2290,6862,3567, + 1,1,6862,6873,123,5948,122,6862,980,3658, + 3062,3270,2180,3649,4730,3657,1508,3656,3886,3655, + 6862,6824,6803,6803,6803,6803,6803,6803,6803,6831, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2293,5446,230,1,1,1, - 1,1,1,1,1,1,5443,5079,5076,1, - 634,5124,5443,3302,225,5443,2293,5308,398,5174, - 5174,1544,285,113,1335,1,1,1,3106,226, - 5859,788,129,300,5457,5458,5704,5783,5784,5443, - 420,230,5698,5705,5701,5677,5703,5702,5699,5700, - 5678,5704,5783,5784,2527,5947,5443,5698,5705,5701, - 5677,5703,5702,5699,5700,5678,285,130,5443,5443, - 8788,8788,5882,5883,5884,5443,5315,5315,230,5311, - 230,230,230,5363,230,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 123,37,230,1,1,1,1,1,1,1, - 1,1,3958,33,3981,1,5118,5479,5443,5118, - 5443,5118,5118,5308,5959,37,5302,5302,2452,2423, - 5302,1,1,1,3106,5443,5859,788,5118,5118, - 5118,43,5284,5284,1,314,419,230,2996,5479, - 5118,5118,161,348,5079,5076,587,634,624,334, - 3302,5947,334,2452,2423,5443,5443,112,5118,4104, - 5443,5079,5076,2793,634,5124,5118,3302,5882,5883, - 5884,5118,5118,5118,5118,5118,5118,2900,2927,5281, - 5443,5167,5163,606,5171,624,5375,3302,133,5375, - 5118,5118,5118,5118,5118,5118,5118,5118,5118,5118, - 5118,5118,5118,5118,5118,1156,1061,161,2955,5118, - 5118,5118,5118,5118,5118,5118,5118,5118,5118,5118, - 5118,5118,5118,5118,5443,39,461,5121,118,5481, - 5121,334,5121,5121,334,351,29,391,391,5278, - 391,391,5278,391,5278,5278,3958,5443,3981,5121, - 5121,5121,1243,3160,3077,294,5457,5458,391,391, - 391,5121,5121,5278,391,391,391,391,391,391, - 391,391,391,1,5167,5163,5354,5171,5360,5121, - 5357,5453,5443,38,5097,5094,2361,5121,5091,5109, - 3302,5082,5121,5121,5121,5121,5121,5121,1061,5278, - 5452,312,5167,5163,606,5171,624,5375,3302,5278, - 5375,5121,5121,5121,5121,5121,5121,5121,5121,5121, - 5121,5121,5121,5121,5121,5121,91,122,5443,5112, - 5121,5121,5121,5121,5121,5121,5121,5121,5121,5121, - 5121,5121,5121,5121,5121,5443,5384,5384,230,5384, - 230,230,230,5387,230,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 120,5443,230,1,1,8845,1,1,1,1, - 1,1,448,1,1,1,1,5443,5103,227, - 5443,5103,5443,5381,5443,3160,3077,5443,5455,139, - 409,1,1,1,3386,5449,5655,1912,5348,3667, - 100,5704,5783,5784,2900,2927,221,5698,5705,5701, - 5677,5703,5702,5699,5700,5678,4204,5351,5443,8720, - 8715,5947,5443,5384,5384,230,5384,230,230,230, - 230,230,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5454,119,230, - 1,1,8845,1,1,1,1,1,1,1951, - 5448,5443,1,4457,1,5167,5163,606,5171,624, - 5381,3302,312,3160,3077,304,134,3488,1,1, - 1,3386,5443,5655,1912,5746,3667,5443,5457,5458, - 2254,312,624,5443,3302,5443,2522,1908,1865,1822, - 1779,1736,1693,1650,1607,1564,1521,29,5947,5443, - 5384,5384,230,5384,230,230,230,5396,230,1, + 6828,1,1,1,1,1,1,1,1,1, + 1,1,1,1,4322,4421,1,1,1,1, + 153,2753,7070,2290,130,3567,1,1,3582,6873, + 4322,4421,4322,4421,980,3658,3062,3270,2180,3649, + 4730,3657,1508,3656,3886,3655,6862,6824,6803,6803, + 6803,6803,6803,6803,6803,6831,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3329,5443,230,1,1,8845, - 1,1,1,1,1,1,37,5302,5302,1, - 4447,3495,334,228,5443,5079,5076,5381,634,624, - 5443,3302,1513,5888,5443,1,1,1,3386,339, - 5655,1912,5453,3667,2361,5704,5783,5784,5443,428, - 220,5698,5705,5701,5677,5703,5702,5699,5700,5678, - 4207,5452,5783,5784,5479,5947,5443,5384,5384,230, - 5384,230,230,230,5387,230,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5443,5443,230,1,1,8845,1,1,1, - 1,1,1,37,5302,5302,1,5443,1,5167, - 5163,606,5171,624,5381,3302,350,238,1,1728, - 5272,1,1,1,1,3386,366,5655,1912,5402, - 3667,1,5167,5163,587,5171,624,221,3302,5266, - 1,5299,5299,5443,5296,537,334,4756,366,334, - 5075,2594,5947,5443,5384,5384,230,5384,230,230, - 230,5387,230,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5443,1061, - 230,1,1,8845,1,1,1,1,1,1, - 443,366,5450,1,1061,334,5079,5076,606,634, - 624,5381,3302,321,5269,3801,5366,5443,366,1, - 1,1,3386,366,5655,1912,5443,3667,5443,348, - 39,39,3487,5481,221,334,5449,323,334,8, - 366,1,5167,5163,606,5171,624,5440,3302,5947, - 5443,5384,5384,230,5384,230,230,230,230,230, + 1,1,1,1,1,1,6828,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5443,1061,230,1,1, - 8845,1,1,1,1,1,1,449,39,39, - 1,5481,1061,5293,4231,3495,5293,4888,5381,1, - 1061,5448,4866,5882,5883,5884,1,1,1,3386, - 5440,5655,1912,1243,3667,5443,370,5167,5163,587, - 5171,624,1,3302,1,1,1,5167,5163,587, - 5171,624,5399,3302,47,5443,5947,5443,5384,5384, - 230,5384,230,230,230,230,230,1,1,1, + 141,136,1,1,1,1,154,2753,7070,2290, + 149,3567,1,1,3617,6873,3779,3747,145,6862, + 980,3658,3062,3270,2180,3649,4730,3657,1508,3656, + 3886,3655,6862,6824,6803,6803,6803,6803,6803,6803, + 6803,6831,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5443,5443,230,1,1,8845,1,1, - 1,1,1,1,92,1,1,1,1,1061, - 5305,5443,2245,5305,3342,5381,1287,1994,132,1061, - 4822,5454,365,1,1,1,3386,2393,5655,1912, - 1,3667,5443,3487,5443,5443,5457,5458,344,1, - 5167,5163,5354,5171,5360,5443,5357,5443,8720,8715, - 293,935,935,5947,5443,5384,5384,230,5384,230, - 230,230,230,230,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5443, - 3529,230,1,1,8845,1,1,1,1,1, - 1,3440,5443,1061,1,5443,5263,5260,344,344, - 3935,619,5381,344,5443,361,5848,4102,29,444, - 1,1,1,3386,5443,5655,1912,4119,3667,5443, - 95,39,39,5443,5481,458,5369,5451,75,5369, - 5443,4105,5443,1,1,1,1,1,1,1, - 5947,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5443,5457,5458,1,1,139, - 3935,619,5455,5082,5085,5505,5506,126,400,1, - 1,1,391,1,1,1,1,1,1,1, - 5088,1,1,1,1,1,1,5443,1016,5443, - 5450,1149,1,5984,287,5803,5443,1,1,1, - 5167,5163,3187,5171,3774,3843,3302,1,3866,5127, - 5154,5160,5133,5136,5148,5145,5151,5142,5139,5130, - 5157,5454,2664,1513,3820,3797,5443,5079,5076,5443, - 634,624,4221,3302,810,5100,3912,3889,5462,5443, - 2828,581,995,5464,926,4077,955,951,5465,5463, - 575,5459,5460,5461,5443,5325,5322,5902,5443,1434, - 2254,2566,2494,5729,39,39,2522,520,39,5079, - 5076,3187,634,3774,3843,3302,5437,3866,731,5709, - 5707,5716,5715,5711,5712,5710,5713,5714,5717,5708, - 5443,5332,5328,3820,3797,5443,5443,5805,5443,2739, - 1,4140,5479,3487,432,3912,3889,5462,5266,2828, - 581,995,5464,926,4077,955,452,5465,5463,575, - 5459,5460,5461,45,5345,5345,39,399,1434,1, - 5481,392,5443,5325,5322,5418,4519,5449,5479,5450, - 141,5079,5076,3187,634,3774,3843,3302,2416,3866, - 731,5709,5707,5716,5715,5711,5712,5710,5713,5714, - 5717,5708,5443,1061,1,3820,3797,37,5302,5302, - 5443,5342,533,5269,621,99,4352,3912,3889,5462, - 5479,2828,581,995,5464,926,4077,955,2559,5465, - 5463,575,5459,5460,5461,1,5443,5443,5443,4377, - 1434,373,5448,163,1630,39,39,1,5167,5163, - 3187,5171,3774,3843,3302,5479,3866,5127,5154,5160, - 5133,5136,5148,5145,5151,5142,5139,5130,5157,5882, - 5883,5884,3820,3797,5443,5443,371,533,1104,1, - 5443,128,391,5453,3912,3889,5462,5453,2828,581, - 995,5464,926,4077,955,1,5465,5463,575,5459, - 5460,5461,5452,295,5443,5443,5452,1434,163,672, - 293,1342,39,39,39,5079,5076,3187,634,3774, - 3843,3302,5415,3866,731,5709,5707,5716,5715,5711, - 5712,5710,5713,5714,5717,5708,2664,5115,103,3820, - 3797,4378,3603,1235,4050,5443,1391,5443,3117,5287, - 39,3912,3889,5462,5481,2828,581,995,5464,926, - 4077,955,127,5465,5463,575,5459,5460,5461,3340, - 1,5443,3537,2080,1434,2566,2494,430,5443,8155, - 5390,5418,39,5079,5076,3187,634,3774,3843,3302, - 5415,3866,731,5709,5707,5716,5715,5711,5712,5710, - 5713,5714,5717,5708,424,1,5443,3820,3797,280, - 5393,5443,5378,399,73,5390,5443,2664,3753,3912, - 3889,5462,5443,2828,581,995,5464,926,4077,955, - 5290,5465,5463,575,5459,5460,5461,5443,1,5443, - 1,645,1434,5916,5910,5393,1103,5914,191,5418, - 48,35,512,3753,5458,48,2566,2494,510,5457, - 453,1513,5443,5908,5909,3691,3488,191,1513,5372, - 5443,3292,311,4488,2167,5939,5940,5443,3464,5917, - 600,5443,5443,5443,5443,4827,4860,4437,5443,378, - 526,4861,3517,5919,2119,5443,5443,1,3416,4679, - 5443,665,525,1888,1955,5458,5920,5941,5918,5443, - 5457,5443,5443,5443,5443,194,5443,185,5443,514, - 5443,3578,4875,2,5443,5930,5929,5942,4881,3047, - 5911,5912,5935,5936,5933,5934,5913,5915,5937,5938, - 5443,4064,5443,5443,5943,5443,5923,5924,5925,5921, - 5922,5931,5932,5927,5926,5928,39,5079,5076,3187, - 634,3774,3843,3302,5447,3866,731,5709,5707,5716, - 5715,5711,5712,5710,5713,5714,5717,5708,37,3578, - 1,3820,3797,4118,3246,3284,3322,4322,2037,2607, - 5431,4118,1,3912,3889,5462,5443,2828,581,995, - 5464,926,4077,955,4118,5465,5463,575,5459,5460, - 5461,39,5079,5076,3187,634,3774,3843,3302,3648, - 3866,731,5709,5707,5716,5715,5711,5712,5710,5713, - 5714,5717,5708,5443,5443,5443,3820,3797,5434,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,3912,3889, - 5462,5443,2828,581,995,5464,926,4077,955,5443, - 5465,5463,575,5459,5460,5461,5443,5443,5443,5443, - 5443,1434,5443,5443,5446,39,5079,5076,3187,634, - 3774,3843,3302,5443,3866,731,5709,5707,5716,5715, - 5711,5712,5710,5713,5714,5717,5708,5443,5443,5443, - 3820,3797,5443,5443,5443,5443,5443,5443,5443,5443, - 5443,5443,3912,3889,5462,5443,2828,581,995,5464, - 926,4077,955,5443,5465,5463,575,5459,5460,5461, - 39,5079,5076,3187,634,3774,3843,3302,1382,3866, - 731,5709,5707,5716,5715,5711,5712,5710,5713,5714, - 5717,5708,5443,5443,5443,3820,3797,5443,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,3912,3889,5462, - 5443,2828,581,995,5464,926,4077,955,5443,5465, - 5463,575,5459,5460,5461,5443,5443,5443,5443,5443, - 1434,39,5079,5076,4755,634,3774,3843,3302,5443, - 3866,731,5709,5707,5716,5715,5711,5712,5710,5713, - 5714,5717,5708,5443,5443,5443,3820,3797,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,3912,3889, - 5462,5443,2828,581,995,5464,926,4077,955,5443, - 5465,5463,575,5459,5460,5461,39,5079,5076,3187, - 634,3774,3843,3302,5443,3866,731,5709,5707,5716, - 5715,5711,5712,5710,5713,5714,5717,5708,5443,5443, - 5443,3820,3797,5443,5443,5443,5443,5443,5443,5443, - 5443,5443,5443,3912,3889,5462,5443,2828,581,995, - 5464,926,4077,955,5443,5465,5463,575,5459,5460, - 5461,39,5079,5076,3187,634,3774,3843,3302,5443, - 3866,731,5709,5707,5716,5715,5711,5712,5710,5713, - 5714,5717,5708,5443,5443,5443,3820,3797,5443,5443, - 5443,5443,5443,5443,5443,5443,5443,5443,3912,3889, - 5462,5443,2828,581,995,5464,926,4077,955,5443, - 5465,5463,575,5459,5460,5461,5443,5079,5076,5443, - 5481,5443,5443,5443,5443,5443,684,5709,5707,5716, - 5715,5711,5712,5710,5713,5714,5717,5708,5704,5783, - 5784,5443,5443,5443,5698,5705,5701,5677,5703,5702, - 5699,5700,5678,5443,5443,5443,5845,5443,5443,5443, - 5443,5443,5443,5443,5443,242,5253,5249,5443,5257, - 5443,5443,2705,5846,5847,684,5240,5246,5219,5222, - 5234,5231,5237,5228,5225,5216,5243,5195,5189,5186, - 5443,5443,5443,5213,5192,5204,5183,5198,5201,5210, - 5207,5180,5443,5443,5443,5845,32,392,392,5275, - 392,392,5275,392,5275,5275,5443,5443,5443,5443, - 5443,2705,5846,5847,5443,5443,5443,5443,392,392, - 392,5443,224,5275,392,392,392,392,392,392, - 392,392,392,5709,5707,5716,5715,5711,5712,5710, - 5713,5714,5717,5708,5704,5783,5784,5443,5443,5443, - 5698,5705,5701,5677,5703,5702,5699,5700,5678,5275, - 5443,5443,5443,5443,5443,5443,5443,5443,5443,5275 + 1,1,1,1,1,1,1,1,1,1, + 1,1,6828,1,1,1,1,1,1,1, + 1,1,1,1,1,1,4322,4421,1,1, + 1,1,6862,2753,7070,2290,3490,3567,1,1, + 3617,6873,3851,3811,4322,4421,980,3658,3062,3270, + 2180,3649,4730,3657,1508,3656,3886,3655,6862,6824, + 6803,6803,6803,6803,6803,6803,6803,6831,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,6828,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,144,139,1,1,1,1,6862,2753, + 7070,2290,155,3567,1,1,6862,6873,434,6876, + 6877,1800,980,3658,3062,3270,2180,3649,4730,3657, + 1508,3656,3886,3655,6862,6824,6803,6803,6803,6803, + 6803,6803,6803,6831,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,6828,1,1,1,1,1, + 1,1,1,1,1,1,1,1,4322,4421, + 1,1,1,1,6862,2753,7070,2290,2284,3567, + 1,1,432,6873,1079,3893,425,3526,980,3658, + 3062,3270,2180,3649,4730,3657,1508,3656,3886,3655, + 6862,6824,6803,6803,6803,6803,6803,6803,6803,6831, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 6828,1,1,1,1,1,1,1,1,1, + 1,1,1,1,142,6862,1,1,1,1, + 6862,2753,7070,2290,150,3567,1,1,6862,6873, + 36,6761,6758,6862,980,3658,3062,3270,2180,3649, + 4730,3657,1508,3656,3886,3655,6862,6824,6803,6803, + 6803,6803,6803,6803,6803,6831,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,6828,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 4322,4421,1,1,1,1,137,2753,7070,2290, + 6862,3567,1,1,1118,6873,3851,3811,552,6862, + 980,3658,3062,3270,2180,3649,4730,3657,1508,3656, + 3886,3655,6862,3650,1,1,1,1,1,1, + 1,3651,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,6871,1,1,1,1,1,1,1, + 1,1,1,1,1,1,994,442,1,1, + 1,1,6862,2753,7070,2290,6770,3567,1,1, + 6862,6873,3396,6862,10586,10586,980,3658,3062,3270, + 2180,3649,4730,3657,1508,3656,3886,3655,39,6426, + 6423,5019,1410,5578,5501,5601,2235,6773,1262,7161, + 7159,7168,7167,7163,7164,7162,7165,7166,7169,7160, + 7156,7235,7236,7150,7157,7153,7129,7155,7154,7151, + 7152,7130,5554,5524,5647,5624,6881,5435,6898,645, + 1037,6883,972,5785,978,6884,6882,642,6878,6879, + 6880,7297,6862,6862,1198,7298,7299,1528,6862,6737, + 6737,263,6733,263,263,263,263,6741,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,323,6521,6521,6862,318,6862,263,6862, + 6514,6510,653,6661,6794,963,6794,2235,333,6876, + 6877,1,115,6730,1,1,1,5390,111,1107, + 7311,1556,1,6514,6510,653,6661,6862,963,263, + 2235,453,1570,820,1407,3580,257,345,6514,6510, + 653,6661,6794,963,6794,2235,7399,7161,7159,7168, + 7167,7163,7164,7162,7165,7166,7169,7160,7156,7235, + 7236,7150,7157,7153,7129,7155,7154,7151,7152,7130, + 3072,6862,7334,7335,7336,6862,6737,6737,263,6733, + 263,263,263,263,6782,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5693, + 6862,5142,4702,139,37,263,5716,126,403,6514, + 6510,4206,6661,1,963,1,2235,495,1,258, + 6730,1,1,1,6862,6201,1107,7311,1556,4930, + 33,6862,6862,6465,6862,6465,263,6465,452,6465, + 1904,7156,7235,7236,7150,7157,7153,7129,7155,7154, + 7151,7152,7130,7399,367,6426,6423,653,1410,6898, + 963,4058,2235,6862,6465,6465,6465,6465,1321,6862, + 6465,6447,639,2097,6862,6876,6877,6453,1368,7334, + 7335,7336,6862,6874,6465,1,6514,6510,4206,6661, + 6465,963,114,2235,6465,3729,4004,3931,6465,4930, + 6465,6465,6465,6465,1079,3893,2050,2003,1956,1909, + 1862,1815,1768,1721,1674,1627,6465,6465,118,6465, + 6465,6465,6465,6465,6465,6465,6465,6465,6465,6465, + 6465,6465,6465,6465,6465,6465,6465,6465,6465,6465, + 6465,6465,6465,6873,6422,1321,2699,6465,6465,6465, + 6465,6862,4638,4611,6468,433,6468,6862,6468,424, + 6468,1,6514,6510,653,6661,6874,963,595,2235, + 337,37,6877,6877,6877,6877,6877,39,6877,6862, + 7198,6900,367,5693,367,6468,6468,6468,6468,91, + 5716,6468,6459,6877,6877,6877,6877,6877,6877,6877, + 6877,6877,6877,6877,6877,6468,6862,6426,6423,1150, + 6900,6468,6862,6426,6423,6468,1410,6862,6471,6468, + 2235,6468,6468,6468,6468,476,6873,3578,38,6444, + 6441,6877,3072,2499,6438,6877,2235,6468,6468,6877, + 6468,6468,6468,6468,6468,6468,6468,6468,6468,6468, + 6468,6468,6468,6468,6468,6468,6468,6468,6468,6468, + 6468,6468,6468,6468,43,6628,6628,1024,6468,6468, + 6468,6468,6862,6803,6803,263,6803,263,263,263, + 263,6806,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,9202, + 1,1,1,1,1,1,6862,1,6514,6510, + 6776,6661,263,6779,113,6664,481,1,1,6625, + 1,6450,112,6450,259,1,159,6800,1,1, + 1,131,6862,2241,7107,2290,2713,3567,3665,7334, + 7335,7336,6862,6876,6877,254,7156,7235,7236,7150, + 7157,7153,7129,7155,7154,7151,7152,7130,6862,2768, + 7399,6862,6803,6803,263,6803,263,263,263,263, + 263,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,9202,1, + 1,1,1,1,1,6862,2851,6862,6862,6426, + 6423,263,1410,39,963,5693,2235,6900,5670,1111, + 1,6862,5716,5693,1,3518,6800,1,1,1, + 5716,6862,2241,7107,2290,2565,3567,3333,4895,2785, + 2719,2653,2587,2521,2455,2389,2323,2257,2191,381, + 6426,6423,4206,1410,367,963,367,2235,3566,7399, + 6862,6803,6803,263,6803,263,263,263,263,6815, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,9202,1,1, + 1,1,1,1,482,39,39,6862,6900,6712, + 263,6712,2144,92,1,1,6866,1,6721,1321, + 6721,271,260,1,6616,6800,1,1,1,6862, + 3660,2241,7107,2290,6862,3567,494,7334,7335,7336, + 327,6876,6877,253,7156,7235,7236,7150,7157,7153, + 7129,7155,7154,7151,7152,7130,146,6862,7399,6862, + 6803,6803,263,6803,263,263,263,263,6806,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,9202,1,1,1, + 1,1,1,95,39,39,6456,6900,6788,263, + 6788,6862,6426,6423,39,1410,132,963,6900,2235, + 4139,261,1,3665,6800,1,1,1,138,6862, + 2241,7107,2290,6862,3567,6865,1941,431,6518,6518, + 384,318,254,7156,7235,7236,7150,7157,7153,7129, + 7155,7154,7151,7152,7130,4112,4085,7399,6862,6803, + 6803,263,6803,263,263,263,263,6806,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,9202,1,1,1,1, + 1,1,318,6862,6876,6877,6862,2703,263,963, + 1321,2235,6862,6876,6877,157,372,117,1904,6862, + 572,1,5390,6800,1,1,1,398,6868,2241, + 7107,2290,1,3567,3396,3883,6862,6607,6604,7235, + 7236,254,7156,7235,7236,7150,7157,7153,7129,7155, + 7154,7151,7152,7130,148,6862,7399,6862,6803,6803, + 263,6803,263,263,263,263,263,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,9202,1,1,1,1,1, + 1,6867,1321,116,6862,3560,577,263,5390,6862, + 577,573,5670,1111,1,4322,4421,5819,4139,2829, + 1,3434,6800,1,1,1,5142,4702,2241,7107, + 2290,6862,3567,7156,7235,7236,7150,7157,7153,7129, + 7155,7154,7151,7152,7130,381,39,39,3883,6900, + 367,6862,367,4112,4085,7399,6862,6803,6803,263, + 6803,263,263,263,263,263,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,9202,1,1,1,1,1,1, + 6862,6426,6423,6862,6900,2747,263,6862,156,1, + 574,1,5142,4702,6862,1321,6872,4370,6872,1, + 224,6800,1,1,1,2761,6862,2241,7107,2290, + 6862,3567,7156,7235,7236,7150,7157,7153,7129,7155, + 7154,7151,7152,7130,6862,6426,6423,6871,1410,6871, + 6471,224,2235,6862,7399,6862,6803,6803,263,6803, + 263,263,263,263,263,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,9202,1,1,1,1,1,1,1, + 6709,6709,6862,6715,367,263,367,151,399,2617, + 6862,10340,10337,3526,3699,1,6862,2895,1,411, + 6800,1,1,1,194,6868,2241,7107,2290,394, + 3567,6862,1,1,1,1,1,1,1,1, + 6862,1,1,1,1,1,1,1,1,1, + 1,1,1,7399,1,6514,6510,6776,6661,6862, + 6779,347,6664,6872,1604,1,1,1,1,1, + 1,399,1,1,1,1,1,1,1,1, + 1,1,1,1,37,6718,6718,194,6867,367, + 1,6862,6862,7461,6871,4544,399,1,1,1, + 6514,6510,672,1410,5578,5501,5601,2235,6862,6474, + 6501,6507,6480,6483,6495,6492,6498,6489,6486,6477, + 6504,1,6514,6510,653,6661,7255,963,158,2235, + 345,1219,3660,5554,5524,5647,5624,6881,5435,6898, + 645,1037,6883,972,5785,978,6884,6882,642,6878, + 6879,6880,37,6718,6718,6862,120,6862,1528,119, + 4550,345,5025,553,6868,39,39,39,6426,6423, + 5019,1410,5578,5501,5601,2235,6856,643,7161,7159, + 7168,7167,7163,7164,7162,7165,7166,7169,7160,6862, + 4638,4611,4740,4638,4611,6862,6747,6744,6862,10340, + 10337,5554,5524,5647,5624,6881,5435,1716,645,1037, + 6883,972,5785,978,6884,6882,642,6878,6879,6880, + 326,967,967,6281,3434,152,1528,6867,6862,6862, + 6862,6862,3699,6862,2883,6862,6837,6870,6870,6872, + 6869,174,6426,6423,5019,1410,5578,5501,5601,2235, + 6898,643,7161,7159,7168,7167,7163,7164,7162,7165, + 7166,7169,7160,37,6718,6718,6862,6862,6862,6718, + 6871,383,6862,6862,2077,5554,5524,5647,5624,6881, + 5435,147,645,1037,6883,972,5785,978,6884,6882, + 642,6878,6879,6880,6862,6754,6750,1170,796,7411, + 1528,6869,6869,6862,2917,1,4276,39,39,1, + 6514,6510,672,1410,5578,5501,5601,2235,1951,6474, + 6501,6507,6480,6483,6495,6492,6498,6489,6486,6477, + 6504,1321,1,1,406,4139,7340,7354,7300,100, + 404,6818,399,5554,5524,5647,5624,6881,5435,6898, + 645,1037,6883,972,5785,978,6884,6882,642,6878, + 6879,6880,45,6767,6767,1,103,6862,1528,4349, + 4112,4085,328,465,6821,39,39,39,6426,6423, + 5019,1410,5578,5501,5601,2235,6834,643,7161,7159, + 7168,7167,7163,7164,7162,7165,7166,7169,7160,4951, + 1,6873,7257,6862,1431,399,3111,6862,584,356, + 1481,5554,5524,5647,5624,6881,5435,6764,645,1037, + 6883,972,5785,978,6884,6882,642,6878,6879,6880, + 399,6027,6862,6747,6744,6862,1528,6862,6869,1, + 354,457,3129,6785,2767,99,6837,39,6426,6423, + 5019,1410,5578,5501,5601,2235,6834,643,7161,7159, + 7168,7167,7163,7164,7162,7165,7166,7169,7160,1321, + 6862,11342,8963,1,3313,29,636,477,7362,7368, + 7366,5554,5524,5647,5624,6881,5435,6898,645,1037, + 6883,972,5785,978,6884,6882,642,6878,6879,6880, + 1321,37,6718,6718,491,3030,1528,7360,7361,7391, + 7392,3228,7369,6862,1,1,6837,313,3883,6862, + 6797,1,575,6868,6610,6898,6862,7371,337,6429, + 6862,6432,6862,794,424,3569,3878,7372,7198,1760, + 1773,7393,6862,7370,7156,7235,7236,7150,7157,7153, + 7129,7155,7154,7151,7152,7130,6898,583,6435,7382, + 7381,1,7387,7388,7394,7385,7386,7365,7367,7389, + 6862,6809,7363,7364,7390,1321,7375,7376,7377,7373, + 7374,7383,7384,7379,7378,7380,6867,6613,6462,1890, + 7395,39,6426,6423,5019,1410,5578,5501,5601,2235, + 6866,643,7161,7159,7168,7167,7163,7164,7162,7165, + 7166,7169,7160,128,6812,48,3575,6862,48,6877, + 6862,1,6876,4668,1150,5554,5524,5647,5624,6881, + 5435,6809,645,1037,6883,972,5785,978,6884,6882, + 642,6878,6879,6880,1,6514,6510,6706,6661,6649, + 6667,6652,6664,47,6474,6501,6507,6480,6483,6495, + 6492,6498,6489,6486,6477,6504,1,4058,320,6877, + 3660,3518,6876,485,6812,591,3575,6631,6646,6643, + 6658,6655,6679,6640,6862,6694,6703,6673,6697,6637, + 6700,6670,6676,6691,6688,6685,6682,8,29,326, + 463,6862,4004,3931,4511,218,6859,6862,1619,6865, + 6709,6709,39,6426,6423,5019,1410,5578,5501,5601, + 2235,6862,643,7161,7159,7168,7167,7163,7164,7162, + 7165,7166,7169,7160,6862,6862,7181,227,591,3519, + 127,432,73,6862,739,6862,5554,5524,5647,5624, + 6881,5435,1150,645,1037,6883,972,5785,978,6884, + 6882,642,6878,6879,6880,6862,6862,9942,718,461, + 6859,1528,39,6426,6423,5019,1410,5578,5501,5601, + 2235,6862,643,7161,7159,7168,7167,7163,7164,7162, + 7165,7166,7169,7160,4058,1150,6791,3309,486,3385, + 6862,6862,6862,35,6634,3171,5554,5524,5647,5624, + 6881,5435,6850,645,1037,6883,972,5785,978,6884, + 6882,642,6878,6879,6880,6862,6853,6862,6150,4004, + 3931,6862,1021,39,6426,6423,672,1410,5578,5501, + 5601,2235,6862,643,7161,7159,7168,7167,7163,7164, + 7162,7165,7166,7169,7160,4139,344,6862,6862,6862, + 6248,4794,6304,545,2,4179,2511,5554,5524,5647, + 5624,6881,5435,2125,645,1037,6883,972,5785,978, + 6884,6882,642,6878,6879,6880,6862,6862,6862,4963, + 4112,4085,1528,39,6426,6423,672,1410,5578,5501, + 5601,2235,4792,643,7161,7159,7168,7167,7163,7164, + 7162,7165,7166,7169,7160,543,6862,6862,37,6862, + 5274,6862,6862,6862,2222,6862,6862,5554,5524,5647, + 5624,6881,5435,5922,645,1037,6883,972,5785,978, + 6884,6882,642,6878,6879,6880,6862,6862,6862,6862, + 6862,6862,1528,39,6426,6423,5019,1410,5578,5501, + 5601,2235,6862,643,7161,7159,7168,7167,7163,7164, + 7162,7165,7166,7169,7160,6862,547,6862,6862,6862, + 6862,6862,6862,6862,6862,6274,2125,5554,5524,5647, + 5624,6881,5435,4854,645,1037,6883,972,5785,978, + 6884,6882,642,6878,6879,6880,6862,6862,6862,6862, + 6862,6862,1528,39,6426,6423,5954,1410,5578,5501, + 5601,2235,4916,643,7161,7159,7168,7167,7163,7164, + 7162,7165,7166,7169,7160,6862,6862,6862,6862,6862, + 6862,6862,6862,6862,6862,2983,901,5554,5524,5647, + 5624,6881,5435,6862,645,1037,6883,972,5785,978, + 6884,6882,642,6878,6879,6880,39,6426,6423,5019, + 1410,5578,5501,5601,2235,6862,643,7161,7159,7168, + 7167,7163,7164,7162,7165,7166,7169,7160,6862,6862, + 6862,6862,6862,6862,6862,6862,6862,6862,6862,6862, + 5554,5524,5647,5624,6881,5435,6862,645,1037,6883, + 972,5785,978,6884,6882,642,6878,6879,6880,39, + 6426,6423,672,1410,5578,5501,5601,2235,6862,643, + 7161,7159,7168,7167,7163,7164,7162,7165,7166,7169, + 7160,6862,6862,6862,6862,6862,6862,6862,6862,6862, + 6862,6862,6862,5554,5524,5647,5624,6881,5435,6862, + 645,1037,6883,972,5785,978,6884,6882,642,6878, + 6879,6880,39,6426,6423,672,1410,5578,5501,5601, + 2235,6862,643,7161,7159,7168,7167,7163,7164,7162, + 7165,7166,7169,7160,6862,6862,6862,6862,6862,6862, + 6862,6862,6862,6862,6862,6862,5554,5524,5647,5624, + 6881,5435,6862,645,1037,6883,972,5785,978,6884, + 6882,642,6878,6879,6880,39,6426,6423,5019,1410, + 5578,5501,5601,2235,6862,643,7161,7159,7168,7167, + 7163,7164,7162,7165,7166,7169,7160,1,6862,6862, + 6862,6862,6862,6862,6862,6862,196,6862,6862,5554, + 5524,5647,5624,6881,5435,6862,645,1037,6883,972, + 5785,978,6884,6882,642,6878,6879,6880,6862,6426, + 6423,6862,6900,6862,6862,6862,6862,6862,882,7161, + 7159,7168,7167,7163,7164,7162,7165,7166,7169,7160, + 7156,7235,7236,7150,7157,7153,7129,7155,7154,7151, + 7152,7130,6862,6862,6862,6862,6862,6862,6862,196, + 6862,6862,6862,6862,6862,6862,6862,6862,275,6597, + 6593,7297,6601,6862,1198,7298,7299,6862,882,6584, + 6590,6563,6566,6578,6575,6581,6572,6569,6560,6587, + 6539,6533,6530,6557,6536,6548,6527,6542,6545,6554, + 6551,6524,6862,6862,6862,6862,6862,6862,6862,6862, + 6862,6862,6862,6862,6862,6862,6862,6862,6876,6877, + 6862,7297,6862,6862,1198,7298,7299,1571,7161,7159, + 7168,7167,7163,7164,7162,7165,7166,7169,7160,7156, + 7235,7236,7150,7157,7153,7129,7155,7154,7151,7152, + 7130,6862,6862,6862,6862,6862,6862,6862,6862,6862, + 6862,6862,6862,6862,6862,6862,275,6727,6724,6862, + 7297,6862,6862,1198,7298,7299,1571,6584,6590,6563, + 6566,6578,6575,6581,6572,6569,6560,6587,6539,6533, + 6530,6557,6536,6548,6527,6542,6545,6554,6551,6524, + 6862,6862,6862,29,424,424,6622,424,6622,424, + 6622,424,6622,6862,75,6862,6862,704,6862,7297, + 6862,6862,1198,7298,7299,424,424,424,424,424, + 424,424,424,424,424,424,424,6862,1,6514, + 6510,4206,6661,6622,963,1,2235,6610,3883,6862, + 6924,6925,6862,6862,377,6862,6862,6429,6862,6862, + 6862,6862,6862,6622,32,425,425,6619,425,6619, + 425,6619,425,6619,3890,6622,6862,6862,6862,6862, + 6862,6862,6862,6862,6862,6862,425,425,425,425, + 425,425,425,425,425,425,425,425,1321,6862, + 6862,6862,6862,6862,6619,1321,6862,6862,6862,377, + 6613,6862,6862,377,6862,6862,6862,377,6862,6862, + 6862,6862,6862,6862,6619,6862,571,6862,6862,6862, + 6862,1060,6862,2552,6862,6862,6619,7161,7159,7168, + 7167,7163,7164,7162,7165,7166,7169,7160,7156,7235, + 7236,7150,7157,7153,7129,7155,7154,7151,7152,7130, + 37,6876,6876,6876,6876,6876,6862,6876,6862,6862, + 6862,6862,6862,6862,6862,6862,6862,6862,6862,6862, + 6862,6862,6876,6876,6876,6876,6876,6876,6876,6876, + 6876,6876,6876,6876,6862,6862,6862,6862,6862,6862, + 6862,6862,6862,6862,6862,6862,6862,6862,6862,6862, + 6862,6862,6862,6862,6862,6862,6862,6862,6862,6862, + 6876,6862,6862,6862,6876,6862,6862,6862,6876 }; }; public final static char termAction[] = TermAction.termAction; @@ -1810,61 +2195,67 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Asb { public final static char asb[] = {0, - 745,7,540,1,786,875,875,875,875,1050, - 786,811,811,634,811,88,524,90,541,541, - 541,541,541,541,541,541,541,813,819,824, - 821,828,826,833,831,835,834,836,231,837, - 540,524,674,674,674,674,579,927,291,291, - 808,674,182,139,811,811,291,579,139,139, - 130,524,885,673,1106,1052,987,524,811,813, - 627,627,927,540,541,541,541,541,541,541, - 541,541,541,541,541,541,541,541,541,541, - 541,541,541,540,540,540,540,540,540,540, - 540,540,540,540,540,541,139,139,801,801, - 801,801,395,139,291,291,1048,976,987,288, - 987,283,987,485,987,971,1050,579,182,182, - 291,875,541,1048,142,11,477,476,433,994, - 994,1050,90,182,673,540,577,1105,139,576, - 578,576,139,182,821,821,819,819,819,826, - 826,826,826,824,824,831,828,828,834,833, - 835,1064,836,786,786,786,786,579,579,801, - 800,801,808,579,280,350,285,394,286,1050, - 579,579,395,801,130,182,852,139,13,15, - 579,1106,541,674,817,95,139,1052,579,579, - 578,1106,540,540,540,540,540,786,786,524, - 281,806,804,350,579,708,418,706,395,288, - 399,579,395,579,139,481,469,480,15,395, - 577,139,817,1048,1105,1052,579,577,139,139, - 139,139,927,927,281,804,402,579,350,1064, - 286,875,397,343,1054,350,708,707,708,708, - 395,399,399,579,579,423,540,478,478,405, - 405,579,9,1048,712,139,579,817,818,817, - 540,95,348,813,1052,139,139,804,804,1106, - 288,288,801,875,576,491,1056,573,786,708, - 708,708,708,579,399,401,861,401,423,540, - 540,15,579,1106,139,13,469,423,1029,817, - 927,541,182,348,804,803,577,588,288,186, - 366,577,708,708,573,857,541,1064,413,868, - 579,1048,708,708,1112,401,402,541,579,795, - 15,423,818,139,182,804,858,588,588,969, - 1066,272,786,286,223,366,577,708,288,1050, - 1056,541,541,1105,573,877,701,1113,579,402, - 795,139,795,402,588,588,185,272,969,881, - 1050,800,875,582,582,858,288,504,877,579, - 786,1112,579,1050,1050,579,786,788,795,402, - 186,588,858,412,857,139,1050,579,366,186, - 366,799,799,866,505,1050,579,927,579,579, - 579,16,788,588,540,51,573,858,579,579, - 366,674,674,866,504,1064,541,1064,858,503, - 786,786,786,505,786,579,239,858,858,579, - 288,139,579,579,138,790,402,139,402,288, - 579,858,800,496,786,496,505,1064,505,524, - 524,522,503,524,858,858,416,502,674,790, - 402,51,858,48,712,505,139,573,139,522, - 272,786,139,866,51,582,139,139,1042,505, - 416,505,858,272,540,505,502,401,799,288, - 288,1044,540,503,927,858,139,856,50,576, - 505,139,858,856,856,505 + 790,15,671,9,831,880,880,880,880,536, + 831,562,562,468,562,262,655,264,672,672, + 672,672,672,672,672,672,672,564,570,575, + 572,579,577,584,582,586,585,587,331,588, + 671,655,192,192,192,192,710,17,165,165, + 559,192,328,105,562,562,165,710,105,105, + 96,655,947,191,1124,538,1005,655,562,564, + 763,763,17,671,672,672,672,672,672,672, + 672,672,672,672,672,672,672,672,672,672, + 672,672,672,671,671,671,671,671,671,671, + 671,671,671,671,671,672,105,105,1070,1070, + 1070,1070,1126,105,165,165,534,994,1005,6, + 1005,1,1005,282,1005,989,536,710,328,328, + 165,880,672,534,288,908,898,897,432,1012, + 1012,536,264,328,191,671,708,1123,105,707, + 709,707,105,328,572,572,570,570,570,577, + 577,577,577,575,575,582,579,579,585,584, + 586,1082,587,831,831,831,831,710,710,1070, + 193,530,655,1047,1045,1052,1050,1054,1053,1055, + 1056,1069,1070,559,710,380,383,3,765,4, + 536,710,710,1126,1070,96,328,603,105,910, + 912,710,1124,672,192,568,61,105,538,710, + 710,709,1124,671,671,671,671,671,831,831, + 507,518,518,518,518,502,536,713,672,672, + 672,672,672,672,672,672,672,671,671,671, + 671,671,671,671,671,671,671,671,671,672, + 655,381,557,555,383,710,720,160,718,1126, + 6,540,710,1126,710,105,902,890,901,912, + 1126,708,105,568,534,1123,538,710,708,105, + 105,105,105,17,17,710,672,1045,1045,1045, + 1050,1047,1047,1053,1052,1054,1082,1055,381,555, + 543,710,383,1082,4,880,1128,147,1072,383, + 720,719,720,720,1126,540,540,710,710,612, + 671,899,899,269,269,710,906,534,840,105, + 710,568,569,568,671,61,152,564,538,105, + 105,1126,785,671,555,555,1124,6,6,1070, + 880,707,622,1074,704,831,720,720,720,720, + 710,540,542,835,542,612,671,671,912,710, + 1124,105,910,890,612,443,568,17,672,328, + 152,710,555,554,708,724,6,109,399,708, + 720,720,704,608,672,1082,277,873,710,534, + 720,720,546,542,543,672,710,777,912,612, + 569,105,328,555,609,724,724,59,1084,372, + 831,4,146,399,708,720,6,536,1074,672, + 672,1123,704,882,427,547,710,543,777,105, + 777,543,724,724,108,372,59,886,536,1069, + 880,154,154,609,6,635,882,710,831,546, + 710,536,536,710,831,770,777,543,109,724, + 609,276,608,105,536,710,399,109,399,1068, + 1068,833,636,536,710,17,710,710,710,913, + 770,724,671,225,704,609,710,710,399,192, + 192,833,635,1082,672,1082,609,634,831,831, + 831,636,831,710,339,609,609,710,6,105, + 710,710,104,772,543,105,543,6,710,609, + 1069,627,831,627,636,1082,636,655,655,653, + 634,655,609,609,783,633,192,772,543,225, + 609,222,840,636,105,704,105,653,372,831, + 105,833,225,154,105,105,456,636,783,636, + 609,372,671,636,633,542,1068,6,6,979, + 671,634,17,609,105,607,224,707,636,105, + 609,607,607,636 }; }; public final static char asb[] = Asb.asb; @@ -1872,118 +2263,119 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Asr { public final static byte asr[] = {0, - 8,72,118,73,27,69,120,0,5,7, - 3,63,6,9,90,28,11,12,23,13, - 56,29,30,14,31,32,15,16,33,34, - 17,18,35,57,36,10,58,19,22,20, - 24,21,1,2,4,73,8,40,0,71, - 60,37,38,9,6,25,26,41,46,3, - 4,52,53,54,39,50,44,49,12,21, - 11,17,15,16,18,19,14,13,20,10, - 43,47,45,42,51,67,8,7,5,1, - 2,66,65,0,91,89,25,26,92,93, - 87,88,55,94,95,96,97,98,99,100, - 101,107,72,90,70,108,109,110,111,112, - 113,114,115,116,117,118,71,27,120,68, - 1,2,9,6,4,3,63,69,73,8, - 0,65,66,3,10,43,47,45,42,51, - 12,21,11,17,15,16,18,19,14,13, - 20,52,53,54,39,50,44,49,5,7, - 4,37,38,9,6,25,26,41,46,1, - 2,118,8,0,67,40,23,13,56,29, - 14,31,32,15,16,33,34,17,18,35, - 57,36,58,19,22,20,24,21,12,11, - 28,8,3,9,6,27,62,64,86,30, - 61,48,7,1,2,5,4,10,59,0, - 68,72,90,69,118,73,71,120,11,12, - 42,65,13,43,44,14,15,16,66,45, - 17,18,46,47,49,60,50,51,10,19, - 20,21,52,53,54,39,37,38,25,26, - 41,8,27,5,7,1,2,4,3,9, - 6,0,48,4,72,1,2,67,8,0, - 28,11,12,40,23,42,65,13,43,56, - 29,30,44,14,31,32,15,16,33,66, - 34,45,17,18,46,35,47,57,49,60, - 50,36,51,58,19,22,20,24,21,52, - 53,54,39,3,37,38,9,6,25,26, - 41,68,7,1,2,4,10,5,0,86, - 59,7,103,104,105,62,8,3,9,6, - 5,72,71,27,61,28,11,12,40,23, - 13,56,29,30,14,31,32,15,16,33, - 34,17,18,35,57,36,10,58,19,22, - 20,24,21,4,1,2,48,0,1,2, - 69,71,8,0,74,68,72,90,73,67, - 63,3,8,69,27,70,0,4,8,72, - 67,0,23,60,24,8,68,90,70,69, - 73,0,28,11,12,23,13,29,30,14, - 31,32,15,16,33,7,34,17,18,35, - 36,19,22,20,24,21,1,2,8,63, - 9,6,5,4,73,27,3,0,9,6, - 7,5,4,1,2,3,63,68,70,69, - 8,73,90,0,4,8,67,1,2,0, - 8,72,67,74,0,86,103,104,105,48, - 72,102,121,71,61,74,62,59,64,76, - 78,84,82,75,80,81,83,85,67,77, - 79,27,8,28,40,23,56,29,30,31, - 32,33,34,35,57,36,58,22,24,60, - 65,66,10,43,47,45,42,51,12,21, - 11,17,15,16,18,19,14,13,20,52, - 53,54,39,50,44,49,37,38,25,26, - 41,46,9,6,3,4,7,5,1,2, - 0,68,70,69,1,2,0,64,28,11, - 12,40,23,13,56,29,86,30,14,31, - 32,15,16,33,59,34,17,18,35,57, - 36,10,58,19,62,22,20,24,21,8, - 3,9,6,71,27,61,7,4,48,5, - 1,2,0,66,65,25,26,6,92,93, - 98,9,99,5,41,70,55,68,111,112, - 108,109,110,116,115,117,88,87,113,114, - 96,97,94,95,100,101,37,38,69,89, - 106,63,3,28,11,12,40,23,13,56, - 29,30,14,31,32,15,16,33,34,17, - 18,35,57,36,10,58,19,20,24,21, - 1,2,4,22,0,4,55,8,72,67, - 0,28,11,12,40,23,13,56,29,30, - 14,31,32,15,16,33,34,17,18,35, - 57,36,10,58,19,22,20,24,21,1, - 2,4,90,0,11,12,42,65,13,43, - 44,14,15,16,66,7,45,17,18,46, - 47,49,60,50,51,10,19,20,21,52, - 53,54,39,1,2,37,38,9,6,25, - 26,5,41,4,61,3,0,23,24,74, - 3,72,27,67,60,8,90,73,70,69, - 68,0,60,23,24,7,5,1,2,4, - 74,67,119,106,37,38,63,3,91,89, - 6,92,93,25,26,88,87,55,94,95, - 96,97,9,98,99,100,68,90,73,120, - 70,108,109,110,111,112,113,114,115,116, - 117,72,118,101,107,71,69,27,8,0, - 8,69,71,70,0,102,0,72,8,63, - 3,70,69,27,55,0,8,67,69,0, - 8,67,70,0,65,66,37,38,9,6, - 25,26,5,41,46,3,4,7,52,53, - 54,39,50,44,49,12,21,11,17,15, - 16,18,19,14,13,20,10,43,47,45, - 42,51,63,1,2,0,8,73,11,12, - 42,65,13,43,44,14,15,16,66,7, - 45,17,18,46,47,49,60,50,51,10, - 19,20,21,52,53,54,1,2,3,37, - 38,9,6,25,26,5,41,4,39,0, - 10,56,40,57,58,12,21,11,17,15, - 16,18,19,14,13,20,74,72,90,118, - 71,67,120,119,91,106,89,37,38,25, - 26,92,93,87,88,55,68,94,95,96, - 97,98,99,100,101,107,70,108,109,110, - 111,112,113,114,115,116,117,69,28,23, - 29,30,31,32,33,34,35,36,22,24, - 27,8,73,3,63,7,5,9,6,1, - 2,4,0,27,8,3,7,5,9,6, - 4,1,2,72,0,40,23,13,56,29, - 14,31,32,15,16,33,34,17,18,35, - 57,36,10,58,19,22,20,24,21,12, - 11,28,8,3,9,27,62,59,64,86, - 30,61,55,4,6,7,1,2,5,48, - 0,22,1,2,4,103,104,105,0 + 55,4,71,1,2,69,9,0,9,71, + 118,72,40,68,120,0,9,72,11,12, + 41,66,13,42,43,14,15,16,67,8, + 44,17,18,45,46,47,59,48,49,10, + 19,20,21,50,51,52,1,2,3,36, + 37,7,5,34,35,6,39,4,38,0, + 98,91,34,35,99,100,86,87,54,89, + 90,92,93,94,95,96,101,102,71,97, + 70,103,104,105,106,107,108,109,110,111, + 112,118,73,40,120,64,1,2,7,5, + 4,3,60,68,72,9,0,69,53,23, + 13,56,26,14,28,29,15,16,30,31, + 17,18,32,57,33,58,19,22,20,24, + 21,12,11,25,9,3,7,5,40,63, + 65,88,27,62,55,61,8,1,2,4, + 10,6,0,64,70,68,1,2,0,4, + 9,71,69,0,41,66,42,43,67,8, + 44,45,46,47,59,48,49,50,51,52, + 38,36,37,7,5,34,35,6,39,64, + 3,4,10,1,2,56,57,58,12,21, + 11,17,15,16,18,19,14,13,20,25, + 31,32,27,30,29,22,26,23,24,28, + 33,53,0,73,59,36,37,7,5,34, + 35,39,45,3,4,50,51,52,38,48, + 43,47,12,21,11,17,15,16,18,19, + 14,13,20,10,42,46,44,41,49,69, + 9,8,6,1,2,67,66,0,74,64, + 71,97,72,69,60,3,9,68,40,70, + 0,4,9,69,1,2,0,66,67,3, + 10,42,46,44,41,49,12,21,11,17, + 15,16,18,19,14,13,20,50,51,52, + 38,48,43,47,6,8,4,36,37,7, + 5,34,35,39,45,1,2,118,9,0, + 64,71,97,68,118,72,73,120,11,12, + 41,66,13,42,43,14,15,16,67,44, + 17,18,45,46,47,59,48,49,10,19, + 20,21,50,51,52,38,36,37,34,35, + 39,9,40,6,8,1,2,4,3,7, + 5,0,88,61,8,114,115,116,63,9, + 3,7,5,6,71,73,40,62,25,11, + 12,53,23,13,56,26,27,14,28,29, + 15,16,30,31,17,18,32,57,55,33, + 10,58,19,20,24,21,1,2,4,22, + 0,11,12,13,14,15,16,17,18,19, + 20,21,25,23,26,27,28,29,30,31, + 32,33,22,24,40,9,72,8,1,2, + 60,3,7,5,6,4,0,67,66,34, + 35,99,100,94,95,6,39,70,54,106, + 107,103,104,105,111,110,112,87,86,108, + 109,92,93,89,90,96,101,36,37,91, + 117,10,56,53,57,58,12,21,11,17, + 15,16,18,19,14,13,20,25,31,32, + 27,30,29,22,26,23,24,28,33,64, + 68,3,60,7,5,1,2,4,0,1, + 2,68,73,9,0,22,1,2,4,114, + 115,116,0,59,23,24,8,6,1,2, + 4,74,69,119,117,36,37,60,3,98, + 91,5,99,100,34,35,87,86,54,89, + 90,92,93,7,94,95,96,64,97,72, + 120,70,103,104,105,106,107,108,109,110, + 111,112,71,118,101,102,73,68,40,9, + 0,23,59,24,9,64,97,70,68,72, + 0,9,71,69,74,0,88,114,115,116, + 55,71,113,121,73,62,74,63,61,65, + 76,78,84,82,75,80,81,83,85,69, + 77,79,40,9,25,53,23,56,26,27, + 28,29,30,31,32,57,33,58,22,24, + 59,66,67,10,42,46,44,41,49,12, + 21,11,17,15,16,18,19,14,13,20, + 50,51,52,38,48,43,47,36,37,34, + 35,39,45,7,5,3,4,8,6,1, + 2,0,54,64,89,90,0,4,54,9, + 71,69,0,65,25,11,12,53,23,13, + 56,26,88,27,14,28,29,15,16,30, + 61,31,17,18,32,57,33,10,58,19, + 63,22,20,24,21,9,3,7,5,73, + 40,62,8,6,55,1,2,4,0,23, + 24,74,3,71,40,69,59,9,64,97, + 68,72,70,0,72,9,87,86,0,11, + 12,41,66,13,42,43,14,15,16,67, + 8,44,17,18,45,46,47,59,48,49, + 10,19,20,21,50,51,52,38,1,2, + 36,37,7,5,34,35,6,39,4,62, + 3,0,113,0,9,68,73,70,0,25, + 11,12,53,23,13,56,26,27,14,28, + 29,15,16,30,31,17,18,32,57,33, + 10,58,19,22,20,24,21,1,2,4, + 97,0,71,9,60,3,70,68,40,54, + 0,9,69,68,0,9,69,70,0,7, + 5,8,6,4,1,2,3,60,64,70, + 68,9,72,97,0,6,8,3,60,5, + 7,97,25,11,12,53,23,13,56,26, + 27,14,28,29,15,16,30,31,17,18, + 32,57,33,10,58,19,22,20,24,21, + 1,2,4,72,9,0,66,67,36,37, + 34,35,39,45,50,51,52,38,48,43, + 47,12,21,11,17,15,16,18,19,14, + 13,20,10,42,46,44,41,49,7,5, + 3,60,8,6,4,1,2,0,10,56, + 53,57,58,12,21,11,17,15,16,18, + 19,14,13,20,74,71,97,118,73,69, + 120,8,31,32,33,22,24,1,2,30, + 29,28,27,26,6,4,23,25,119,98, + 117,91,36,37,34,35,99,100,9,60, + 3,5,72,40,87,86,54,89,90,92, + 93,7,94,95,96,101,102,103,104,105, + 106,107,108,109,110,111,112,70,68,64, + 0,40,9,3,8,6,7,5,4,1, + 2,71,0,53,23,13,56,26,14,28, + 29,15,16,30,31,17,18,32,57,33, + 10,58,19,22,20,24,21,12,11,25, + 9,3,7,40,63,61,65,88,27,62, + 54,4,5,8,6,1,2,55,0 }; }; public final static byte asr[] = Asr.asr; @@ -1991,61 +2383,67 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Nasb { public final static char nasb[] = {0, - 208,12,75,12,12,12,12,12,12,79, - 12,12,12,193,12,181,185,110,75,75, - 216,75,75,75,75,75,75,12,12,12, - 12,12,12,12,12,12,12,12,75,12, - 75,185,48,48,48,48,110,230,29,29, - 67,5,93,33,12,12,29,220,33,33, - 204,1,75,38,141,12,12,185,12,12, - 53,53,230,155,75,75,75,75,75,75, - 75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,155,75,33,33,12,12, - 12,12,35,33,43,43,135,239,240,166, - 240,115,240,127,240,233,10,110,93,93, - 43,12,75,135,88,203,81,81,12,12, - 12,10,110,93,48,158,181,63,33,180, - 110,180,33,93,12,12,12,12,12,12, + 160,12,82,12,12,12,12,12,12,86, + 12,12,12,125,12,238,26,157,82,82, + 257,82,82,82,82,82,82,12,12,12, + 12,12,12,12,12,12,12,12,82,12, + 82,26,218,218,218,218,157,16,180,180, + 93,5,108,230,12,12,180,261,230,230, + 164,1,82,77,53,12,12,26,12,12, + 68,68,16,27,82,82,82,82,82,82, + 82,82,82,82,82,82,82,82,82,82, + 82,82,82,82,82,82,82,82,82,82, + 82,82,82,82,27,82,230,230,12,12, + 12,12,120,230,43,43,187,275,276,226, + 276,13,276,88,276,269,10,157,108,108, + 43,12,82,187,103,163,19,19,12,12, + 12,10,157,108,218,113,238,99,230,237, + 157,237,230,108,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,190,11,12, - 12,12,267,110,12,29,189,79,40,79, - 110,11,12,12,265,93,12,33,250,29, - 110,141,75,48,29,83,33,12,11,110, - 147,141,75,155,155,155,155,12,12,43, - 137,137,137,271,190,102,102,12,200,166, - 29,200,140,190,33,12,22,12,253,139, - 190,33,19,267,63,12,220,190,33,33, - 33,33,230,230,12,29,17,110,145,12, - 168,12,12,51,242,271,102,102,29,29, - 140,29,221,11,190,29,75,12,12,81, - 81,110,21,135,253,33,190,29,61,12, - 155,267,148,12,12,33,33,137,108,141, - 166,198,12,12,79,29,130,24,12,29, - 29,150,150,190,221,106,12,12,108,75, - 75,29,11,141,33,250,175,29,12,19, - 230,75,93,148,29,108,181,29,166,211, - 29,200,29,113,177,145,75,12,59,12, - 110,135,150,150,256,106,17,75,221,29, - 253,108,61,33,93,108,145,225,29,12, - 211,243,12,197,51,253,181,113,118,123, - 24,75,75,13,177,12,79,121,200,17, - 86,33,29,17,211,225,165,130,12,12, - 79,12,12,173,173,145,118,16,12,200, - 12,98,200,79,79,11,12,29,86,17, - 211,29,145,70,12,33,79,200,253,211, - 29,12,12,29,152,123,11,230,11,200, - 200,31,108,225,158,73,24,145,200,169, - 253,48,48,104,161,12,75,12,145,12, - 12,12,12,162,12,221,143,145,145,221, - 95,33,11,11,33,29,17,33,29,166, - 169,145,12,171,12,12,162,12,162,282, - 282,260,12,282,145,145,12,29,48,86, - 17,29,145,12,48,162,33,24,33,278, - 29,12,33,104,73,173,33,33,29,162, - 12,162,145,24,155,162,171,17,12,95, - 95,22,75,12,286,145,33,223,72,180, - 162,33,145,223,12,162 + 12,12,12,12,12,12,12,192,11,12, + 250,164,21,12,12,12,12,12,12,12, + 12,12,12,197,157,12,180,191,86,96, + 86,157,11,12,12,195,108,12,230,303, + 180,157,53,82,218,180,34,230,12,11, + 157,110,53,82,27,27,27,27,12,12, + 275,276,276,276,276,286,10,12,82,82, + 82,82,82,82,82,82,82,82,82,82, + 82,82,82,82,82,82,82,82,27,82, + 43,189,189,189,204,192,41,41,12,242, + 226,180,242,52,192,230,12,173,12,306, + 51,192,230,91,197,99,12,261,192,230, + 230,230,230,16,16,157,82,12,12,12, + 12,12,12,12,12,12,12,12,12,180, + 145,157,170,12,74,12,12,116,278,204, + 41,41,180,180,52,180,262,11,192,180, + 82,12,12,19,19,157,172,187,306,230, + 192,180,59,12,27,197,111,12,12,230, + 230,52,230,82,189,137,53,226,130,12, + 12,86,180,182,175,12,180,180,57,57, + 192,262,55,12,12,137,82,82,180,11, + 53,230,303,232,180,12,91,16,82,108, + 111,192,180,137,238,180,226,294,180,242, + 180,123,234,170,82,12,66,12,157,187, + 57,57,151,55,145,82,262,180,306,137, + 59,230,108,137,170,264,180,12,294,279, + 12,129,116,306,238,123,132,37,175,82, + 82,139,234,12,86,142,242,145,118,230, + 180,145,294,264,225,182,12,12,86,12, + 12,61,61,170,132,144,12,242,12,30, + 242,86,86,11,12,180,118,145,294,180, + 170,135,12,230,86,242,306,294,180,12, + 12,180,211,37,11,16,11,242,242,228, + 137,264,113,80,175,170,242,75,306,218, + 218,149,221,12,82,12,170,12,12,12, + 12,222,12,262,168,170,170,262,63,230, + 11,11,230,180,145,230,180,226,75,170, + 12,155,12,12,222,12,222,299,299,245, + 12,299,170,170,12,180,218,118,145,180, + 170,12,218,222,230,175,230,217,180,12, + 230,149,80,61,230,230,180,222,12,222, + 170,175,27,222,155,145,12,63,63,173, + 82,12,201,170,230,147,79,237,222,230, + 170,147,12,222 }; }; public final static char nasb[] = Nasb.nasb; @@ -2053,35 +2451,37 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Nasr { public final static char nasr[] = {0, - 3,13,10,9,153,151,120,150,149,5, - 2,0,66,50,0,4,68,0,144,0, - 33,94,93,65,5,2,9,10,4,0, - 46,4,33,0,137,66,0,177,0,43, - 1,0,5,10,9,2,13,4,46,0, - 158,0,5,2,9,10,140,0,193,0, - 142,0,66,139,138,0,4,197,0,186, - 0,68,130,43,10,9,2,13,5,0, - 76,0,4,179,0,126,0,13,2,9, - 10,5,82,0,43,57,0,5,101,170, - 0,108,0,163,0,155,0,63,0,2, - 45,0,161,0,154,190,0,43,162,0, - 195,0,174,5,173,0,154,185,0,4, - 10,9,2,65,5,89,50,0,137,2, - 66,0,4,40,39,0,2,114,0,109, - 0,49,43,181,4,40,0,4,30,0, - 68,40,49,69,4,43,0,122,103,0, - 112,0,107,0,94,93,50,65,59,5, - 10,9,2,0,4,46,40,0,45,2, - 3,0,4,46,198,0,1,122,0,2, - 58,0,33,93,94,4,0,4,176,0, - 4,49,81,83,0,5,10,9,13,3, - 1,0,164,0,115,4,49,81,0,4, - 96,0,2,5,120,116,117,118,13,86, - 0,39,5,2,9,10,4,160,0,50, - 5,89,23,4,0,5,101,194,0,40, - 4,23,183,0,94,93,50,5,59,0, - 4,49,81,101,47,5,0,46,4,182, - 0,4,46,102,0,4,180,0 + 3,13,10,9,137,136,113,135,134,4, + 2,0,166,205,0,5,105,0,80,0, + 13,2,9,10,4,52,5,36,0,4, + 115,182,0,5,194,0,186,4,185,0, + 122,0,4,10,9,2,13,127,5,0, + 154,2,75,0,167,0,123,0,159,0, + 121,0,42,66,0,208,0,4,2,9, + 10,157,0,140,117,0,192,0,81,148, + 42,10,9,2,13,4,0,166,200,0, + 161,0,5,212,0,42,1,0,75,156, + 155,0,13,2,9,10,4,94,0,2, + 131,0,5,28,0,170,0,144,0,154, + 75,0,173,0,5,52,213,0,1,140, + 0,42,174,0,201,0,51,0,75,54, + 0,210,0,5,81,0,176,0,175,0, + 4,115,209,0,129,0,2,44,0,5, + 191,0,30,100,101,5,0,5,36,39, + 0,30,101,100,78,4,2,9,10,5, + 0,5,10,9,2,78,4,98,54,0, + 44,2,3,0,101,100,54,4,68,0, + 5,195,0,5,50,93,115,48,4,0, + 5,50,42,36,196,0,197,5,52,0, + 81,36,50,82,5,42,0,52,5,30, + 0,101,100,54,78,68,4,10,9,2, + 0,2,67,0,36,5,27,198,0,137, + 214,136,113,135,134,0,4,10,9,13, + 3,1,0,132,5,50,93,0,2,4, + 113,110,111,112,13,69,0,39,4,2, + 9,10,5,172,0,113,69,13,110,111, + 112,190,0,5,50,93,95,0,5,52, + 116,0,54,4,98,27,5,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2089,18 +2489,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface TerminalIndex { public final static char terminalIndex[] = {0, - 113,114,2,31,13,10,79,115,9,100, + 113,114,2,31,10,13,9,79,115,100, 48,52,60,68,74,75,86,87,102,105, - 107,104,54,106,11,12,120,47,64,66, - 70,73,76,83,89,98,7,8,112,53, - 14,55,61,67,84,88,90,93,94,97, - 99,109,110,111,19,63,91,101,77,95, - 122,103,1,46,58,78,121,20,44,33, - 119,30,118,96,108,49,50,56,57,59, - 69,71,72,85,92,65,17,18,6,32, - 4,15,16,21,22,23,24,25,26,27, - 28,51,80,81,82,5,29,34,35,36, - 37,38,39,40,41,42,43,117,3,123, + 107,104,54,106,47,64,66,70,73,76, + 83,89,98,11,12,7,8,112,14,120, + 55,61,67,84,88,90,94,97,99,109, + 110,111,53,19,93,63,91,101,95,1, + 77,122,103,20,46,58,78,44,121,33, + 30,118,119,96,108,49,50,56,57,59, + 69,71,72,85,92,17,18,65,21,22, + 6,23,24,25,26,27,32,4,15,16, + 28,29,34,35,36,37,38,39,40,41, + 42,43,51,80,81,82,5,117,3,123, 62,116 }; }; @@ -2109,27 +2509,29 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 130,135,136,0,0,134,0,0,229,235, + 130,135,136,0,0,134,0,0,237,243, 133,0,143,0,132,0,0,142,148,0, - 0,149,180,158,159,160,161,162,163,151, - 164,165,126,166,141,167,168,0,128,131, - 169,0,129,138,137,152,177,0,0,0, - 0,0,0,0,0,145,172,0,155,0, - 204,0,187,201,205,0,0,127,171,0, - 0,0,0,0,0,206,175,0,0,0, - 0,125,178,0,0,186,0,0,202,212, - 157,208,209,210,0,0,146,0,0,207, - 220,174,196,0,0,211,0,0,0,0, - 240,241,0,147,179,189,190,191,192,193, - 195,0,198,0,199,0,214,217,0,0, - 219,0,238,0,239,0,0,139,140,144, - 0,0,154,156,0,170,0,181,182,183, - 184,185,188,0,0,0,194,0,197,203, - 0,215,216,0,0,221,224,0,226,228, - 0,232,233,234,237,124,0,150,153,0, - 173,0,176,0,0,200,213,218,0,0, - 222,223,225,227,0,230,231,236,242,243, - 0,0,0,0 + 0,149,158,159,160,161,188,151,0,126, + 162,141,163,164,165,131,166,167,128,168, + 0,129,138,137,170,169,171,185,0,0, + 195,152,172,0,173,0,0,0,0,0, + 174,175,176,0,177,180,0,155,194,0, + 0,0,212,0,0,145,209,213,0,214, + 127,179,0,0,0,0,0,0,183,0, + 0,0,0,125,186,0,0,210,216,217, + 218,0,220,157,0,146,0,0,215,197, + 198,199,201,227,228,182,204,0,0,219, + 0,0,0,0,248,0,251,0,252,0, + 147,187,189,190,191,192,196,200,203,0, + 206,0,207,0,222,225,0,0,0,246, + 0,247,0,0,139,140,144,0,0,154, + 156,0,178,0,193,0,0,0,202,0, + 205,211,0,223,224,0,0,229,232,0, + 234,236,0,240,241,242,245,0,0,249, + 124,0,150,153,0,181,0,184,0,0, + 208,221,226,0,0,230,231,233,235,0, + 238,239,244,250,253,254,0,0,0,0, + 0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2137,18 +2539,19 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopePrefix { public final static char scopePrefix[] = { - 159,311,589,608,304,319,540,556,567,578, - 372,267,281,298,333,42,292,392,430,167, - 597,483,20,51,71,80,85,90,130,195, - 326,341,346,144,273,287,511,27,144,382, - 346,616,27,217,246,1,14,61,76,106, - 351,361,365,448,476,505,532,536,626,630, - 634,97,7,97,410,426,439,460,524,116, - 116,232,439,547,563,574,585,207,494,56, - 56,156,222,225,56,241,262,225,225,56, - 369,473,480,156,56,649,110,355,414,454, - 467,56,355,401,177,104,452,638,645,638, - 645,65,420,137,104,104,251 + 172,324,608,627,317,332,559,575,586,597, + 372,280,294,311,344,55,305,392,430,180, + 616,502,20,33,64,84,93,98,103,143, + 208,339,350,20,467,157,286,300,530,40, + 157,382,20,635,40,230,259,1,14,27, + 74,89,119,27,361,365,448,495,524,551, + 555,645,649,653,110,7,110,410,426,439, + 460,479,543,129,129,245,439,566,582,593, + 604,220,513,69,69,169,235,238,69,254, + 275,238,238,69,369,492,499,169,69,668, + 123,355,414,454,486,472,69,355,401,190, + 117,452,657,664,657,664,78,420,150,117, + 117,264 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2156,18 +2559,19 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,135,5,5,135,135,5,5,5,5, - 379,135,95,135,339,48,278,398,436,173, - 67,489,25,25,25,59,59,95,135,200, - 331,331,339,149,278,101,516,38,152,387, - 603,621,32,211,211,5,18,5,59,95, - 331,95,95,135,244,5,5,5,5,5, - 244,647,11,101,379,379,379,464,516,120, - 125,236,443,551,551,551,551,211,498,59, - 59,5,5,228,230,244,5,265,265,230, - 95,5,244,5,509,5,113,358,417,457, - 470,528,519,404,180,95,95,640,640,642, - 642,67,422,139,202,187,253 + 18,148,5,5,148,148,5,5,5,5, + 379,148,108,148,25,61,291,398,436,186, + 80,508,25,38,38,38,72,72,108,148, + 213,31,31,25,5,162,291,114,535,51, + 165,387,622,640,45,224,224,5,18,31, + 5,72,108,31,108,108,148,257,5,5, + 5,5,5,257,666,11,114,379,379,379, + 464,483,535,133,138,249,443,570,570,570, + 570,224,517,72,72,5,5,241,243,257, + 5,278,278,243,108,5,257,5,528,5, + 126,358,417,457,489,475,547,538,404,193, + 108,108,659,659,661,661,80,422,152,215, + 200,266 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2175,18 +2579,19 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeLhs { public final static char scopeLhs[] = { - 47,118,18,18,80,118,18,18,18,18, - 72,85,48,80,117,78,54,72,71,47, - 18,20,3,7,8,170,170,166,116,47, - 117,117,119,129,55,48,140,134,129,72, - 18,18,134,95,60,136,75,173,170,166, - 119,184,52,57,144,19,18,18,18,18, - 18,12,112,166,72,71,71,38,140,131, - 131,59,71,18,18,18,18,95,20,174, - 170,186,93,100,62,76,61,160,77,119, - 73,145,144,177,140,17,166,119,102,70, - 22,140,140,72,47,166,67,138,45,138, - 45,173,102,116,47,47,60 + 48,112,18,18,92,112,18,18,18,18, + 85,97,49,92,111,90,59,85,84,48, + 18,20,190,3,7,8,182,182,178,110, + 48,111,111,138,45,147,60,49,157,151, + 147,85,18,18,151,102,72,153,88,190, + 185,182,178,138,199,57,66,161,19,18, + 18,18,18,18,12,129,178,85,84,84, + 64,41,157,114,114,68,84,18,18,18, + 18,102,20,186,182,201,100,109,74,80, + 73,172,89,138,86,162,161,192,157,17, + 178,138,116,83,22,45,157,157,85,48, + 178,79,155,44,155,44,185,116,110,48, + 48,72 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2194,18 +2599,19 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeLa { public final static byte scopeLa[] = { - 102,71,73,73,71,71,73,73,73,73, - 73,71,27,71,1,68,1,73,121,67, - 3,73,68,68,68,1,1,27,71,67, - 1,1,1,71,1,1,4,68,69,27, - 1,1,68,73,73,73,102,73,1,27, - 1,27,27,71,118,73,73,73,73,73, - 118,1,73,1,73,73,73,72,4,1, - 1,6,73,68,68,68,68,73,3,1, - 1,73,73,3,1,118,73,1,1,1, - 27,73,118,73,5,73,1,48,70,72, - 73,1,48,75,74,27,27,4,4,4, - 4,3,1,67,1,1,3 + 113,73,72,72,73,73,72,72,72,72, + 72,73,40,73,1,64,1,72,121,69, + 3,72,1,64,64,64,1,1,40,73, + 69,1,1,1,72,73,1,1,4,64, + 68,40,1,1,64,72,72,72,113,1, + 72,1,40,1,40,40,73,118,72,72, + 72,72,72,118,1,72,1,72,72,72, + 71,71,4,1,1,5,72,64,64,64, + 64,72,3,1,1,72,72,3,1,118, + 72,1,1,1,40,72,118,72,6,72, + 1,55,70,71,72,64,1,55,75,74, + 40,40,4,4,4,4,3,1,69,1, + 1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2213,18 +2619,19 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeStateSet { public final static char scopeStateSet[] = { - 85,154,250,250,107,154,250,250,250,250, - 95,109,85,107,154,107,87,95,95,85, - 250,250,182,226,226,54,54,82,154,85, - 154,154,154,313,87,85,137,50,313,95, - 250,250,50,146,66,26,95,30,54,82, - 154,22,87,33,63,250,250,250,250,250, - 250,230,6,82,95,95,95,282,137,154, - 154,121,95,250,250,250,250,146,250,30, - 54,24,146,148,66,142,66,60,71,154, - 95,57,63,140,137,250,82,154,1,95, - 251,137,137,95,85,82,11,118,158,118, - 158,30,1,154,85,85,66 + 85,183,284,284,107,183,284,284,284,284, + 95,109,85,107,183,107,87,95,95,85, + 284,284,118,214,260,260,54,54,82,183, + 85,183,183,185,140,371,87,85,165,50, + 371,95,284,284,50,174,66,26,95,118, + 30,54,82,185,22,87,33,63,284,284, + 284,284,284,284,264,6,82,95,95,95, + 148,344,165,183,183,124,95,284,284,284, + 284,174,284,30,54,24,174,176,66,170, + 66,60,71,185,95,57,63,168,165,284, + 82,185,1,95,285,140,165,165,95,85, + 82,11,121,189,121,189,30,1,183,85, + 85,66 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2232,72 +2639,73 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeRhs { public final static char scopeRhs[] = {0, - 322,3,60,0,126,0,321,3,102,0, - 126,172,0,126,179,74,0,216,0,254, - 126,55,124,0,20,0,297,126,55,48, - 0,20,53,0,33,132,0,20,53,0, - 0,297,126,55,48,203,0,20,178,0, - 254,126,55,132,0,180,127,0,141,0, - 218,3,296,0,296,0,2,0,126,0, - 254,126,55,131,0,180,127,223,0,180, - 127,22,223,0,180,127,317,22,0,128, - 188,167,127,0,128,0,188,167,127,0, - 134,128,0,171,0,313,126,171,0,126, - 171,0,222,128,0,167,312,242,0,136, - 0,0,0,0,135,0,0,0,0,311, - 126,165,253,0,127,0,253,0,129,0, - 0,127,0,310,126,165,252,0,127,0, - 0,44,127,0,0,152,3,0,126,284, - 283,126,74,282,171,0,283,126,74,282, - 171,0,215,0,216,0,282,171,0,96, - 0,0,215,0,216,0,203,96,0,0, - 215,0,216,0,283,126,282,171,0,215, - 0,203,0,0,215,0,226,126,3,0, - 126,0,0,0,0,0,226,126,3,215, - 0,222,3,0,211,126,0,208,0,146, - 0,172,167,127,0,10,0,0,0,0, - 213,63,0,125,0,226,126,3,183,0, - 183,0,2,0,0,126,0,0,0,0, - 0,199,3,0,201,0,235,126,165,39, - 30,0,180,127,59,62,0,196,128,0, - 128,180,127,280,62,0,180,127,280,62, - 0,180,127,70,123,59,0,235,126,165, - 244,59,0,235,126,165,244,225,59,0, - 277,278,126,165,123,307,56,0,277,278, - 126,165,307,56,0,180,127,276,56,0, - 135,0,188,180,127,276,242,0,136,0, - 180,127,276,242,0,188,167,127,10,0, - 167,127,10,0,167,127,0,93,136,0, - 269,126,145,0,269,126,171,0,162,84, - 0,302,161,304,305,3,81,0,126,171, - 0,304,305,3,81,0,128,0,126,171, - 0,162,3,75,191,80,0,126,128,0, - 191,80,0,108,2,131,126,128,0,224, - 3,75,0,199,168,0,33,169,0,168, - 0,175,33,169,0,224,3,85,0,191, - 155,224,3,83,0,62,171,0,224,3, - 83,0,126,171,62,171,0,303,126,165, - 0,162,0,213,77,0,30,171,0,162, - 107,159,0,30,169,0,178,3,0,126, - 149,0,218,3,0,213,63,266,0,162, - 63,0,178,3,299,66,127,0,126,0, - 0,0,0,299,66,127,0,2,145,126, - 0,0,0,0,178,3,46,0,147,0, - 125,48,167,127,0,31,147,0,93,136, - 31,147,0,219,180,127,0,146,31,147, - 0,178,3,51,0,162,3,51,0,162, - 3,68,178,55,42,0,178,55,42,0, - 20,2,131,126,0,162,3,68,178,55, - 45,0,178,55,45,0,162,3,68,178, - 55,47,0,178,55,47,0,162,3,68, - 178,55,43,0,178,55,43,0,218,3, - 125,188,167,127,10,0,125,188,167,127, - 10,0,136,2,0,126,0,218,3,124, - 259,167,127,10,0,259,167,127,10,0, - 135,2,0,126,0,218,3,135,0,218, - 3,140,0,162,63,140,0,261,0,31, - 0,31,139,0,166,0,134,0,162,3, - 0 + 338,3,59,0,126,0,337,3,113,0, + 126,180,0,127,188,74,0,224,0,197, + 166,126,10,0,136,0,166,126,10,0, + 135,0,271,127,54,124,0,20,0,309, + 127,54,55,0,20,53,0,33,132,0, + 20,53,0,0,309,127,54,55,215,0, + 20,186,0,271,127,54,132,0,189,126, + 0,141,0,227,3,308,0,308,0,2, + 0,126,0,271,127,54,131,0,189,126, + 237,0,189,126,22,237,0,189,126,332, + 22,0,128,197,166,126,0,128,0,197, + 166,126,0,134,128,0,172,0,328,127, + 172,0,127,172,0,230,128,0,166,327, + 235,0,136,0,0,0,0,135,0,0, + 0,0,326,127,164,236,0,127,0,236, + 0,129,0,0,127,0,325,127,164,270, + 0,127,0,0,44,127,0,0,150,3, + 0,127,296,295,127,74,294,172,0,295, + 127,74,294,172,0,223,0,224,0,294, + 172,0,96,0,0,223,0,224,0,211, + 96,0,0,223,0,224,0,295,127,294, + 172,0,223,0,211,0,0,223,0,240, + 127,3,0,126,0,0,0,0,0,240, + 127,3,222,0,231,3,0,220,127,0, + 216,0,146,0,176,166,126,0,10,0, + 0,0,0,226,60,0,125,0,240,127, + 3,195,0,195,0,2,0,0,126,0, + 0,0,0,0,211,3,0,209,0,252, + 127,164,38,27,0,189,126,61,63,0, + 204,128,0,128,189,126,292,63,0,189, + 126,292,63,0,189,126,70,123,61,0, + 252,127,164,262,61,0,252,127,164,262, + 239,61,0,289,290,127,164,123,322,56, + 0,289,290,127,164,322,56,0,189,126, + 288,56,0,197,189,126,288,235,0,189, + 126,288,235,0,166,126,0,93,136,0, + 286,127,149,0,286,127,172,0,158,84, + 0,317,161,319,320,3,81,0,126,179, + 0,319,320,3,81,0,128,0,126,179, + 0,158,3,75,204,80,0,126,128,0, + 204,80,0,108,2,131,126,128,0,238, + 3,75,0,211,174,0,33,169,0,174, + 0,183,33,169,0,238,3,85,0,204, + 152,238,3,83,0,62,179,0,238,3, + 83,0,126,179,62,179,0,318,127,164, + 0,158,0,226,77,0,30,179,0,158, + 102,185,0,30,177,0,148,64,167,3, + 0,167,3,0,20,161,126,0,158,102, + 162,0,30,169,0,198,3,0,126,149, + 0,227,3,0,226,60,283,0,158,60, + 0,198,3,314,67,126,0,126,0,0, + 0,0,314,67,126,0,2,145,126,0, + 0,0,0,198,3,45,0,147,0,125, + 55,166,126,0,31,147,0,93,136,31, + 147,0,228,189,126,0,146,31,147,0, + 198,3,49,0,158,3,49,0,158,3, + 64,198,54,41,0,198,54,41,0,20, + 2,131,126,0,158,3,64,198,54,44, + 0,198,54,44,0,158,3,64,198,54, + 46,0,198,54,46,0,158,3,64,198, + 54,42,0,198,54,42,0,227,3,125, + 197,166,126,10,0,125,197,166,126,10, + 0,136,2,0,126,0,227,3,124,276, + 166,126,10,0,276,166,126,10,0,135, + 2,0,126,0,227,3,135,0,227,3, + 140,0,158,60,140,0,278,0,31,0, + 31,139,0,165,0,134,0,158,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2305,38 +2713,44 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeState { public final static char scopeState[] = {0, - 4735,4861,4860,4827,0,3254,1991,3130,1154,0, - 3623,3565,3501,3398,3360,3322,3284,3246,3208,2988, - 2950,4437,0,948,0,1683,1341,1060,0,3047, - 2559,0,3623,3565,1812,1726,3501,3398,3360,3322, - 3284,3246,1094,3208,2988,2950,1597,1511,0,4753, - 3495,3510,0,1103,4352,0,1005,823,0,4533, - 4306,0,657,585,0,4273,4533,2808,3142,4306, - 3064,3474,4286,4064,2481,4050,606,2713,587,2692, - 0,4555,4549,0,4555,4549,4186,4447,4431,4113, - 4365,4349,4099,3603,3623,3565,3501,3398,3360,3322, - 3284,3246,3208,2988,2950,0,4555,4549,4186,4447, - 4431,4113,4365,4349,4099,3603,0,2739,873,0, - 2481,4273,4782,2808,3142,4458,2713,2979,4326,824, - 4320,4524,1322,3507,881,0,951,810,0,619, - 0,2544,1948,1776,1020,3142,4524,3064,587,2692, - 3487,2799,0,4242,542,2735,0,4726,4705,4688, - 4667,4659,4652,4641,4637,4587,4566,4818,4171,3458, - 4814,4807,4803,3223,4790,3195,2706,748,2744,1386, - 0,3525,2599,4726,4705,4688,2249,2162,4667,941, - 4659,4652,4641,4637,4587,3308,4389,4155,4566,2968, - 4818,2793,2780,2594,2245,4171,3458,2158,2862,4814, - 3422,4807,2727,4803,3223,4790,743,3195,2706,748, - 4242,624,2735,2744,1386,2623,2547,1330,634,2607, - 3064,3474,4286,4064,2481,4273,4050,4533,2808,3142, - 606,2713,587,4306,2692,2955,2527,951,810,4077, - 4027,4004,2254,2293,2361,2328,2452,2423,2393,2927, - 2900,2664,2636,2566,2494,3749,3724,3699,3160,3077, - 3981,3958,3935,3912,3889,3866,3843,3820,3797,3774, - 2828,2037,2206,2167,2119,2080,1243,1104,1391,1342, - 1287,891,1994,1061,834,753,696,1951,1908,1865, - 1822,1779,1736,1693,1650,1607,1564,1521,542,1478, - 1434,1200,1016,972,1156,0 + 4466,6304,6248,6150,0,3260,2778,2973,2704,0, + 5301,5239,5172,5040,4978,4916,4854,4792,4730,4509, + 4447,4794,0,2313,0,1983,1936,1654,0,2511, + 739,0,5301,5239,2377,1613,5172,5040,4978,4916, + 4854,4792,980,4730,4509,4447,2572,2309,0,4674, + 4930,3461,0,718,2767,0,1038,914,0,750, + 6008,0,1312,1202,0,5985,750,5415,4682,6008, + 4598,5129,2420,2222,3838,796,653,4220,4206,4166, + 0,5192,4369,0,5192,4369,5833,6201,6140,5820, + 6125,6051,5807,6027,5301,5239,5172,5040,4978,4916, + 4854,4792,4730,4509,4447,0,5192,4369,5833,6201, + 6140,5820,6125,6051,5807,6027,0,6021,5363,0, + 2284,1320,0,3838,5985,4737,5415,4682,6219,4220, + 2957,3905,810,6187,4312,2301,2959,648,0,3333, + 3434,3617,3526,3851,3811,3699,672,2917,994,2851, + 2785,2719,2653,2587,2521,2455,2389,2323,2257,2191, + 926,834,766,0,2552,1060,0,1111,0,2291, + 1175,1048,649,4682,4312,4598,4206,4166,3889,3883, + 3118,0,6021,5363,5932,600,4250,0,5829,5808, + 5428,5312,5180,5166,5007,4945,4883,4862,6267,6161, + 4800,4731,6094,5842,5330,4270,5173,4476,4455,4448, + 4350,3328,0,1857,1810,5829,5808,5428,1763,1669, + 5312,1042,5180,5166,5007,4945,4883,2485,2186,2092, + 2045,4862,1998,6267,6161,1951,1904,1716,1619,4800, + 4731,1523,1427,6094,3125,5842,2139,5330,4270,5173, + 1348,4476,4455,4448,5932,963,4250,4350,3328,2815, + 2749,2683,1410,901,4598,5129,2420,2222,3838,5985, + 796,750,5415,4682,653,4220,4206,6008,4166,2617, + 1024,2552,1060,5785,2917,4179,994,3333,2851,2785, + 2719,2653,2587,2521,2455,2389,2323,2257,2191,3434, + 3617,3526,3851,3811,3699,4139,4112,4085,5762,672, + 5739,926,834,766,1079,3396,3582,3490,3779,3747, + 3665,4421,4322,4058,4031,4004,3931,5390,5142,4702, + 4638,4611,5716,5693,5670,5647,5624,5601,5578,5554, + 5524,5501,5435,2983,3270,3228,3171,3129,3072,3030, + 1481,1431,1368,2144,1321,2097,2050,2003,1956,1909, + 1862,1815,1768,1721,1674,1627,600,1577,1528,1273, + 1170,1123,1219,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2344,61 +2758,67 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface InSymb { public final static char inSymb[] = {0, - 0,298,126,268,51,42,45,47,43,10, - 135,124,131,7,132,4,3,127,46,41, - 5,26,25,6,9,38,37,140,146,148, - 147,150,149,153,151,156,154,158,60,159, - 69,3,55,55,55,55,127,3,55,55, - 168,126,63,3,65,66,55,5,178,162, - 168,126,65,66,167,166,124,3,123,125, - 106,119,3,63,89,91,26,25,93,92, - 6,95,94,68,55,87,88,9,97,96, - 99,98,100,117,116,115,114,113,112,111, - 110,109,108,70,107,101,178,162,178,178, - 178,178,167,218,126,126,126,270,271,253, - 272,242,273,56,274,275,10,127,63,63, - 126,124,155,126,63,3,216,215,135,125, - 124,10,127,63,299,3,188,4,178,48, - 127,48,218,162,147,147,146,146,146,149, - 149,149,149,148,148,151,150,150,154,153, - 156,162,158,68,68,68,68,188,259,254, - 257,254,211,127,172,165,312,276,307,276, - 127,180,167,254,211,213,159,222,126,3, - 127,167,204,3,300,168,152,261,188,127, - 180,167,72,3,3,3,3,125,124,69, - 167,9,6,126,167,229,125,124,127,123, - 165,127,167,48,226,227,145,228,126,167, - 48,178,126,126,4,219,5,48,162,162, - 162,162,3,3,172,172,311,127,169,223, - 59,48,203,62,171,314,125,124,230,230, - 180,165,126,180,188,155,70,222,199,187, - 183,127,3,126,69,226,188,155,263,266, - 63,181,4,123,125,218,218,6,126,167, - 244,225,55,48,280,282,126,3,183,230, - 230,126,126,188,126,278,123,279,126,70, - 70,3,180,167,199,126,211,155,125,126, - 3,63,162,4,172,185,188,165,244,68, - 55,127,74,126,211,313,72,291,199,124, - 127,126,126,126,72,278,277,70,69,220, - 126,126,263,218,213,126,128,126,165,30, - 48,171,64,59,62,126,180,126,283,72, - 69,72,70,167,211,316,223,22,127,277, - 126,226,220,235,237,126,39,126,3,123, - 59,297,48,10,40,128,283,165,295,127, - 296,69,127,22,317,180,60,155,126,235, - 126,165,269,247,281,39,70,127,69,68, - 55,229,229,284,126,69,180,3,180,127, - 127,3,126,126,3,70,69,155,127,180, - 126,70,70,126,303,79,77,1,162,8, - 85,83,81,80,75,82,84,78,76,59, - 74,218,180,180,322,220,235,152,165,252, - 180,225,297,285,102,8,72,213,72,3, - 3,3,191,3,123,162,123,179,69,126, - 126,165,225,68,3,72,224,168,224,305, - 145,75,224,126,126,40,90,321,168,155, - 199,155,304,126,3,155,285,310,229,155, - 155,126,70,191,161,269,162,190,69,70, - 121,302,155,190,8,155 + 0,313,127,285,49,41,44,46,42,10, + 135,124,131,8,132,4,3,126,45,39, + 6,35,34,5,7,37,36,140,145,147, + 146,153,148,156,155,159,157,160,59,162, + 68,3,54,54,54,54,126,3,54,54, + 174,127,60,3,66,67,54,6,198,158, + 174,127,66,67,166,165,124,3,123,125, + 117,119,3,60,91,98,35,34,100,99, + 5,90,89,64,54,86,87,7,93,92, + 95,94,96,112,111,110,109,108,107,106, + 105,104,103,70,102,101,198,158,198,198, + 198,198,166,227,127,127,127,255,256,236, + 257,235,258,56,287,259,10,126,60,60, + 127,124,152,127,60,3,223,222,135,125, + 124,10,126,60,314,3,197,4,198,55, + 126,55,227,158,146,146,145,145,145,148, + 148,148,148,147,147,155,153,153,157,156, + 159,158,160,64,64,64,64,197,276,271, + 127,249,3,167,148,175,169,183,177,184, + 185,274,271,220,126,176,164,327,288,322, + 288,126,189,166,271,220,226,162,231,127, + 3,126,166,216,3,315,174,150,278,197, + 126,189,166,71,3,3,3,3,125,124, + 255,256,257,258,336,259,10,167,90,89, + 54,7,93,92,95,94,96,112,111,110, + 109,108,107,106,105,104,103,70,102,101, + 68,166,7,5,127,166,243,125,124,126, + 123,164,126,166,55,240,241,149,242,127, + 166,55,198,127,127,4,228,6,55,158, + 158,158,158,3,3,126,64,148,148,148, + 169,167,167,177,175,183,158,184,176,176, + 326,126,170,237,61,55,215,63,172,329, + 125,124,244,244,189,164,127,189,197,152, + 70,231,211,200,195,126,3,127,68,240, + 197,152,280,283,60,190,4,123,125,227, + 227,166,148,71,5,127,166,262,239,54, + 55,292,294,127,3,195,244,244,127,127, + 197,127,290,123,291,127,70,70,3,189, + 166,211,127,220,152,125,127,3,60,158, + 4,197,176,173,197,164,262,64,54,126, + 74,127,220,328,71,303,211,124,126,127, + 127,127,71,290,289,70,68,229,127,127, + 280,227,226,127,128,127,164,27,55,172, + 65,61,63,127,189,127,295,71,68,71, + 70,166,220,331,237,22,126,289,127,240, + 229,252,254,127,38,127,3,123,61,309, + 55,10,53,128,295,164,307,126,308,68, + 126,22,332,189,59,152,127,252,127,164, + 286,265,293,38,70,126,68,64,54,243, + 243,296,127,68,189,3,189,126,126,3, + 127,127,3,70,68,152,126,189,127,70, + 70,127,318,79,77,1,158,9,85,83, + 81,80,75,82,84,78,76,61,74,227, + 189,189,338,229,252,150,164,270,189,239, + 309,297,113,9,71,226,71,3,3,3, + 204,3,123,158,123,188,68,127,127,164, + 239,64,3,71,238,174,238,320,149,75, + 238,127,127,53,97,337,174,152,211,152, + 319,127,3,152,297,325,243,152,152,127, + 70,204,161,286,158,203,68,70,121,317, + 152,203,9,152 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2578,6 +2998,20 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP "logical_and_expression", "logical_or_expression", "assignment_expression", + "relational_expression_inTempla" + + "te", + "equality_expression_inTemplate", + "and_expression_inTemplate", + "exclusive_or_expression_inTemp" + + "late", + "inclusive_or_expression_inTemp" + + "late", + "logical_and_expression_inTempl" + + "ate", + "logical_or_expression_inTempla" + + "te", + "assignment_expression_inTempla" + + "te", "expression_list_actual", "statement", "compound_statement", @@ -2653,6 +3087,10 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP "template_parameter", "template_argument_list", "template_argument", + "type_name_specifier_inTemplate", + "type_name_declaration_specifie" + + "rs_inTemplate", + "type_specifier_seq_inTemplate", "handler", "exception_declaration", "type_id_list" @@ -2662,10 +3100,10 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 61, - SCOPE_UBOUND = 116, - SCOPE_SIZE = 117, - MAX_NAME_LENGTH = 37; + ERROR_SYMBOL = 62, + SCOPE_UBOUND = 121, + SCOPE_SIZE = 122, + MAX_NAME_LENGTH = 43; public final int getErrorSymbol() { return ERROR_SYMBOL; } public final int getScopeUbound() { return SCOPE_UBOUND; } @@ -2673,20 +3111,20 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 546, + NUM_STATES = 604, NT_OFFSET = 122, - LA_STATE_OFFSET = 5984, + LA_STATE_OFFSET = 7461, MAX_LA = 2147483647, - NUM_RULES = 541, - NUM_NONTERMINALS = 204, - NUM_SYMBOLS = 326, + NUM_RULES = 599, + NUM_NONTERMINALS = 225, + NUM_SYMBOLS = 347, SEGMENT_SIZE = 8192, - START_STATE = 3492, + START_STATE = 3365, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, - ACCEPT_ACTION = 5075, - ERROR_ACTION = 5443; + ACCEPT_ACTION = 6422, + ERROR_ACTION = 6862; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java index c9c84d2df7f..c9f0e9eaf7b 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java @@ -15,127 +15,127 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPExpressionParsersym { public final static int - TK_asm = 64, - TK_auto = 28, + TK_asm = 65, + TK_auto = 25, TK_bool = 11, TK_break = 76, TK_case = 77, - TK_catch = 102, + TK_catch = 113, TK_char = 12, - TK_class = 40, + TK_class = 53, TK_const = 23, - TK_const_cast = 42, + TK_const_cast = 41, TK_continue = 78, TK_default = 79, - TK_delete = 65, + TK_delete = 66, TK_do = 80, TK_double = 13, - TK_dynamic_cast = 43, + TK_dynamic_cast = 42, TK_else = 121, TK_enum = 56, - TK_explicit = 29, - TK_export = 86, - TK_extern = 30, - TK_false = 44, + TK_explicit = 26, + TK_export = 88, + TK_extern = 27, + TK_false = 43, TK_float = 14, TK_for = 81, - TK_friend = 31, + TK_friend = 28, TK_goto = 82, TK_if = 83, - TK_inline = 32, + TK_inline = 29, TK_int = 15, TK_long = 16, - TK_mutable = 33, - TK_namespace = 59, - TK_new = 66, - TK_operator = 7, - TK_private = 103, - TK_protected = 104, - TK_public = 105, - TK_register = 34, - TK_reinterpret_cast = 45, + TK_mutable = 30, + TK_namespace = 61, + TK_new = 67, + TK_operator = 8, + TK_private = 114, + TK_protected = 115, + TK_public = 116, + TK_register = 31, + TK_reinterpret_cast = 44, TK_return = 84, TK_short = 17, TK_signed = 18, - TK_sizeof = 46, - TK_static = 35, - TK_static_cast = 47, + TK_sizeof = 45, + TK_static = 32, + TK_static_cast = 46, TK_struct = 57, TK_switch = 85, - TK_template = 48, - TK_this = 49, - TK_throw = 60, + TK_template = 55, + TK_this = 47, + TK_throw = 59, TK_try = 74, - TK_true = 50, - TK_typedef = 36, - TK_typeid = 51, + TK_true = 48, + TK_typedef = 33, + TK_typeid = 49, TK_typename = 10, TK_union = 58, TK_unsigned = 19, - TK_using = 62, + TK_using = 63, TK_virtual = 22, TK_void = 20, TK_volatile = 24, TK_wchar_t = 21, TK_while = 75, - TK_integer = 52, - TK_floating = 53, - TK_charconst = 54, - TK_stringlit = 39, + TK_integer = 50, + TK_floating = 51, + TK_charconst = 52, + TK_stringlit = 38, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 8, + TK_EndOfCompletion = 9, TK_Invalid = 122, - TK_LeftBracket = 63, + TK_LeftBracket = 60, TK_LeftParen = 3, TK_Dot = 119, - TK_DotStar = 91, - TK_Arrow = 106, - TK_ArrowStar = 89, - TK_PlusPlus = 37, - TK_MinusMinus = 38, - TK_And = 9, - TK_Star = 6, - TK_Plus = 25, - TK_Minus = 26, - TK_Tilde = 5, - TK_Bang = 41, - TK_Slash = 92, - TK_Percent = 93, - TK_RightShift = 87, - TK_LeftShift = 88, - TK_LT = 55, - TK_GT = 68, - TK_LE = 94, - TK_GE = 95, - TK_EQ = 96, - TK_NE = 97, - TK_Caret = 98, - TK_Or = 99, - TK_AndAnd = 100, + TK_DotStar = 98, + TK_Arrow = 117, + TK_ArrowStar = 91, + TK_PlusPlus = 36, + TK_MinusMinus = 37, + TK_And = 7, + TK_Star = 5, + TK_Plus = 34, + TK_Minus = 35, + TK_Tilde = 6, + TK_Bang = 39, + TK_Slash = 99, + TK_Percent = 100, + TK_RightShift = 86, + TK_LeftShift = 87, + TK_LT = 54, + TK_GT = 64, + TK_LE = 89, + TK_GE = 90, + TK_EQ = 92, + TK_NE = 93, + TK_Caret = 94, + TK_Or = 95, + TK_AndAnd = 96, TK_OrOr = 101, - TK_Question = 107, - TK_Colon = 72, + TK_Question = 102, + TK_Colon = 71, TK_ColonColon = 4, - TK_DotDotDot = 90, + TK_DotDotDot = 97, TK_Assign = 70, - TK_StarAssign = 108, - TK_SlashAssign = 109, - TK_PercentAssign = 110, - TK_PlusAssign = 111, - TK_MinusAssign = 112, - TK_RightShiftAssign = 113, - TK_LeftShiftAssign = 114, - TK_AndAssign = 115, - TK_CaretAssign = 116, - TK_OrAssign = 117, - TK_Comma = 69, + TK_StarAssign = 103, + TK_SlashAssign = 104, + TK_PercentAssign = 105, + TK_PlusAssign = 106, + TK_MinusAssign = 107, + TK_RightShiftAssign = 108, + TK_LeftShiftAssign = 109, + TK_AndAssign = 110, + TK_CaretAssign = 111, + TK_OrAssign = 112, + TK_Comma = 68, TK_RightBracket = 118, - TK_RightParen = 73, - TK_RightBrace = 71, - TK_SemiColon = 27, - TK_LeftBrace = 67, - TK_ERROR_TOKEN = 61, + TK_RightParen = 72, + TK_RightBrace = 73, + TK_SemiColon = 40, + TK_LeftBrace = 69, + TK_ERROR_TOKEN = 62, TK_EOF_TOKEN = 120; public final static String orderedTerminalSymbols[] = { @@ -144,11 +144,11 @@ public interface CPPExpressionParsersym { "Completion", "LeftParen", "ColonColon", - "Tilde", "Star", + "Tilde", + "And", "operator", "EndOfCompletion", - "And", "typename", "bool", "char", @@ -164,9 +164,6 @@ public interface CPPExpressionParsersym { "virtual", "const", "volatile", - "Plus", - "Minus", - "SemiColon", "auto", "explicit", "extern", @@ -176,43 +173,46 @@ public interface CPPExpressionParsersym { "register", "static", "typedef", + "Plus", + "Minus", "PlusPlus", "MinusMinus", "stringlit", - "class", "Bang", + "SemiColon", "const_cast", "dynamic_cast", "false", "reinterpret_cast", "sizeof", "static_cast", - "template", "this", "true", "typeid", "integer", "floating", "charconst", + "class", "LT", + "template", "enum", "struct", "union", - "namespace", "throw", + "LeftBracket", + "namespace", "ERROR_TOKEN", "using", - "LeftBracket", + "GT", "asm", "delete", "new", - "LeftBrace", - "GT", "Comma", + "LeftBrace", "Assign", - "RightBrace", "Colon", "RightParen", + "RightBrace", "try", "while", "break", @@ -225,27 +225,22 @@ public interface CPPExpressionParsersym { "if", "return", "switch", - "export", "RightShift", "LeftShift", - "ArrowStar", - "DotDotDot", - "DotStar", - "Slash", - "Percent", + "export", "LE", "GE", + "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd", + "DotDotDot", + "DotStar", + "Slash", + "Percent", "OrOr", - "catch", - "private", - "protected", - "public", - "Arrow", "Question", "StarAssign", "SlashAssign", @@ -257,6 +252,11 @@ public interface CPPExpressionParsersym { "AndAssign", "CaretAssign", "OrAssign", + "catch", + "private", + "protected", + "public", + "Arrow", "RightBracket", "Dot", "EOF_TOKEN", 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 abf24e58f61..063bcac846a 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 @@ -248,7 +248,13 @@ public void setTokens(List tokens) { public CPPNoCastExpressionParser(ITokenStream stream, Map properties) { // constructor for creating secondary parser initActions(properties); tokenMap = new TokenMap(CPPNoCastExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); -} +} + + public CPPNoCastExpressionParser(ITokenStream stream, IScanner scanner, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map properties) { // constructor for creating secondary parser + initActions(properties); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + tokenMap = new TokenMap(CPPNoCastExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); +} public void ruleAction(int ruleNumber) @@ -809,1131 +815,1359 @@ public CPPNoCastExpressionParser(ITokenStream stream, Map propert } // - // Rule 140: throw_expression ::= throw + // Rule 141: relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression // - case 140: { action. consumeExpressionThrow(false); break; + case 141: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 141: throw_expression ::= throw assignment_expression + // Rule 142: relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression ) // - case 141: { action. consumeExpressionThrow(true); break; + case 142: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 144: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 143: relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression // - case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 145: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 144: relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression // - case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 146: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 146: equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate // - case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 147: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 147: equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate // - case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 148: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 149: and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate // - case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 149: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 151: exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate // - case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 150: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 153: inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate // - case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 151: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 155: logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate // - case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 152: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 157: logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate // - case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 157: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 153: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 159: conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate // - case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 159: { action. consumeExpressionConditional(); break; } // - // Rule 154: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 162: assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate // - case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 162: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 156: expression_list ::= expression_list_actual + // Rule 163: assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate // - case 156: { action. consumeExpressionList(); break; + case 163: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 160: expression_list_opt ::= $Empty + // Rule 164: assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate // - case 160: { action. consumeEmpty(); break; + case 164: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 162: expression_opt ::= $Empty + // Rule 165: assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate // - case 162: { action. consumeEmpty(); break; + case 165: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 165: constant_expression_opt ::= $Empty + // Rule 166: assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate // - case 165: { action. consumeEmpty(); break; + case 166: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 174: statement ::= ERROR_TOKEN + // Rule 167: assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate // - case 174: { action. consumeStatementProblem(); break; + case 167: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 175: labeled_statement ::= identifier : statement + // Rule 168: assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate // - case 175: { action. consumeStatementLabeled(); break; + case 168: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 176: labeled_statement ::= case constant_expression : statement + // Rule 169: assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate // - case 176: { action. consumeStatementCase(); break; + case 169: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 177: labeled_statement ::= default : statement + // Rule 170: assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate // - case 177: { action. consumeStatementDefault(); break; + case 170: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 178: expression_statement ::= expression ; + // Rule 171: assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate // - case 178: { action. consumeStatementExpression(); break; + case 171: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 179: expression_statement ::= ; + // Rule 172: assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate // - case 179: { action. consumeStatementNull(); break; + case 172: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 180: compound_statement ::= { statement_seq } + // Rule 173: throw_expression ::= throw // - case 180: { action. consumeStatementCompoundStatement(true); break; + case 173: { action. consumeExpressionThrow(false); break; } // - // Rule 181: compound_statement ::= { } + // Rule 174: throw_expression ::= throw assignment_expression // - case 181: { action. consumeStatementCompoundStatement(false); break; + case 174: { action. consumeExpressionThrow(true); break; } // - // Rule 184: selection_statement ::= if ( condition ) statement + // Rule 177: assignment_expression ::= logical_or_expression = assignment_expression // - case 184: { action. consumeStatementIf(false); break; + case 177: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 185: selection_statement ::= if ( condition ) statement else statement + // Rule 178: assignment_expression ::= logical_or_expression *= assignment_expression // - case 185: { action. consumeStatementIf(true); break; + case 178: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 186: selection_statement ::= switch ( condition ) statement + // Rule 179: assignment_expression ::= logical_or_expression /= assignment_expression // - case 186: { action. consumeStatementSwitch(); break; + case 179: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 188: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 180: assignment_expression ::= logical_or_expression %= assignment_expression // - case 188: { action. consumeConditionDeclaration(); break; + case 180: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 190: condition_opt ::= $Empty + // Rule 181: assignment_expression ::= logical_or_expression += assignment_expression // - case 190: { action. consumeEmpty(); break; + case 181: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 191: iteration_statement ::= while ( condition ) statement + // Rule 182: assignment_expression ::= logical_or_expression -= assignment_expression // - case 191: { action. consumeStatementWhileLoop(); break; + case 182: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 192: iteration_statement ::= do statement while ( expression ) ; + // Rule 183: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 192: { action. consumeStatementDoLoop(true); break; + case 183: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 193: iteration_statement ::= do statement + // Rule 184: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 193: { action. consumeStatementDoLoop(false); break; + case 184: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 194: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 185: assignment_expression ::= logical_or_expression &= assignment_expression // - case 194: { action. consumeStatementForLoop(); break; + case 185: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 196: for_init_statement ::= simple_declaration_with_declspec + // Rule 186: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 196: { action. consumeStatementDeclaration(); break; + case 186: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 197: jump_statement ::= break ; + // Rule 187: assignment_expression ::= logical_or_expression |= assignment_expression // - case 197: { action. consumeStatementBreak(); break; + case 187: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 198: jump_statement ::= continue ; + // Rule 189: expression_list ::= expression_list_actual // - case 198: { action. consumeStatementContinue(); break; + case 189: { action. consumeExpressionList(); break; } // - // Rule 199: jump_statement ::= return expression ; + // Rule 193: expression_list_opt ::= $Empty // - case 199: { action. consumeStatementReturn(true); break; + case 193: { action. consumeEmpty(); break; } // - // Rule 200: jump_statement ::= return ; + // Rule 195: expression_opt ::= $Empty // - case 200: { action. consumeStatementReturn(false); break; + case 195: { action. consumeEmpty(); break; } // - // Rule 201: jump_statement ::= goto identifier_token ; + // Rule 198: constant_expression_opt ::= $Empty // - case 201: { action. consumeStatementGoto(); break; + case 198: { action. consumeEmpty(); break; } // - // Rule 202: declaration_statement ::= block_declaration + // Rule 207: statement ::= ERROR_TOKEN // - case 202: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 207: { action. consumeStatementProblem(); break; } // - // Rule 203: declaration_statement ::= function_definition + // Rule 208: labeled_statement ::= identifier : statement // - case 203: { action. consumeStatementDeclaration(); break; + case 208: { action. consumeStatementLabeled(); break; } // - // Rule 211: declaration ::= ERROR_TOKEN + // Rule 209: labeled_statement ::= case constant_expression : statement // - case 211: { action. consumeDeclarationProblem(); break; + case 209: { action. consumeStatementCase(); break; } // - // Rule 221: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 210: labeled_statement ::= default : statement // - case 221: { action. consumeDeclarationSimple(true); break; + case 210: { action. consumeStatementDefault(); break; } // - // Rule 222: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 211: expression_statement ::= expression ; // - case 222: { action. consumeDeclarationSimple(true); break; + case 211: { action. consumeStatementExpression(); break; } // - // Rule 223: declaration_specifiers ::= simple_declaration_specifiers + // Rule 212: expression_statement ::= ; // - case 223: { action. consumeDeclarationSpecifiersSimple(); break; + case 212: { action. consumeStatementNull(); break; } // - // Rule 224: declaration_specifiers ::= class_declaration_specifiers + // Rule 213: compound_statement ::= { statement_seq } // - case 224: { action. consumeDeclarationSpecifiersComposite(); break; + case 213: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 225: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 214: compound_statement ::= { } // - case 225: { action. consumeDeclarationSpecifiersComposite(); break; + case 214: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 226: declaration_specifiers ::= enum_declaration_specifiers + // Rule 217: selection_statement ::= if ( condition ) statement // - case 226: { action. consumeDeclarationSpecifiersComposite(); break; + case 217: { action. consumeStatementIf(false); break; } // - // Rule 227: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 218: selection_statement ::= if ( condition ) statement else statement // - case 227: { action. consumeDeclarationSpecifiersTypeName(); break; + case 218: { action. consumeStatementIf(true); break; } // - // Rule 229: declaration_specifiers_opt ::= $Empty + // Rule 219: selection_statement ::= switch ( condition ) statement // - case 229: { action. consumeEmpty(); break; + case 219: { action. consumeStatementSwitch(); break; } // - // Rule 233: no_type_declaration_specifier ::= friend + // Rule 221: condition ::= type_specifier_seq declarator = assignment_expression // - case 233: { action. consumeToken(); break; + case 221: { action. consumeConditionDeclaration(); break; } // - // Rule 234: no_type_declaration_specifier ::= typedef + // Rule 223: condition_opt ::= $Empty // - case 234: { action. consumeToken(); break; + case 223: { action. consumeEmpty(); break; } // - // Rule 254: storage_class_specifier ::= auto + // Rule 224: iteration_statement ::= while ( condition ) statement // - case 254: { action. consumeToken(); break; + case 224: { action. consumeStatementWhileLoop(); break; } // - // Rule 255: storage_class_specifier ::= register + // Rule 225: iteration_statement ::= do statement while ( expression ) ; // - case 255: { action. consumeToken(); break; + case 225: { action. consumeStatementDoLoop(true); break; } // - // Rule 256: storage_class_specifier ::= static + // Rule 226: iteration_statement ::= do statement // - case 256: { action. consumeToken(); break; + case 226: { action. consumeStatementDoLoop(false); break; } // - // Rule 257: storage_class_specifier ::= extern + // Rule 227: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 257: { action. consumeToken(); break; + case 227: { action. consumeStatementForLoop(); break; } // - // Rule 258: storage_class_specifier ::= mutable + // Rule 229: for_init_statement ::= simple_declaration_with_declspec // - case 258: { action. consumeToken(); break; + case 229: { action. consumeStatementDeclaration(); break; } // - // Rule 259: function_specifier ::= inline + // Rule 230: jump_statement ::= break ; // - case 259: { action. consumeToken(); break; + case 230: { action. consumeStatementBreak(); break; } // - // Rule 260: function_specifier ::= virtual + // Rule 231: jump_statement ::= continue ; // - case 260: { action. consumeToken(); break; + case 231: { action. consumeStatementContinue(); break; } // - // Rule 261: function_specifier ::= explicit + // Rule 232: jump_statement ::= return expression ; // - case 261: { action. consumeToken(); break; + case 232: { action. consumeStatementReturn(true); break; } // - // Rule 262: simple_type_specifier ::= simple_type_specifier_token + // Rule 233: jump_statement ::= return ; // - case 262: { action. consumeToken(); break; + case 233: { action. consumeStatementReturn(false); break; } // - // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 234: jump_statement ::= goto identifier_token ; // - case 276: { action. consumeQualifiedId(false); break; + case 234: { action. consumeStatementGoto(); break; } // - // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 235: declaration_statement ::= block_declaration // - case 277: { action. consumeQualifiedId(false); break; + case 235: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 236: declaration_statement ::= function_definition // - case 278: { action. consumeQualifiedId(false); break; + case 236: { action. consumeStatementDeclaration(); break; } // - // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 244: declaration ::= ERROR_TOKEN // - case 279: { action. consumeQualifiedId(true); break; + case 244: { action. consumeDeclarationProblem(); break; } // - // Rule 281: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 254: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 281: { action. consumeTypeSpecifierElaborated(false); break; + case 254: { action. consumeDeclarationSimple(true); break; } // - // Rule 282: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 255: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 282: { action. consumeTypeSpecifierElaborated(true); break; + case 255: { action. consumeDeclarationSimple(true); break; } // - // Rule 283: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 256: declaration_specifiers ::= simple_declaration_specifiers // - case 283: { action. consumeTypeSpecifierElaborated(false); break; + case 256: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 287: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 257: declaration_specifiers ::= class_declaration_specifiers // - case 287: { action. consumeTypeSpecifierEnumeration(false); break; + case 257: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 288: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 258: declaration_specifiers ::= elaborated_declaration_specifiers // - case 288: { action. consumeTypeSpecifierEnumeration(true); break; + case 258: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 294: enumerator_definition ::= identifier_token + // Rule 259: declaration_specifiers ::= enum_declaration_specifiers // - case 294: { action. consumeEnumerator(false); break; + case 259: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 295: enumerator_definition ::= identifier_token = constant_expression + // Rule 260: declaration_specifiers ::= type_name_declaration_specifiers // - case 295: { action. consumeEnumerator(true); break; + case 260: { action. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 297: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } + // Rule 262: declaration_specifiers_opt ::= $Empty // - case 297: { action. consumeNamespaceDefinition(true); break; + case 262: { action. consumeEmpty(); break; } // - // Rule 298: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } + // Rule 266: no_type_declaration_specifier ::= friend // - case 298: { action. consumeNamespaceDefinition(false); break; + case 266: { action. consumeToken(); break; } // - // Rule 300: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 267: no_type_declaration_specifier ::= typedef // - case 300: { action. consumeNamespaceAliasDefinition(); break; + case 267: { action. consumeToken(); break; } // - // Rule 301: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 287: storage_class_specifier ::= auto // - case 301: { action. consumeUsingDeclaration(); break; + case 287: { action. consumeToken(); break; } // - // Rule 302: typename_opt ::= typename + // Rule 288: storage_class_specifier ::= register // - case 302: { action. consumePlaceHolder(); break; + case 288: { action. consumeToken(); break; } // - // Rule 303: typename_opt ::= $Empty + // Rule 289: storage_class_specifier ::= static // - case 303: { action. consumeEmpty(); break; + case 289: { action. consumeToken(); break; } // - // Rule 304: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 290: storage_class_specifier ::= extern // - case 304: { action. consumeUsingDirective(); break; + case 290: { action. consumeToken(); break; } // - // Rule 305: asm_definition ::= asm ( stringlit ) ; + // Rule 291: storage_class_specifier ::= mutable // - case 305: { action. consumeDeclarationASM(); break; + case 291: { action. consumeToken(); break; } // - // Rule 306: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 292: function_specifier ::= inline // - case 306: { action. consumeLinkageSpecification(); break; + case 292: { action. consumeToken(); break; } // - // Rule 307: linkage_specification ::= extern stringlit declaration + // Rule 293: function_specifier ::= virtual // - case 307: { action. consumeLinkageSpecification(); break; + case 293: { action. consumeToken(); break; } // - // Rule 312: init_declarator_complete ::= init_declarator + // Rule 294: function_specifier ::= explicit // - case 312: { action. consumeInitDeclaratorComplete(); break; + case 294: { action. consumeToken(); break; } // - // Rule 314: init_declarator ::= complete_declarator initializer + // Rule 295: simple_type_specifier ::= simple_type_specifier_token // - case 314: { action. consumeDeclaratorWithInitializer(true); break; + case 295: { action. consumeToken(); break; } // - // Rule 317: declarator ::= ptr_operator_seq direct_declarator + // Rule 309: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 317: { action. consumeDeclaratorWithPointer(true); break; + case 309: { action. consumeQualifiedId(false); break; } // - // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 310: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 319: { action. consumeDeclaratorWithPointer(true); break; + case 310: { action. consumeQualifiedId(false); break; } // - // Rule 323: basic_direct_declarator ::= declarator_id_name + // Rule 311: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 323: { action. consumeDirectDeclaratorIdentifier(); break; + case 311: { action. consumeQualifiedId(false); break; } // - // Rule 324: basic_direct_declarator ::= ( declarator ) + // Rule 312: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 324: { action. consumeDirectDeclaratorBracketed(); break; + case 312: { action. consumeQualifiedId(true); break; } // - // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 314: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 325: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 314: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 315: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 326: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 315: { action. consumeTypeSpecifierElaborated(true); break; } // - // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 316: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 327: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 316: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 328: array_modifier ::= [ constant_expression ] + // Rule 320: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 328: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 320: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 329: array_modifier ::= [ ] + // Rule 321: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 329: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 321: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 330: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 327: enumerator_definition ::= identifier_token // - case 330: { action. consumePointer(); break; + case 327: { action. consumeEnumerator(false); break; } // - // Rule 331: ptr_operator ::= pointer_hook & pointer_hook + // Rule 328: enumerator_definition ::= identifier_token = constant_expression // - case 331: { action. consumeReferenceOperator(); break; + case 328: { action. consumeEnumerator(true); break; } // - // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 330: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } // - case 332: { action. consumePointerToMember(); break; + case 330: { action. consumeNamespaceDefinition(true); break; } // - // Rule 339: cv_qualifier ::= const + // Rule 331: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } // - case 339: { action. consumeToken(); break; + case 331: { action. consumeNamespaceDefinition(false); break; } // - // Rule 340: cv_qualifier ::= volatile + // Rule 333: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 340: { action. consumeToken(); break; + case 333: { action. consumeNamespaceAliasDefinition(); break; } // - // Rule 342: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 334: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 342: { action. consumeQualifiedId(false); break; + case 334: { action. consumeUsingDeclaration(); break; } // - // Rule 343: type_id ::= type_specifier_seq + // Rule 335: typename_opt ::= typename // - case 343: { action. consumeTypeId(false); break; + case 335: { action. consumePlaceHolder(); break; } // - // Rule 344: type_id ::= type_specifier_seq abstract_declarator + // Rule 336: typename_opt ::= $Empty // - case 344: { action. consumeTypeId(true); break; + case 336: { action. consumeEmpty(); break; } // - // Rule 347: abstract_declarator ::= ptr_operator_seq + // Rule 337: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 347: { action. consumeDeclaratorWithPointer(false); break; + case 337: { action. consumeUsingDirective(); break; } // - // Rule 348: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 338: asm_definition ::= asm ( stringlit ) ; // - case 348: { action. consumeDeclaratorWithPointer(true); break; + case 338: { action. consumeDeclarationASM(); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 339: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 352: { action. consumeDirectDeclaratorBracketed(); break; + case 339: { action. consumeLinkageSpecification(); break; } // - // Rule 353: basic_direct_abstract_declarator ::= ( ) + // Rule 340: linkage_specification ::= extern stringlit declaration // - case 353: { action. consumeAbstractDeclaratorEmpty(); break; + case 340: { action. consumeLinkageSpecification(); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_modifier + // Rule 345: init_declarator_complete ::= init_declarator // - case 354: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 345: { action. consumeInitDeclaratorComplete(); break; } // - // Rule 355: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 347: init_declarator ::= complete_declarator initializer // - case 355: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 347: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 356: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 350: declarator ::= ptr_operator_seq direct_declarator // - case 356: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 350: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 352: function_declarator ::= ptr_operator_seq direct_declarator // - case 357: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 352: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 358: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 356: basic_direct_declarator ::= declarator_id_name // - case 358: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; + case 356: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 357: basic_direct_declarator ::= ( declarator ) // - case 359: { action. consumePlaceHolder(); break; + case 357: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 358: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 360: { action. consumeEmpty(); break; + case 358: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 359: array_direct_declarator ::= array_direct_declarator array_modifier // - case 361: { action. consumePlaceHolder(); break; + case 359: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 367: abstract_declarator_opt ::= $Empty + // Rule 360: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 367: { action. consumeEmpty(); break; + case 360: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 361: array_modifier ::= [ constant_expression ] // - case 368: { action. consumeParameterDeclaration(); break; + case 361: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 369: parameter_declaration ::= declaration_specifiers + // Rule 362: array_modifier ::= [ ] // - case 369: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 362: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 371: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 363: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 371: { action. consumeDeclaratorWithInitializer(true); break; + case 363: { action. consumePointer(); break; } // - // Rule 373: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 364: ptr_operator ::= pointer_hook & pointer_hook // - case 373: { action. consumeDeclaratorWithInitializer(true); break; + case 364: { action. consumeReferenceOperator(); break; } // - // Rule 374: parameter_init_declarator ::= = parameter_initializer + // Rule 365: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 374: { action. consumeDeclaratorWithInitializer(false); break; + case 365: { action. consumePointerToMember(); break; } // - // Rule 375: parameter_initializer ::= assignment_expression + // Rule 372: cv_qualifier ::= const // - case 375: { action. consumeInitializer(); break; + case 372: { action. consumeToken(); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 373: cv_qualifier ::= volatile // - case 376: { action. consumeFunctionDefinition(false); break; + case 373: { action. consumeToken(); break; } // - // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 375: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 377: { action. consumeFunctionDefinition(true); break; + case 375: { action. consumeQualifiedId(false); break; } // - // Rule 380: initializer ::= ( expression_list ) + // Rule 376: type_id ::= type_specifier_seq // - case 380: { action. consumeInitializerConstructor(); break; + case 376: { action. consumeTypeId(false); break; } // - // Rule 381: initializer_clause ::= assignment_expression + // Rule 377: type_id ::= type_specifier_seq abstract_declarator // - case 381: { action. consumeInitializer(); break; + case 377: { action. consumeTypeId(true); break; } // - // Rule 382: initializer_clause ::= initializer_list + // Rule 380: abstract_declarator ::= ptr_operator_seq // - case 382: { action. consumeInitializer(); break; + case 380: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 383: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // Rule 381: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 383: { action. consumeInitializerList(); break; + case 381: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 384: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // Rule 385: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 384: { action. consumeInitializerList(); break; + case 385: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 385: initializer_list ::= { } + // Rule 386: basic_direct_abstract_declarator ::= ( ) // - case 385: { action. consumeInitializerList(); break; + case 386: { action. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 386: start_initializer_list ::= $Empty + // Rule 387: array_direct_abstract_declarator ::= array_modifier // - case 386: { action. initializerListStart(); break; + case 387: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 387: end_initializer_list ::= $Empty + // Rule 388: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 387: { action. initializerListEnd(); break; + case 388: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 392: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 389: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 392: { action. consumeClassSpecifier(); break; + case 389: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 393: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // Rule 390: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 393: { action. consumeClassHead(false); break; + case 390: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 394: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // Rule 391: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 394: { action. consumeClassHead(false); break; + case 391: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 395: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // Rule 392: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 395: { action. consumeClassHead(true); break; + case 392: { action. consumePlaceHolder(); break; } // - // Rule 396: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // Rule 393: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 396: { action. consumeClassHead(true); break; + case 393: { action. consumeEmpty(); break; } // - // Rule 400: identifier_name_opt ::= $Empty + // Rule 394: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 394: { action. consumePlaceHolder(); break; + } + + // + // Rule 400: abstract_declarator_opt ::= $Empty // case 400: { action. consumeEmpty(); break; + } + + // + // Rule 401: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 401: { action. consumeParameterDeclaration(); break; + } + + // + // Rule 402: parameter_declaration ::= declaration_specifiers + // + case 402: { action. consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // Rule 404: parameter_init_declarator ::= declarator = parameter_initializer + // + case 404: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 406: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 406: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 407: parameter_init_declarator ::= = parameter_initializer + // + case 407: { action. consumeDeclaratorWithInitializer(false); break; + } + + // + // Rule 408: parameter_initializer ::= assignment_expression + // + case 408: { action. consumeInitializer(); break; + } + + // + // Rule 409: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // + case 409: { action. consumeFunctionDefinition(false); break; + } + + // + // Rule 410: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // + case 410: { action. consumeFunctionDefinition(true); break; + } + + // + // Rule 413: initializer ::= ( expression_list ) + // + case 413: { action. consumeInitializerConstructor(); break; + } + + // + // Rule 414: initializer_clause ::= assignment_expression + // + case 414: { action. consumeInitializer(); break; + } + + // + // Rule 415: initializer_clause ::= initializer_list + // + case 415: { action. consumeInitializer(); break; + } + + // + // Rule 416: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // + case 416: { action. consumeInitializerList(); break; + } + + // + // Rule 417: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // + case 417: { action. consumeInitializerList(); break; + } + + // + // Rule 418: initializer_list ::= { } + // + case 418: { action. consumeInitializerList(); break; + } + + // + // Rule 419: start_initializer_list ::= $Empty + // + case 419: { action. initializerListStart(); break; + } + + // + // Rule 420: end_initializer_list ::= $Empty + // + case 420: { action. initializerListEnd(); break; + } + + // + // Rule 425: class_specifier ::= class_head { member_declaration_list_opt } + // + case 425: { action. consumeClassSpecifier(); break; + } + + // + // Rule 426: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // + case 426: { action. consumeClassHead(false); break; + } + + // + // Rule 427: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // + case 427: { action. consumeClassHead(false); break; + } + + // + // Rule 428: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // + case 428: { action. consumeClassHead(true); break; + } + + // + // Rule 429: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // + case 429: { action. consumeClassHead(true); break; + } + + // + // Rule 433: identifier_name_opt ::= $Empty + // + case 433: { action. consumeEmpty(); break; } // - // Rule 404: visibility_label ::= access_specifier_keyword : + // Rule 437: visibility_label ::= access_specifier_keyword : // - case 404: { action. consumeVisibilityLabel(); break; + case 437: { action. consumeVisibilityLabel(); break; } // - // Rule 405: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 438: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 405: { action. consumeDeclarationSimple(true); break; + case 438: { action. consumeDeclarationSimple(true); break; } // - // Rule 406: member_declaration ::= declaration_specifiers_opt ; + // Rule 439: member_declaration ::= declaration_specifiers_opt ; // - case 406: { action. consumeDeclarationSimple(false); break; + case 439: { action. consumeDeclarationSimple(false); break; } // - // Rule 409: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 442: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 409: { action. consumeMemberDeclarationQualifiedId(); break; + case 442: { action. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 415: member_declaration ::= ERROR_TOKEN + // Rule 448: member_declaration ::= ERROR_TOKEN // - case 415: { action. consumeDeclarationProblem(); break; + case 448: { action. consumeDeclarationProblem(); break; } // - // Rule 424: member_declarator ::= declarator constant_initializer + // Rule 457: member_declarator ::= declarator constant_initializer // - case 424: { action. consumeMemberDeclaratorWithInitializer(); break; + case 457: { action. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 425: member_declarator ::= bit_field_declarator : constant_expression + // Rule 458: member_declarator ::= bit_field_declarator : constant_expression // - case 425: { action. consumeBitField(true); break; + case 458: { action. consumeBitField(true); break; } // - // Rule 426: member_declarator ::= : constant_expression + // Rule 459: member_declarator ::= : constant_expression // - case 426: { action. consumeBitField(false); break; + case 459: { action. consumeBitField(false); break; } // - // Rule 427: bit_field_declarator ::= identifier_name + // Rule 460: bit_field_declarator ::= identifier_name // - case 427: { action. consumeDirectDeclaratorIdentifier(); break; + case 460: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 428: constant_initializer ::= = constant_expression + // Rule 461: constant_initializer ::= = constant_expression // - case 428: { action. consumeInitializer(); break; + case 461: { action. consumeInitializer(); break; } // - // Rule 434: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 467: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 434: { action. consumeBaseSpecifier(false, false); break; + case 467: { action. consumeBaseSpecifier(false, false); break; } // - // Rule 435: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 468: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 435: { action. consumeBaseSpecifier(true, true); break; + case 468: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 436: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 469: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 436: { action. consumeBaseSpecifier(true, true); break; + case 469: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 437: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 470: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 437: { action. consumeBaseSpecifier(true, false); break; + case 470: { action. consumeBaseSpecifier(true, false); break; } // - // Rule 438: access_specifier_keyword ::= private + // Rule 471: access_specifier_keyword ::= private // - case 438: { action. consumeToken(); break; + case 471: { action. consumeToken(); break; } // - // Rule 439: access_specifier_keyword ::= protected + // Rule 472: access_specifier_keyword ::= protected // - case 439: { action. consumeToken(); break; + case 472: { action. consumeToken(); break; } // - // Rule 440: access_specifier_keyword ::= public + // Rule 473: access_specifier_keyword ::= public // - case 440: { action. consumeToken(); break; + case 473: { action. consumeToken(); break; } // - // Rule 442: access_specifier_keyword_opt ::= $Empty + // Rule 475: access_specifier_keyword_opt ::= $Empty // - case 442: { action. consumeEmpty(); break; + case 475: { action. consumeEmpty(); break; } // - // Rule 444: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 477: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 444: { action. consumeTemplateId(); break; + case 477: { action. consumeTemplateId(); break; } // - // Rule 445: conversion_function_id ::= operator conversion_type_id + // Rule 478: conversion_function_id ::= operator conversion_type_id // - case 445: { action. consumeConversionName(); break; + case 478: { action. consumeConversionName(); break; } // - // Rule 446: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 479: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 446: { action. consumeTypeId(true); break; + case 479: { action. consumeTypeId(true); break; } // - // Rule 447: conversion_type_id ::= type_specifier_seq + // Rule 480: conversion_type_id ::= type_specifier_seq // - case 447: { action. consumeTypeId(false); break; + case 480: { action. consumeTypeId(false); break; } // - // Rule 448: conversion_declarator ::= ptr_operator_seq + // Rule 481: conversion_declarator ::= ptr_operator_seq // - case 448: { action. consumeDeclaratorWithPointer(false); break; + case 481: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 454: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 487: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 454: { action. consumeConstructorChainInitializer(); break; + case 487: { action. consumeConstructorChainInitializer(); break; } // - // Rule 455: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 488: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 455: { action. consumeQualifiedId(false); break; + case 488: { action. consumeQualifiedId(false); break; } // - // Rule 458: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 491: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 458: { action. consumeTemplateId(); break; + case 491: { action. consumeTemplateId(); break; } // - // Rule 459: operator_id_name ::= operator overloadable_operator + // Rule 492: operator_id_name ::= operator overloadable_operator // - case 459: { action. consumeOperatorName(); break; + case 492: { action. consumeOperatorName(); break; } // - // Rule 502: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 535: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 502: { action. consumeTemplateDeclaration(); break; + case 535: { action. consumeTemplateDeclaration(); break; } // - // Rule 503: export_opt ::= export + // Rule 536: export_opt ::= export // - case 503: { action. consumePlaceHolder(); break; + case 536: { action. consumePlaceHolder(); break; } // - // Rule 504: export_opt ::= $Empty + // Rule 537: export_opt ::= $Empty // - case 504: { action. consumeEmpty(); break; + case 537: { action. consumeEmpty(); break; } // - // Rule 508: template_parameter ::= parameter_declaration + // Rule 541: template_parameter ::= parameter_declaration // - case 508: { action. consumeTemplateParamterDeclaration(); break; + case 541: { action. consumeTemplateParamterDeclaration(); break; } // - // Rule 509: type_parameter ::= class identifier_name_opt + // Rule 542: type_parameter ::= class identifier_name_opt // - case 509: { action. consumeSimpleTypeTemplateParameter(false); break; + case 542: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 510: type_parameter ::= class identifier_name_opt = type_id + // Rule 543: type_parameter ::= class identifier_name_opt = type_id // - case 510: { action. consumeSimpleTypeTemplateParameter(true); break; + case 543: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 511: type_parameter ::= typename identifier_name_opt + // Rule 544: type_parameter ::= typename identifier_name_opt // - case 511: { action. consumeSimpleTypeTemplateParameter(false); break; + case 544: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 512: type_parameter ::= typename identifier_name_opt = type_id + // Rule 545: type_parameter ::= typename identifier_name_opt = type_id // - case 512: { action. consumeSimpleTypeTemplateParameter(true); break; + case 545: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 513: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 546: type_parameter ::= template < template_parameter_list > class identifier_name_opt // - case 513: { action. consumeTemplatedTypeTemplateParameter(false); break; + case 546: { action. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 514: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 547: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 514: { action. consumeTemplatedTypeTemplateParameter(true); break; + case 547: { action. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 515: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 548: template_id_name ::= identifier_name < template_argument_list_opt > // - case 515: { action. consumeTemplateId(); break; + case 548: { action. consumeTemplateId(); break; } // - // Rule 520: template_argument ::= assignment_expression + // Rule 555: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 520: { action. consumeTemplateArgumentExpression(); break; + case 555: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 521: template_argument ::= type_id + // Rule 556: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: // - case 521: { action. consumeTemplateArgumentTypeId(); break; + case 556: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 522: explicit_instantiation ::= template declaration + // Rule 557: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 522: { action. consumeTemplateExplicitInstantiation(); break; + case 557: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 523: explicit_specialization ::= template < > declaration + // Rule 558: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: // - case 523: { action. consumeTemplateExplicitSpecialization(); break; + case 558: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 524: try_block ::= try compound_statement handler_seq + // Rule 559: class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate // - case 524: { action. consumeStatementTryBlock(true); break; + case 559: { action. consumeNameWithTemplateKeyword(); break; } // - // Rule 525: try_block ::= try compound_statement + // Rule 561: nested_name_specifier_opt_inTemplate ::= $Empty // - case 525: { action. consumeStatementTryBlock(false); break; + case 561: { action. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 528: handler ::= catch ( exception_declaration ) compound_statement + // Rule 564: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name // - case 528: { action. consumeStatementCatchHandler(false); break; + case 564: { action. consumeQualifiedId(false); break; } // - // Rule 529: handler ::= catch ( ... ) compound_statement + // Rule 565: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 529: { action. consumeStatementCatchHandler(true); break; + case 565: { action. consumeQualifiedId(true); break; } // - // Rule 530: exception_declaration ::= type_specifier_seq declarator + // Rule 570: declaration_specifiers_inTemplate ::= simple_declaration_specifiers // - case 530: { action. consumeDeclarationSimple(true); break; + case 570: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 531: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 571: declaration_specifiers_inTemplate ::= class_declaration_specifiers // - case 531: { action. consumeDeclarationSimple(true); break; + case 571: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 532: exception_declaration ::= type_specifier_seq + // Rule 572: declaration_specifiers_inTemplate ::= elaborated_declaration_specifiers // - case 532: { action. consumeDeclarationSimple(false); break; + case 572: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 534: exception_specification ::= throw ( ) + // Rule 573: declaration_specifiers_inTemplate ::= enum_declaration_specifiers // - case 534: { action. consumePlaceHolder(); break; + case 573: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 540: no_cast_start ::= ERROR_TOKEN + // Rule 574: declaration_specifiers_inTemplate ::= type_name_declaration_specifiers_inTemplate // - case 540: { action. consumeEmpty(); break; + case 574: { action. consumeDeclarationSpecifiersTypeName(); break; + } + + // + // Rule 576: type_id_inTemplate ::= type_specifier_seq_inTemplate + // + case 576: { action. consumeTypeId(false); break; + } + + // + // Rule 577: type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator + // + case 577: { action. consumeTypeId(true); break; + } + + // + // Rule 578: template_argument ::= assignment_expression_inTemplate + // + case 578: { action. consumeTemplateArgumentExpression(); break; + } + + // + // Rule 579: template_argument ::= type_id_inTemplate + // + case 579: { action. consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 580: explicit_instantiation ::= template declaration + // + case 580: { action. consumeTemplateExplicitInstantiation(); break; + } + + // + // Rule 581: explicit_specialization ::= template < > declaration + // + case 581: { action. consumeTemplateExplicitSpecialization(); break; + } + + // + // Rule 582: try_block ::= try compound_statement handler_seq + // + case 582: { action. consumeStatementTryBlock(true); break; + } + + // + // Rule 583: try_block ::= try compound_statement + // + case 583: { action. consumeStatementTryBlock(false); break; + } + + // + // Rule 586: handler ::= catch ( exception_declaration ) compound_statement + // + case 586: { action. consumeStatementCatchHandler(false); break; + } + + // + // Rule 587: handler ::= catch ( ... ) compound_statement + // + case 587: { action. consumeStatementCatchHandler(true); break; + } + + // + // Rule 588: exception_declaration ::= type_specifier_seq declarator + // + case 588: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 589: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 589: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 590: exception_declaration ::= type_specifier_seq + // + case 590: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 592: exception_specification ::= throw ( ) + // + case 592: { action. consumePlaceHolder(); break; + } + + // + // Rule 598: no_cast_start ::= ERROR_TOKEN + // + case 598: { action. consumeEmpty(); 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 da02ccb0e10..61aedec412b 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 @@ -51,480 +51,622 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,2,1,3,1,0, - 1,0,1,1,0,1,1,1,1,1, - 1,1,1,1,3,4,3,2,1,4, - 2,1,2,5,7,5,1,4,1,0, - 5,7,2,8,1,1,2,2,3,2, - 3,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,2,1,0, - 4,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, + 3,5,3,3,1,3,3,1,3,1, + 3,1,3,1,3,1,3,1,5,1, + 1,3,3,3,3,3,3,3,3,3, + 3,3,1,2,1,1,3,3,3,3, + 3,3,3,3,3,3,3,1,2,1, + 3,1,0,1,0,1,1,0,1,1, + 1,1,1,1,1,1,1,3,4,3, + 2,1,4,2,1,2,5,7,5,1, + 4,1,0,5,7,2,8,1,1,2, + 2,3,2,3,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,2, - 5,6,5,0,1,0,7,8,0,1, - 3,1,0,1,3,1,7,6,0,7, - 6,1,0,6,5,6,4,1,3,1, - 0,1,1,2,1,1,3,1,3,1, - 1,1,1,3,9,2,2,3,2,5, - 3,7,0,1,2,2,1,0,1,1, - 1,3,1,2,1,1,2,3,1,1, - 1,3,2,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,1,7,6,3,0,0,1,3,1, - 1,5,6,6,7,7,0,0,1,0, - 1,1,1,2,4,2,2,1,5,1, - 1,1,1,1,1,1,2,1,0,1, - 3,1,1,2,3,2,1,2,2,1, - 0,1,3,3,5,5,4,1,1,1, - 1,0,1,5,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, + 2,1,0,4,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,3,4, + 4,5,2,5,6,5,0,1,0,7, + 8,0,1,3,1,0,1,3,1,7, + 6,0,7,6,1,0,6,5,6,4, + 1,3,1,0,1,1,2,1,1,3, + 1,3,1,1,1,1,3,9,2,2, + 3,2,5,3,7,0,1,2,2,1, + 0,1,1,1,3,1,2,1,1,2, + 3,1,1,1,3,2,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,1,7,6,3,0,0, + 1,3,1,1,5,6,6,7,7,0, + 0,1,0,1,1,1,2,4,2,2, + 1,5,1,1,1,1,1,1,1,2, + 1,0,1,3,1,1,2,3,2,1, + 2,2,1,0,1,3,3,5,5,4, + 1,1,1,1,0,1,5,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,2, - 2,7,1,0,1,3,1,1,2,4, - 2,4,7,9,5,1,3,1,0,1, - 1,2,4,4,2,1,2,5,5,3, - 3,1,4,3,1,0,1,3,1,1, - -107,0,0,0,-2,0,0,0,0,0, + 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,3, + 1,0,1,1,3,2,3,2,2,1, + 0,1,1,4,5,2,1,2,2,2, + 2,2,2,2,1,1,2,1,1,2, + 4,4,2,1,2,5,5,3,3,1, + 4,3,1,0,1,3,1,1,-107,0, + 0,0,0,-2,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-4,0,0,0,0,0, - -536,0,0,0,-10,0,0,0,0,0, - -49,0,0,-54,0,-289,0,0,0,0, - 0,0,0,0,0,0,0,0,-58,0, - 0,0,-59,0,-306,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-5,0, - -414,0,0,0,-187,0,0,0,0,-177, - 0,0,-16,0,0,0,0,0,0,0, - 0,0,0,-121,-1,0,0,0,0,0, - 0,-176,0,0,0,0,0,0,0,0, - 0,0,0,-62,0,0,0,0,0,0, - -262,0,-357,0,0,-271,0,0,0,0, - 0,0,-300,-50,0,0,0,0,0,0, - 0,0,0,0,-114,0,0,0,0,0, + 0,0,0,0,0,-4,-309,0,0,-207, + 0,0,0,0,0,0,0,-5,0,0, + -6,-286,0,0,0,-58,0,0,0,0, + -165,-7,-428,0,0,0,0,0,0,0, + 0,0,0,0,0,-198,0,0,0,0, + -51,-18,0,0,0,0,-114,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-57,0,0,0,0,0, - 0,0,0,-116,0,0,0,-118,0,-275, - 0,-135,0,0,0,-234,-317,0,0,0, - 0,0,0,-115,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-8,0,0,0,-106,-506,0, + 0,0,0,0,0,0,0,-53,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-460,0,0,-68,0,0,0,0, + -9,0,0,0,0,0,0,0,-126,0, + 0,0,0,0,-176,0,0,0,-115,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-104,-61,0, - 0,0,0,0,0,0,0,0,-6,0, - 0,-126,0,0,0,0,0,-68,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-7,0,0, - -224,0,0,0,-130,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-272,0, + 0,0,0,0,0,-522,0,-561,-264,0, + 0,0,0,0,-136,0,0,0,0,0, + 0,0,0,0,0,0,0,-311,0,0, + 0,0,0,0,0,0,-130,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-53,-196, - 0,0,0,0,-389,0,0,-181,-162,-8, + 0,0,0,0,-265,0,0,0,-69,0, 0,0,0,0,0,0,0,0,0,0, - 0,-9,0,-218,0,0,0,0,0,0, + 0,0,0,0,-472,0,0,0,0,0, + 0,-415,0,0,0,0,0,0,0,0, + 0,0,0,-596,0,0,0,0,-117,0, + 0,0,0,0,0,0,0,0,0,-192, + 0,0,0,0,-196,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, - 0,0,0,-128,0,0,0,0,0,0, - 0,0,-11,-165,0,0,0,0,0,0, - -105,-170,0,0,-51,0,0,0,0,-12, - 0,0,-69,0,0,0,-129,0,0,0, - 0,0,0,0,0,0,0,0,-166,0, + 0,0,0,0,0,-134,0,0,-62,0, + 0,0,0,0,0,-325,0,0,0,0, + 0,-501,0,0,-11,0,0,0,0,0, + 0,-444,0,0,-119,0,0,0,0,0, + 0,0,0,0,-571,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-275,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-177,0,0, + 0,-16,0,0,0,0,-61,0,0,0, + 0,0,-266,0,0,0,0,-595,0,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,-10,-197,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -323,0,0,0,0,-89,0,0,0,0, + -367,0,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,-502,0,0,0,0,-12,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -112,-13,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-170,0,0,0, + 0,0,-135,0,0,0,-15,0,0,0, + 0,0,0,0,0,0,-3,0,0,0, + 0,-121,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-49,0,0, + 0,0,0,0,0,0,0,0,-493,0, + 0,0,0,-88,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, + 0,-260,-29,0,-526,0,0,0,0,0, + 0,0,-337,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,-123, + -30,0,0,-50,0,0,0,0,0,0, + 0,-31,0,0,0,-235,0,0,0,0, + -166,-380,0,0,0,0,-368,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-57,0, + 0,0,0,0,0,0,0,0,0,0, + -128,0,0,-495,0,0,0,0,-381,0, + 0,0,0,-59,0,0,0,0,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,-33,0,0, + -273,0,0,0,0,-104,-340,0,-39,0, + 0,0,0,-409,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-34,0,0,0,0, + 0,0,0,0,0,0,0,-129,0,0, + -279,0,0,0,0,0,0,-440,-41,0, + 0,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,-132,0,0,0, + -142,0,0,0,0,0,0,-216,0,0, + -326,0,0,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,-377,0,0,0,0,0,0, + 0,0,0,0,-402,0,0,-529,0,0, + 0,0,-92,0,0,0,0,-113,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-530,0,0,0,0,-93, + 0,0,0,0,-137,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -418,-357,0,0,0,0,0,0,-423,0, + 0,-280,0,0,0,0,-94,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,-195,-35,0,0,0,0,0, + 0,0,0,0,0,-540,0,0,-287,0, + 0,0,0,-95,0,0,0,0,-208,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -206,-36,0,0,0,0,0,0,0,0, + 0,0,-480,0,0,-327,0,0,0,0, + -96,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,-220,-37,0, + 0,0,0,0,0,0,0,0,0,-38, + 0,0,-347,0,0,0,0,-97,0,0, + 0,0,-371,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-40,0,0,-270,-269, + 0,0,0,0,0,0,-462,0,0,-369, + 0,0,0,0,-98,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,-360,0,0,0,0,0,0,0, + 0,0,0,-261,0,0,-390,0,0,0, + 0,-99,0,0,0,0,-281,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-308,-55, + 0,0,-56,0,0,0,0,0,0,0, + -262,0,0,-400,-288,-356,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,0,0,0,0,-447,0,0,0, + -63,0,0,0,-475,0,0,0,0,0, + -461,0,0,0,0,-101,0,0,0,0, + -289,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-321,-64,0,0,-66,0,0,0, + 0,0,0,0,-67,0,0,-350,0,0, + -222,0,-163,0,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,-411, + -116,-108,0,0,0,0,0,0,-329,0, + 0,-333,0,0,-214,0,0,0,0,-354, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-434,0,0, + 0,-436,0,0,-379,0,0,0,0,-109, + 0,-246,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,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,-229,0,-322, + -313,0,0,0,0,0,0,0,-110,-320, + 0,0,0,0,0,0,0,-247,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-277,-111,0,0,0,-413, + 0,0,0,0,0,0,-446,0,0,-341, + -324,0,0,-118,0,0,0,0,0,0, + 0,0,-131,-492,0,0,-435,0,0,0, + 0,0,0,-248,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-443,0,-416,0,0,-14,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-316, + 0,-392,0,0,0,0,0,0,0,-249, + 0,0,0,0,-143,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-290,0,-363, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-468,0,-120,0,0,-457,0, + 0,0,0,0,-328,-463,-450,-410,0,0, + 0,0,0,0,0,-250,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,-556,-291,0,-374,0,0,0,0, + 0,0,0,0,-405,0,0,0,0,0, + 0,-145,0,-146,0,0,0,0,0,0, + -147,0,0,-421,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,0,0,0,0,0,0,0, + 0,-564,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-353,0,0,0,0, + 0,0,-510,0,-148,0,-572,0,0,-537, + 0,0,0,0,0,0,0,-252,0,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,-346,0,0,-336,0,0, + 0,0,0,0,0,0,0,0,0,-430, + 0,0,0,-464,0,0,-583,-361,0,0, + 0,0,0,0,-476,0,0,-150,0,0, + 0,0,0,-253,0,0,0,0,-431,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -348,-151,0,-138,0,0,0,0,-152,0, + 0,0,0,0,0,0,0,0,0,-355, + 0,0,0,-365,-570,0,-470,0,0,-378, + 0,0,-422,0,0,0,0,0,0,-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,0,0,0,-140, + 0,0,0,0,-153,0,0,0,0,0, + 0,0,-366,0,0,0,0,0,-384,0, + -453,0,-382,0,0,0,-533,0,-499,-154, + 0,0,0,0,0,-255,0,0,0,0, + -155,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-349,0,-393,0,0,0,0, + 0,0,0,0,0,0,-388,-156,0,0, + 0,0,0,0,-471,-594,-527,0,0,0, + 0,-483,-157,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,0,0,0,0,0, + 0,-433,0,0,0,0,0,0,0,0, + 0,0,-412,-158,-391,-43,0,-122,0,0, + 0,-394,0,0,-159,0,0,-586,-587,-395, + -160,-536,0,0,0,0,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,0,-351,-557,0,-397,0,0, + 0,0,0,0,-161,0,-201,0,0,0, + -399,-167,0,-168,0,0,0,0,0,0, + -169,0,-419,0,0,0,0,0,0,0, + 0,0,0,-589,0,0,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,0,0,0,-449,0,0,0,0,0, + 0,0,-479,0,0,0,-385,-417,-172,0, + -376,0,0,0,0,-448,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-482, + 0,0,-403,0,0,0,0,-173,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-285, + 0,-174,0,-474,0,0,0,0,0,0, + 0,-478,0,0,-487,-490,0,-504,-515,0, + 0,-524,-525,-532,-175,-600,0,-528,0,-414, + 0,0,0,0,0,0,0,0,0,0, + 0,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,-531,0, + 0,-438,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-535,0, + -182,0,0,0,0,0,0,-183,0,0, + -554,0,0,-184,-185,0,-186,0,0,0, + -538,-551,-187,-188,-210,0,0,0,-439,0, + 0,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,-189,0,0, + 0,0,0,0,-190,0,0,0,0,0, -513,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-13,0,0,0,0,0, + 0,0,0,0,0,0,0,-558,-191,-194, + 0,0,0,0,0,0,0,0,0,-567, + 0,0,-575,-202,0,-552,-559,0,-180,-579, + -584,-203,-209,0,0,0,0,-103,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-537,0,0,0,-15,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-217,0,0,-227, + 0,0,0,-592,0,0,-599,-228,-534,-258, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-132, - 0,0,0,-28,-113,0,0,0,-163,0, - 0,0,-119,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-236,0,-48,0, + 0,-420,0,0,-267,0,0,-162,-278,-282, + -345,0,-284,-296,0,0,0,0,0,0, + 0,0,-297,0,-298,-299,0,0,0,-300, + 0,0,-90,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-395,0,0,0,0,0,0, - 0,-103,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-301, + 0,-302,0,-303,-304,0,0,0,-563,0, + -245,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-255,0,0,0,0, - 0,0,0,0,0,-123,0,0,-29,-297, - 0,0,0,0,0,-272,0,0,-17,0, - -137,-142,0,-30,-444,0,0,0,0,0, + 0,0,0,0,0,0,0,-70,-305,0, + -306,-307,0,0,0,0,-312,-314,-315,-330, + -334,-335,-338,0,-339,0,-358,0,-359,0, + 0,0,0,-364,0,0,-372,-47,0,0, + 0,0,-181,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-417, - 0,0,0,0,-141,0,0,0,-3,0, + 0,-373,-389,-404,-406,-426,-429,-442,0,-565, + 0,0,-243,0,0,0,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,-456,0,-458,-459,-485,-230,-465,-467,-473, + 0,-481,-488,-489,-512,-514,-516,0,-517,0, + -518,-370,0,-569,0,-573,0,-244,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-228,0,0,0,0,0,0,0, - 0,0,-31,0,0,0,0,0,0,0, - 0,-319,0,0,0,-32,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-519,0,0,-521,-539, + -541,-542,-544,-549,-553,-560,-568,-577,-585,-590, + -601,0,0,0,0,0,0,0,-574,0, + -85,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-184,0,0,0,0,-322,0,0,0, - -257,-33,0,0,0,-283,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,-593,-598,0,-240,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-334,0,0,0,-335,0, - 0,0,0,-35,0,0,0,0,0,0, - -323,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, - -386,0,0,0,0,0,0,0,0,-36, - -205,0,0,-18,0,0,0,0,-324,0, - 0,0,-37,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-86,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-186,-39,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-299,0,0,0, - 0,0,0,0,0,0,-377,0,0,0, - 0,0,0,0,0,-41,0,0,0,-38, + 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,0,0,0,0,-40,0,0,0,0, - -342,0,0,0,-55,0,0,0,-91,0, + 0,0,0,0,-241,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-56,0,0,0,0,0,-188,0, - 0,0,-405,0,0,0,0,-197,-337,0, - 0,-92,0,0,0,0,0,0,0,0, + 0,-454,0,0,0,0,0,0,0,0, + 0,0,0,0,-242,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-202,0,0,0,0, - 0,0,0,0,0,0,-376,0,0,0, - -344,0,0,0,-93,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-193,0,0,0,-164,-200, + 0,0,0,0,0,-17,-292,0,-293,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-195,0,0,0,0,0, - 0,0,0,-207,-219,0,0,-94,0,0, + -231,0,0,0,0,0,0,0,0,0, + 0,0,-232,0,0,-233,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,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-209,0,0,0,0,-220,0,0, - -95,0,0,0,0,0,0,0,0,0, + -71,0,0,0,0,0,0,0,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,0,0,-478,0,0,0,-233, - -221,0,0,-96,0,0,0,0,0,0, + 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,0,0,-81,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-240,-296,0,0,-97,0,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, - -63,0,0,0,0,0,0,0,0,0, - -469,-303,0,0,0,-247,0,0,0,-98, + 0,0,0,0,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,-211,0,0,0,0,0,0, - 0,0,0,0,-385,0,0,0,-248,0, - 0,0,-99,0,0,0,0,0,0,0, + 0,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,-64,0,0,0, - 0,0,0,0,0,0,-528,-399,0,0, - 0,-249,0,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,-298, + 0,0,-239,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -66,0,0,0,-250,-286,0,0,-101,0, + 0,0,0,0,0,0,0,0,0,-283, 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,0,0,0, - 0,0,-67,0,0,0,0,0,0,0, - 0,0,-529,-254,0,0,0,0,-108,0, - 0,-203,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-343, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-327,0,0,0,0, - 0,0,0,0,0,0,-267,0,0,0, - 0,-109,0,0,-531,0,0,0,0,0, + 0,0,0,-362,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-102, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-320,0, - 0,0,0,0,-268,0,0,0,0,-270, - 0,0,0,0,-279,0,0,-345,0,0, + 0,-375,-494,0,0,0,0,0,0,0, + -276,-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,-1,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-498,0,0,0,0,0,-274,0,0, - 0,0,-110,0,0,0,-356,0,0,0, - -111,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,0,0,0,0,-282,0,0,0, - 0,-360,0,0,0,-223,0,0,0,-435, - 0,0,0,-131,-380,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, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-143,-287, - 0,0,0,-381,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-580,0, 0,0,0,0,0,0,0,0,0,0, + 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,-144,0, - 0,0,-232,0,0,0,-437,0,0,0, - -145,-455,0,0,0,0,0,0,0,0, 0,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,-292,0,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,-147,0,0,0,0,0, - 0,0,0,0,-138,0,0,0,-294,0, - 0,0,0,0,0,0,0,-148,-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,0,-347,0, - 0,-89,0,0,0,-149,0,0,0,0, + 0,0,-84,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-150,0,0,0,0, - 0,-151,0,-85,0,0,0,-152,0,0, + 0,0,0,0,0,0,0,0,0,-491, + -127,0,0,0,0,0,0,-344,0,0, + -219,0,0,0,0,0,0,-223,-383,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-265,0,0, - 0,0,0,-86,0,0,0,-153,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-154,0,0, - 0,0,-87,0,0,0,-314,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-355,0,0,0, - 0,-396,0,0,0,0,0,0,0,0, - 0,0,0,0,-79,0,0,0,-155,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-156,0, - 0,0,-71,-310,-365,0,0,-140,0,0, + 0,-511,0,0,0,0,0,0,-523,0, + -408,-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,-375,0,0, - 0,0,0,0,0,0,0,0,0,-378, - 0,0,0,0,0,-157,-80,0,0,0, + -211,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -465,0,0,0,0,-158,-471,0,0,0, - -472,0,0,0,0,0,0,-538,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-354,0,-238,0,0,0,-159,0,0, - 0,0,0,0,-266,0,-81,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -160,0,0,0,-82,0,0,0,-161,0, + -588,0,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,0,0,0,0,0,0,-167,0, - 0,0,-242,0,0,0,0,0,0,0, - 0,0,0,0,0,-290,-47,0,0,0, - 0,-168,-321,-305,0,0,0,0,0,0, - 0,0,0,0,0,0,-295,-190,0,0, - 0,0,0,0,-112,-52,0,0,0,-136, - 0,0,0,-169,-127,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-172,-236, - 0,-48,0,0,0,0,-173,-102,0,0, 0,0,0,0,0,0,0,0,0,0, - -239,0,0,0,0,0,0,0,0,0, - 0,0,0,-328,0,-174,-388,0,0,-106, - 0,0,0,0,-373,0,-392,0,-343,0, - 0,0,-175,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-20,0, + -75,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-359,0,0,-178, - -201,0,0,0,0,-179,0,0,0,0, - 0,0,0,0,0,0,-180,0,0,0, - 0,0,0,0,0,0,0,0,0,-183, - 0,0,0,0,0,0,-120,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,-311,0,0,-84,0,0, - 0,-191,0,0,0,0,0,0,0,0, + 0,0,0,0,-387,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-433,0,0,-164,0,-212,0,0,0, - 0,-304,0,-390,-117,0,-182,0,0,0, - -246,0,0,0,0,0,-308,0,0,-192, - 0,0,0,0,0,-418,0,-412,0,-453, - 0,0,0,0,0,-198,0,0,0,0, - 0,0,0,0,0,0,0,0,-309,-206, - 0,0,0,0,-259,0,0,-216,0,0, + 0,0,0,-139,0,0,0,0,0,0, + -171,0,0,0,0,0,-212,0,0,0, + 0,0,0,-520,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-224,0, + -44,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-325,0,0,0,0,0,0,0,-363, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-217,0,0,0,0, - 0,0,0,0,0,-530,0,0,0,0, - 0,0,0,0,0,0,0,0,-74,0, - 0,0,-351,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,-331,-427, - -244,-333,0,0,0,0,-226,0,-336,-434, - 0,0,0,-413,0,0,0,0,0,0, - 0,-237,0,0,0,-204,0,0,0,0, - 0,0,0,-330,0,0,0,-364,0,0, - 0,0,0,0,0,0,-475,0,0,0, - 0,-75,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-139,0,0, - 0,0,0,0,0,-273,0,0,0,0, - 0,0,0,0,0,0,-424,0,0,-462, - 0,0,-241,0,0,0,0,-291,-243,0, - -352,0,0,-452,0,-122,-253,0,0,0, - 0,0,0,0,-258,0,0,0,0,0, - 0,0,0,0,0,0,0,-485,0,0, - -353,0,0,-260,-425,0,0,0,0,0, - 0,0,0,0,0,0,-339,-261,-313,0, - 0,0,-293,0,0,0,0,0,0,0, - 0,0,0,0,0,-487,0,0,0,0, - 0,0,0,0,0,0,0,-470,0,0, - 0,0,0,0,-372,0,0,0,-276,0, - -404,0,0,0,0,0,0,0,0,0, - 0,0,0,-504,0,0,-280,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-312,0,0,0,-341,0,-281,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-518,0,0,-542,0,0,-284,-235,-285, - 0,0,0,0,0,0,0,0,0,0, - -361,-499,-421,-367,0,0,0,0,-473,0, - 0,0,0,0,0,0,0,0,0,-520, - 0,0,-391,0,0,-422,0,0,0,0, - 0,-301,0,0,0,0,0,0,0,-302, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-134,0,0, - -278,0,0,-307,0,0,0,0,0,0, - 0,0,0,0,0,0,-171,0,0,0, - -185,0,0,0,-464,0,0,0,0,0, - 0,0,0,0,0,-522,0,0,0,0, - 0,0,0,0,0,0,0,0,-362,-70, - 0,0,0,0,-490,0,-468,0,0,0, - 0,0,-524,-416,0,0,0,0,-402,0, - 0,0,0,0,-403,0,0,-124,0,0, - -350,-231,0,0,0,0,0,-358,0,-245, - 0,0,0,0,0,0,0,0,-315,0, - 0,0,0,-406,-43,0,-316,0,0,0, - 0,0,0,0,0,0,0,0,0,-332, - -382,0,-227,0,0,0,-346,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-446,-420,0,-539,0,0,0,0,-457, - 0,0,0,0,0,0,-476,0,0,0, + 0,0,0,0,-386,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-543,-225,0, + 0,0,0,0,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,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-545, + 0,-548,0,0,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,-591,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-562,0,0,0,0,0,0,-226,-342, + 0,0,0,0,0,-498,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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-576,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-45,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-407,0,0,0,0,0,-257,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-578,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-445,0,0,0,0,0, + -331,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-582,0,0, + 0,0,0,0,-581,0,0,0,0,0, + 0,-46,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-466,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-597, + 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,-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,0,0,0,0,0,0,0, + 0,-602,0,0,0,0,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,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,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,-78,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-179,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,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,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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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,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,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,0,-26,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,0,0,0, + 0,0,0,0,0,0,0,0,0,-60, + 0,0,0,0,0,0,0,0,0,0, + 0,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, + 0,0,0,0,0,-73,0,0,0,0, + 0,0,0,0,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,0,0,0,0, + 0,-437,0,0,0,0,0,0,0,0, + 0,0,0,0,-19,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-424,0,0,-508, + -42,0,0,0,0,0,-234,0,0,0, + 0,0,0,-452,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-500,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,-294,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-125,0,0,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,0,0,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,0,0,0,0,0,0, + -310,0,0,0,0,0,0,0,0,0, 0,-441,0,0,0,0,0,0,0,0, - 0,0,-213,-443,0,0,0,0,-526,0, - 0,0,0,0,0,-429,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-544,0,0,-466,0,-467,-199,0,0, - 0,0,0,0,0,0,0,0,0,0, - -348,-368,-480,-44,0,0,0,0,-493,0, - -432,0,0,-371,0,-474,-384,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,-269,0,0,-494,0,0,0, - 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,-77,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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-21, - 0,0,0,-397,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-22,0,0,0,-398,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-23,0,0,0,-400, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-24,0, - 0,0,-401,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-25,0,0,0,-407,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-26,0,0,0,-409,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-27,0,0, - 0,-415,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -60,0,0,0,-423,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-72,0,0,0,-430,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-73,0,0,0, - -431,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-193, - 0,0,0,-454,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-379,0,0,0,0,0,0,0, - 0,0,0,0,0,-482,-445,0,0,0, - 0,0,0,0,0,0,0,0,0,-19, - 0,0,0,-456,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-366,-214,-458,-215,0,0,-251,0,-459, - -460,0,0,0,0,-394,0,0,-501,0, - -496,-448,0,0,0,0,0,0,0,0, - 0,0,0,-461,0,-463,-500,0,-505,0, - 0,-481,0,0,0,-514,0,0,0,0, - 0,-483,0,0,0,0,0,0,-479,0, - 0,-509,0,0,0,0,0,0,0,0, - 0,-507,0,-189,0,0,0,0,-484,0, - 0,0,0,-14,0,0,0,0,-442,0, - 0,0,0,0,0,0,0,-511,0,0, - 0,-486,-45,0,-410,0,0,0,0,0, - -512,-517,0,-491,0,0,0,0,0,0, - 0,0,-515,-277,0,-516,0,0,0,0, - 0,0,-525,-495,-533,0,0,0,0,0, - 0,0,0,0,-125,0,0,0,0,0, - -502,-510,0,0,-519,-527,0,0,0,0, - 0,0,-532,0,0,-521,0,0,0,0, - -543,0,0,0,0,-383,0,0,0,0, - 0,0,0,0,0,0,0,0,-506,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-534,0,-263,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-535,0,-540,0,0,0,0,-541,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,-369,0,0,0,0,0, - 0,0,0,0,0,0,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,0,0,0,0,0,0,0,0, - -393,0,0,0,0,0,0,0,0,0, - 0,0,-419,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-288,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-428,0, - 0,0,0,0,0,0,0,0,0,0, - -252,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, - 0,0,0,0,-370,0,0,0,0,0, - 0,0,0,0,0,0,0,-436,0,-523, - -222,0,0,0,0,0,0,0,0,0, - -264,0,0,0,0,0,-208,0,0,-46, - 0,0,0,0,0,0,-329,0,0,0, - 0,0,0,0,0,0,0,-133,0,0, + 0,-317,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-340,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-349,0, + 0,-396,-509,0,0,0,0,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,0,0,-496,0,0,0,0, + 0,-566,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-451,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,0,0,0,0,0,0,0, + 0,0,0,0,-432,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,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,-408,0,0,0,-411,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-426,0,0,0,0,-438,0,0,0, - -374,0,0,0,0,0,0,0,0,0, + -486,0,0,0,0,0,0,0,0,0, + -497,0,0,0,0,0,0,0,0,0, + -263,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-507,0,0,0,0,0, 0,0,0,0,0,0,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,-439,0,0,0,0,0,0,-447, - 0,0,0,0,0,0,-449,0,-42,0, - 0,-65,0,0,0,0,0,-200,0,0, - 0,-440,0,0,0,0,0,0,0,0, + 0,0,-505,0,0,0,0,0,0,0, + 0,-65,0,0,0,0,0,0,0,0, + 0,-555,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 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, - -210,0,0,0,-256,0,0,0,0,0, - 0,0,-489,0,0,0,0,-492,0,-194, - 0,0,0,0,0,0,0,-450,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,0,0,0,0, - -497,0,-503,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-546,0,-547, + 0,-550,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -535,16 +677,7 @@ 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,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,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; @@ -554,551 +687,691 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 176,4,137,82,82,34,34,68,68,39, - 39,43,43,202,1,1,16,16,16,16, + 191,5,154,94,94,31,31,80,80,39, + 39,42,42,218,1,1,16,16,16,16, 16,16,16,17,17,17,15,11,11,6, - 6,6,6,6,6,2,66,66,5,5, - 12,12,45,45,138,138,139,57,57,44, + 6,6,6,6,6,2,75,75,4,4, + 12,12,44,44,155,155,156,67,67,43, 18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18, - 140,140,140,114,114,19,19,19,19,19, + 157,157,157,131,131,19,19,19,19,19, 19,19,19,19,19,19,19,19,20,20, - 177,177,178,178,179,143,143,144,144,141, - 141,145,142,142,21,21,22,23,23,23, - 25,25,25,25,26,26,26,27,27,27, - 28,28,28,28,28,29,29,29,31,31, - 32,32,33,33,36,36,37,37,38,38, - 42,42,41,41,41,41,41,41,41,41, - 41,41,41,41,41,40,30,146,146,96, - 96,180,180,91,203,203,69,69,69,69, - 69,69,69,69,69,70,70,70,67,67, - 56,56,181,181,71,71,71,102,102,182, - 182,72,72,72,72,183,183,73,73,73, - 73,73,74,74,83,83,83,83,83,83, - 83,83,51,51,51,51,51,115,115,113, - 113,52,184,24,24,24,24,24,49,49, - 86,86,86,86,86,153,153,148,148,148, - 148,148,149,149,149,150,150,150,151,151, - 151,152,152,152,87,87,87,87,87,88, - 88,88,13,14,14,14,14,14,14,14, - 14,14,14,14,97,119,119,119,119,119, - 119,117,117,117,154,155,155,118,118,185, - 157,157,156,156,121,121,103,80,80,122, - 54,48,158,158,55,53,85,85,159,159, - 147,147,123,124,124,125,77,77,160,160, - 64,64,64,61,61,60,65,65,76,76, - 59,59,59,50,89,89,99,98,98,63, - 63,62,62,58,58,46,100,100,100,92, - 92,92,93,93,94,94,94,95,95,104, - 104,104,106,106,105,105,204,204,90,90, - 187,187,187,187,187,127,47,47,162,186, - 186,128,128,129,129,129,130,164,188,188, - 35,35,116,131,131,131,131,190,108,107, - 107,120,120,120,165,166,166,166,166,166, - 166,166,166,166,166,166,192,192,189,189, - 191,191,167,168,168,168,168,169,193,110, - 109,109,194,194,170,170,170,170,101,101, - 101,195,195,8,8,9,196,196,197,171, - 161,161,172,172,173,174,174,7,7,10, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,78,81,81,175,175,133,133,134, - 134,134,134,134,134,3,135,135,132,132, - 111,111,84,79,75,75,163,163,112,112, - 199,199,199,136,136,126,126,200,200,176, - 176,1119,35,2754,2722,1791,3467,27,30,31, - 995,1019,26,28,2699,262,25,23,50,1054, - 106,76,77,107,1139,73,1233,1154,1282,1246, - 1334,150,1310,1393,1380,155,274,1480,1506,142, - 2717,49,157,143,1618,695,1892,35,950,32, - 4557,4443,27,30,31,995,1019,341,28,587, - 1941,2164,34,1618,232,1869,35,950,32,3531, - 4443,27,30,31,995,1019,341,28,500,71, - 353,587,35,1887,391,2275,1223,235,230,231, - 587,35,3066,1504,35,950,32,24,275,41, - 30,31,995,1019,1229,2253,321,2200,323,1199, - 316,1946,587,35,2164,3028,434,242,245,248, - 251,644,354,2804,1312,321,2200,323,1721,316, - 1946,322,1063,587,3549,155,1476,3549,346,969, - 934,351,2804,135,49,539,1644,565,754,2975, - 738,2907,3236,3528,4245,2320,35,950,32,2746, - 1384,27,30,31,995,1019,26,28,933,262, - 25,23,50,1054,106,76,77,107,1139,345, - 1233,1154,1282,1246,1334,49,1310,1393,1380,835, - 742,1480,1506,142,1446,384,520,143,1225,2977, - 2493,2810,1718,35,950,32,1631,1631,40,30, - 31,995,1019,521,2320,35,950,32,2746,1384, - 27,30,31,995,1019,26,28,933,262,25, - 23,50,1054,106,76,77,107,1139,345,1233, - 1154,1282,1246,1334,2900,1310,1393,1380,1618,1547, - 1480,1506,142,334,291,520,143,290,1432,1592, - 2810,232,327,35,280,1559,516,4174,1217,35, - 950,32,521,3198,27,30,31,995,1019,57, - 28,545,69,878,244,230,231,2870,1766,1812, - 2876,69,2467,3557,3471,2320,35,950,32,2746, - 1384,27,30,31,995,1019,26,28,933,262, - 25,23,50,1054,106,76,77,107,1139,345, - 1233,1154,1282,1246,1334,516,1310,1393,1380,1088, - 2125,1480,1506,142,3379,1906,520,143,2038,1446, - 1853,2810,88,2977,2977,102,2887,740,3538,2876, - 3319,3319,2086,521,2528,35,950,32,2746,1384, - 27,30,31,995,1019,26,28,933,262,25, - 23,50,1054,106,76,77,107,1139,345,1233, - 1154,1282,1246,1334,1088,1310,1393,1380,2900,2900, - 1480,1506,142,1377,1456,520,143,335,334,2027, - 2810,1618,327,35,280,1603,516,4811,61,734, - 2229,501,521,1381,35,950,32,1088,3198,27, - 30,31,995,1019,56,28,4568,2990,3146,1877, - 2876,2663,35,950,32,68,1384,27,30,31, - 995,1019,26,28,933,262,25,23,50,1054, - 106,76,77,107,1139,2230,1233,1154,1282,1246, - 1334,358,1310,1393,1380,517,463,1480,1506,142, - 355,535,381,143,3709,2389,35,950,32,2246, - 1384,27,30,31,995,1019,26,28,933,262, - 25,23,50,1054,106,76,77,107,1139,462, - 1233,1154,1282,1246,1334,356,1310,1393,1380,93, - 1088,1480,1506,142,2249,1618,381,143,3709,2837, - 35,950,32,1611,1384,27,30,31,995,1019, - 26,28,933,262,25,23,50,1054,106,76, - 77,107,1139,3375,1233,1154,1282,1246,1334,53, - 1310,1393,1380,60,2075,1480,3020,163,4413,388, - 382,1726,3127,35,950,32,1272,1384,27,30, - 31,995,1019,26,28,933,262,25,23,50, - 1054,106,76,77,107,1139,752,1233,1154,1282, - 1246,1334,4030,1310,1393,1380,241,3593,2679,413, - 1800,329,446,389,382,1726,587,35,283,49, - 1381,1618,1088,1199,1449,2595,35,950,32,3629, - 1384,27,30,31,995,1019,26,28,933,262, - 25,23,50,1054,106,76,77,107,1139,155, - 1233,1154,1282,1246,1334,87,1310,1393,1380,603, - 1906,1480,1506,142,392,1618,381,143,3709,2892, - 35,950,32,1325,1384,27,30,31,995,1019, - 26,28,933,262,25,23,50,1054,106,76, - 77,107,1139,1611,1233,1154,1282,1246,1334,52, - 1310,1393,1380,64,51,1480,1506,142,330,337, - 157,143,3127,35,950,32,2288,1384,27,30, - 31,995,1019,26,28,933,262,25,23,50, - 1054,106,76,77,107,1139,2070,1233,1154,1282, - 1246,1334,49,1310,1393,1380,4531,1800,1480,3020, - 163,1621,330,379,382,1726,2892,35,950,32, - 1549,1384,27,30,31,995,1019,26,28,933, - 262,25,23,50,1054,106,76,77,107,1139, - 494,1233,1154,1282,1246,1334,357,1310,1393,1380, - 407,625,1480,1506,142,1800,535,375,143,1718, - 35,950,32,2152,1243,2535,30,31,995,1019, - 1325,2892,35,950,32,565,1384,27,30,31, - 995,1019,26,28,933,262,25,23,50,1054, - 106,76,77,107,1139,2448,1233,1154,1282,1246, - 1334,1951,1310,1393,1380,3391,337,1480,1506,142, - 400,1088,375,143,2156,35,1887,391,1325,2892, - 35,950,32,1409,1384,27,30,31,995,1019, - 26,28,933,262,25,23,50,1054,106,76, - 77,107,1139,374,1233,1154,1282,1246,1334,49, - 1310,1393,1380,336,337,1480,1506,142,1801,664, - 375,143,155,2461,35,950,32,3573,1384,27, - 30,31,995,1019,26,28,933,262,25,23, - 50,1054,106,76,77,107,1139,1611,1233,1154, - 1282,1246,1334,328,1310,1393,1380,1611,373,1480, - 1506,142,441,2065,141,143,2892,35,950,32, - 1105,1384,27,30,31,995,1019,26,28,933, - 262,25,23,50,1054,106,76,77,107,1139, - 3129,1233,1154,1282,1246,1334,1620,1310,1393,1380, - 3554,2519,1480,1506,142,416,371,158,143,2892, - 35,950,32,378,1384,27,30,31,995,1019, - 26,28,933,262,25,23,50,1054,106,76, - 77,107,1139,1447,1233,1154,1282,1246,1334,155, - 1310,1393,1380,1611,4385,1480,1506,142,1618,1611, - 154,143,2892,35,950,32,3134,1384,27,30, - 31,995,1019,26,28,933,262,25,23,50, - 1054,106,76,77,107,1139,1336,1233,1154,1282, - 1246,1334,90,1310,1393,1380,3554,2519,1480,1506, - 142,2556,3394,153,143,2892,35,950,32,378, - 1384,27,30,31,995,1019,26,28,933,262, - 25,23,50,1054,106,76,77,107,1139,376, - 1233,1154,1282,1246,1334,49,1310,1393,1380,746, - 405,1480,1506,142,1618,56,152,143,2892,35, - 950,32,742,1384,27,30,31,995,1019,26, - 28,933,262,25,23,50,1054,106,76,77, - 107,1139,1467,1233,1154,1282,1246,1334,352,1310, - 1393,1380,450,49,1480,1506,142,3121,56,151, - 143,2892,35,950,32,3237,1384,27,30,31, - 995,1019,26,28,933,262,25,23,50,1054, - 106,76,77,107,1139,3681,1233,1154,1282,1246, - 1334,49,1310,1393,1380,676,1611,1480,1506,142, - 1618,56,150,143,2892,35,950,32,331,1384, - 27,30,31,995,1019,26,28,933,262,25, - 23,50,1054,106,76,77,107,1139,1553,1233, - 1154,1282,1246,1334,2108,1310,1393,1380,450,4137, - 1480,1506,142,1618,56,149,143,2892,35,950, - 32,1984,1384,27,30,31,995,1019,26,28, - 933,262,25,23,50,1054,106,76,77,107, - 1139,1174,1233,1154,1282,1246,1334,2147,1310,1393, - 1380,1611,155,1480,1506,142,1618,4582,148,143, - 2892,35,950,32,3122,1384,27,30,31,995, - 1019,26,28,933,262,25,23,50,1054,106, - 76,77,107,1139,1864,1233,1154,1282,1246,1334, - 67,1310,1393,1380,3554,2631,1480,1506,142,1618, - 4668,147,143,2892,35,950,32,4121,1384,27, - 30,31,995,1019,26,28,933,262,25,23, - 50,1054,106,76,77,107,1139,2686,1233,1154, - 1282,1246,1334,66,1310,1393,1380,1611,155,1480, - 1506,142,1618,4682,146,143,2892,35,950,32, - 742,1384,27,30,31,995,1019,26,28,933, - 262,25,23,50,1054,106,76,77,107,1139, - 1312,1233,1154,1282,1246,1334,65,1310,1393,1380, - 3554,1324,1480,1506,142,1618,2559,145,143,2892, - 35,950,32,529,1384,27,30,31,995,1019, - 26,28,933,262,25,23,50,1054,106,76, - 77,107,1139,1445,1233,1154,1282,1246,1334,64, - 1310,1393,1380,1611,49,1480,1506,142,1140,160, - 144,143,2892,35,950,32,1329,1384,27,30, - 31,995,1019,26,28,933,262,25,23,50, - 1054,106,76,77,107,1139,2488,1233,1154,1282, - 1246,1334,326,1310,1393,1380,3554,49,1480,1506, - 142,2534,246,139,143,3011,35,950,32,528, - 1384,27,30,31,995,1019,26,28,933,262, - 25,23,50,1054,106,76,77,107,1139,1088, - 1233,1154,1282,1246,1334,49,1310,1393,1380,2935, - 49,1480,1506,142,3279,666,188,143,3127,35, - 950,32,742,1384,27,30,31,995,1019,26, - 28,933,262,25,23,50,1054,106,76,77, - 107,1139,1906,1233,1154,1282,1246,1334,49,1310, - 1393,1380,747,590,1480,3020,163,3127,35,950, - 32,848,1384,27,30,31,995,1019,26,28, - 933,262,25,23,50,1054,106,76,77,107, - 1139,97,1233,1154,1282,1246,1334,49,1310,1393, - 1380,1277,1088,1480,3020,163,587,35,2645,2428, - 587,35,1887,391,2687,3127,35,950,32,426, - 1384,27,30,31,995,1019,26,28,933,262, - 25,23,50,1054,106,76,77,107,1139,70, - 1233,1154,1282,1246,1334,455,1310,1393,1380,408, - 1964,1480,3020,163,3127,35,950,32,295,1384, - 27,30,31,995,1019,26,28,933,262,25, - 23,50,1054,106,76,77,107,1139,325,1233, - 1154,1282,1246,1334,98,1310,1393,1380,535,580, - 1480,3020,163,587,35,2164,277,587,35,1887, - 391,1015,3182,35,950,32,425,1384,27,30, - 31,995,1019,26,28,933,262,25,23,50, - 1054,106,76,77,107,1139,327,1233,1154,1282, - 1246,1334,437,1310,1393,1380,1234,1618,1480,3020, - 163,3127,35,950,32,428,1384,27,30,31, - 995,1019,26,28,933,262,25,23,50,1054, - 106,76,77,107,1139,1378,1233,1154,1282,1246, - 1334,3119,1310,1393,2638,1785,35,950,32,1618, - 4758,27,30,31,995,1019,59,28,846,3127, - 35,950,32,4202,1384,27,30,31,995,1019, - 26,28,933,262,25,23,50,1054,106,76, - 77,107,1139,55,1233,1154,1282,1246,1334,2720, - 1310,2576,3127,35,950,32,932,1384,27,30, - 31,995,1019,26,28,933,262,25,23,50, - 1054,106,76,77,107,1139,1311,1233,1154,1282, - 1246,1334,1548,2606,3127,35,950,32,1591,1384, - 27,30,31,995,1019,26,28,933,262,25, - 23,50,1054,106,76,77,107,1139,69,1233, - 1154,1282,1246,2458,3127,35,950,32,1679,1384, - 27,30,31,995,1019,26,28,933,262,25, - 23,50,1054,106,76,77,107,1139,1278,1233, - 1154,1282,2509,3127,35,950,32,2585,1384,27, - 30,31,995,1019,26,28,933,262,25,23, - 50,1054,106,76,77,107,1139,752,1233,1154, - 1282,2529,1522,35,950,32,3531,4599,27,30, - 31,995,1019,341,28,3127,35,950,32,2429, - 1384,27,30,31,995,1019,26,28,933,262, - 25,23,50,1054,106,76,77,107,1139,2562, - 1233,1154,2338,49,2437,1795,2987,1199,1785,35, - 950,32,2900,4758,27,30,31,995,1019,58, - 28,334,321,2200,323,287,316,1946,1718,35, - 950,32,424,155,3321,30,31,995,1019,315, - 327,35,456,1152,409,4664,1707,3127,35,950, - 32,2819,1384,27,30,31,995,1019,26,28, - 933,262,25,23,50,1054,106,76,77,107, - 1139,2560,1233,1154,2376,1199,2139,587,35,1887, - 391,587,35,1887,391,308,312,3416,2347,35, - 950,32,2487,4758,27,30,31,995,1019,26, - 28,155,2585,514,587,3337,2164,74,486,3393, - 200,3717,436,393,430,2695,435,3127,35,950, - 32,3965,1384,27,30,31,995,1019,26,28, - 933,262,25,23,50,1054,106,76,77,107, - 1139,2066,1233,1154,2396,3127,35,950,32,1127, - 1384,27,30,31,995,1019,26,28,933,262, - 25,23,50,1054,106,76,77,107,1139,2050, - 1233,1154,2402,2067,35,950,32,2716,4443,27, - 30,31,995,1019,341,28,1446,587,35,1887, - 391,2977,3327,666,1401,35,3671,32,3531,4599, - 27,30,31,995,1019,341,28,1618,587,35, - 1887,391,449,3896,3919,1280,3237,35,1887,391, - 1352,2755,49,3019,1457,674,35,1887,391,237, - 262,1801,2745,321,2200,323,2900,316,1946,2132, - 2411,54,1355,274,2900,334,1199,2225,49,354, - 3380,274,1199,334,321,2200,323,2807,316,1946, - 49,1101,35,2164,3359,346,969,934,351,1801, - 2942,2369,159,3378,1618,3154,2235,752,155,232, - 2151,652,2738,2819,879,1706,3658,752,2671,1956, - 35,950,32,2350,4599,27,30,31,995,1019, - 341,28,235,230,231,276,3658,71,324,3127, - 35,950,32,275,1384,27,30,31,995,1019, - 26,28,933,262,25,23,50,1054,106,76, - 77,85,242,245,248,251,644,1618,1055,2900, - 1267,757,35,1887,391,288,761,1063,335,321, - 2200,323,630,319,1946,298,354,1726,42,3006, - 368,420,422,3577,2975,738,2907,3236,3528,4245, - 1226,101,346,969,934,351,274,1240,44,3006, - 344,3127,35,950,32,1601,1384,27,30,31, - 995,1019,26,28,933,262,25,23,50,1054, - 106,76,77,107,1139,2437,1233,2408,3127,35, - 950,32,2085,1384,27,30,31,995,1019,26, - 28,933,262,25,23,50,1054,106,76,77, - 107,1139,259,1233,2438,2555,541,49,3142,4547, - 232,1199,2384,1812,1618,3353,1511,587,35,1887, - 391,1101,35,2164,277,72,228,49,239,262, - 2310,3093,155,247,230,231,752,155,155,353, - 1,179,3600,4687,541,3554,2416,1816,3514,203, - 215,4515,49,202,212,213,214,216,168,49, - 2280,1801,1645,3231,228,1244,35,296,2418,167, - 155,182,166,169,170,171,172,173,232,179, - 3600,354,49,3554,394,430,3499,203,215,4515, - 1800,202,212,213,214,216,168,346,969,934, - 351,240,230,231,297,1644,2419,167,180,183, - 166,169,170,171,172,173,2077,35,950,32, - 2716,4443,27,30,31,995,1019,341,28,3127, - 35,950,32,2437,1384,27,30,31,995,1019, - 26,28,933,262,25,23,50,1054,106,76, - 77,107,1139,1325,2199,587,35,1887,391,49, - 2650,1879,49,3050,2746,2746,3158,2289,683,49, - 843,35,456,4102,155,4664,321,2200,323,4733, - 316,1946,2491,3000,2703,2703,1980,1457,3413,337, - 274,2977,354,530,1364,35,950,32,1800,4599, - 27,30,31,995,1019,341,28,752,346,969, - 934,351,3127,35,950,32,531,1384,27,30, - 31,995,1019,26,28,933,262,25,23,50, - 1054,106,76,77,107,1139,2900,2239,929,35, - 1887,391,396,430,2900,335,587,35,2164,279, - 508,362,342,335,321,2200,323,1618,317,1946, - 345,1325,354,2226,541,2287,3223,3229,2643,2143, - 354,2437,2746,49,2213,306,1610,2516,348,969, - 934,351,1801,1586,228,2155,348,969,934,351, - 155,3592,2703,506,507,2871,332,337,431,179, - 3600,2447,541,3554,2694,155,4657,203,215,4515, - 4740,202,212,213,214,216,168,49,2153,1476, - 3549,4691,228,587,35,2164,3570,167,155,4214, - 166,169,170,171,172,173,517,179,3600,232, - 541,3554,453,3896,3919,203,215,4515,1618,202, - 212,213,214,216,168,1244,3827,296,363,1988, - 228,1795,250,230,231,167,155,177,166,169, - 170,171,172,173,603,179,3600,2696,541,3554, - 395,430,454,203,215,4515,526,202,212,213, - 214,216,168,587,35,2164,282,49,228,2557, - 301,1597,1855,167,155,175,166,169,170,171, - 172,173,689,179,3600,150,541,3554,2424,1446, - 2450,203,215,4515,2977,202,212,213,214,216, - 168,49,752,1795,49,875,228,4066,4116,1979, - 290,167,155,176,166,169,170,171,172,173, - 775,179,3600,49,541,3554,1356,1190,683,203, - 215,4515,2417,202,212,213,214,216,168,2900, - 2697,432,221,533,228,2632,3557,1457,3451,167, - 155,186,166,169,170,171,172,173,49,179, - 3600,2241,1199,3554,2586,3687,2977,203,215,4515, - 385,202,212,213,214,216,168,2216,35,1887, - 391,1016,35,3127,1365,587,3679,167,1558,4263, - 166,169,170,171,172,173,1695,35,950,32, - 3531,4443,27,30,31,995,1019,341,28,1879, - 1355,2900,49,2746,1199,2560,49,587,4234,541, - 3451,1801,1844,861,49,1801,2156,541,3612,1016, - 35,399,94,2703,2738,1016,35,399,1784,4162, - 159,1446,2375,35,278,155,2977,228,2493,383, - 2444,35,278,155,179,3600,321,2200,323,2703, - 316,1946,179,3600,1882,49,3554,2658,2962,2746, - 203,215,4515,315,202,212,213,214,216,168, - 2623,1777,195,929,35,1887,391,2711,831,345, - 167,2900,191,166,169,170,171,172,173,362, - 334,232,1795,49,96,947,1195,4189,3206,541, - 1795,2810,314,2974,3223,3229,3283,1618,49,308, - 312,3416,1800,1989,253,230,231,1801,47,228, - 4276,3237,181,49,49,155,3988,1199,1199,2240, - 3714,305,4011,4307,179,3600,49,742,3554,178, - 4747,380,203,215,4515,3965,202,212,213,214, - 216,168,1033,155,3607,1795,541,1795,587,35, - 1887,391,167,1859,185,166,169,170,171,172, - 173,1738,2726,1795,49,1325,228,630,2746,1795, - 89,49,155,102,2734,3234,49,2732,4724,196, - 2102,179,3600,49,198,3554,197,571,345,203, - 215,4515,46,202,212,213,214,216,168,49, - 3686,337,304,3392,2453,35,281,1795,201,167, - 2810,194,166,169,170,171,172,173,3127,35, - 950,32,2032,1384,27,30,31,995,1019,26, - 28,933,262,25,23,50,1054,106,76,77, - 107,2251,3127,35,950,32,199,1384,27,30, - 31,995,1019,26,28,933,262,25,23,50, - 1054,106,76,77,107,2286,3127,35,950,32, - 3353,1384,27,30,31,995,1019,26,28,933, - 262,25,23,50,1054,106,76,77,107,2315, - 3127,1941,950,1973,2738,1384,27,30,31,995, - 1019,26,28,933,262,25,23,50,1054,106, - 76,77,84,3127,35,950,32,2739,1384,27, - 30,31,995,1019,26,28,933,262,25,23, - 50,1054,106,76,77,83,3127,35,950,32, - 1713,1384,27,30,31,995,1019,26,28,933, - 262,25,23,50,1054,106,76,77,82,3127, - 35,950,32,2743,1384,27,30,31,995,1019, - 26,28,933,262,25,23,50,1054,106,76, - 77,81,3127,35,950,32,2753,1384,27,30, - 31,995,1019,26,28,933,262,25,23,50, - 1054,106,76,77,80,3127,35,950,32,2759, - 1384,27,30,31,995,1019,26,28,933,262, - 25,23,50,1054,106,76,77,79,3127,35, - 950,32,2761,1384,27,30,31,995,1019,26, - 28,933,262,25,23,50,1054,106,76,77, - 78,2956,35,950,32,2754,1384,27,30,31, - 995,1019,26,28,933,262,25,23,50,1054, - 106,76,77,104,3127,35,950,32,2794,1384, - 27,30,31,995,1019,26,28,933,262,25, - 23,50,1054,106,76,77,109,3127,35,950, - 32,2795,1384,27,30,31,995,1019,26,28, - 933,262,25,23,50,1054,106,76,77,108, - 3127,35,950,32,2796,1384,27,30,31,995, - 1019,26,28,933,262,25,23,50,1054,106, - 76,77,105,1992,35,3671,32,3531,4443,27, - 30,31,995,1019,341,28,2775,1869,35,950, - 32,3531,4443,27,30,31,995,1019,341,28, - 3072,35,950,32,2797,1384,27,30,31,995, - 1019,26,28,933,262,25,23,50,1054,86, - 76,77,1566,49,87,49,2746,1199,1355,1199, - 2763,2767,1199,321,2200,323,1827,316,1946,1795, - 2746,2821,587,35,296,4211,228,321,2200,323, - 2369,316,1946,155,2768,155,2769,49,159,1618, - 228,971,1977,1902,315,1945,1016,35,399,205, - 215,4515,2776,204,212,213,214,216,300,587, - 35,296,49,205,215,4515,3486,204,212,213, - 214,216,1618,3372,587,35,1887,391,527,173, - 206,208,210,3278,2719,217,207,209,2746,1914, - 309,312,3416,2746,206,208,210,3278,1618,217, - 207,209,2799,49,2329,2447,3410,2746,345,49, - 4657,2213,2619,228,2584,2817,3076,4401,1801,3532, - 421,422,3577,1618,49,3673,1618,345,1199,2996, - 945,4401,3513,2824,2800,2685,205,215,4515,1199, - 204,212,213,214,216,3286,35,1887,391,2810, - 2755,2826,2778,4256,155,2802,2803,1897,238,262, - 1983,2113,4119,2746,2059,155,1795,206,208,210, - 3278,1990,217,207,209,161,1956,35,950,32, - 274,4599,27,30,31,995,1019,341,28,1869, - 35,950,32,3531,4443,27,30,31,995,1019, - 341,28,3167,5442,4401,4235,1855,1795,232,1494, - 35,950,32,2724,4443,27,30,31,995,1019, - 341,28,1618,526,1618,5442,2900,5442,5442,1795, - 5442,236,230,231,5442,335,321,2200,323,5442, - 317,1946,275,2001,5442,527,222,2746,406,321, - 2200,323,5442,316,1946,1653,4329,5442,3652,2746, - 5442,243,246,249,252,644,4255,228,192,318, - 3454,323,5442,5442,4233,433,1063,5442,5442,228, - 445,5442,459,5442,5442,674,35,1887,391,5442, - 205,215,4515,5442,204,212,213,214,216,5442, - 5442,1740,205,215,4515,2746,204,212,213,214, - 216,5442,5442,2088,5442,4324,5442,2746,5442,5442, - 49,206,208,210,3278,228,523,207,209,1801, - 47,5442,5442,206,208,210,3278,228,522,207, - 209,5442,1146,674,35,1887,391,5442,205,215, - 4515,5442,204,212,213,214,216,5442,5442,2175, - 205,215,4515,2746,204,212,213,214,216,2972, - 5442,1355,5442,1355,5442,1199,5442,1199,49,206, - 208,210,3278,228,218,207,209,1801,2016,5442, - 5442,206,208,210,3278,5442,307,207,209,5442, - 3115,159,5442,159,5442,5442,205,215,4515,5442, - 204,212,213,214,216,2160,35,950,32,2492, - 4443,27,30,31,995,1019,341,28,1355,5442, - 49,1180,1199,5442,1199,2746,4815,206,208,210, - 3278,1286,502,207,209,2746,4815,1901,5442,5442, - 49,2746,2977,5442,2746,228,5442,1901,159,5442, - 155,2746,2977,5442,5442,228,5442,2737,1878,2867, - 4322,2703,2746,5442,345,318,3454,323,1281,410, - 4309,2703,929,35,1887,391,5442,5442,1281,410, - 4309,5442,345,5442,5442,5442,2810,2900,5442,674, - 35,1887,391,5442,5442,5442,334,2900,2121,411, - 412,413,3278,5442,870,5442,334,49,5442,411, - 412,413,3278,5442,3308,5442,1801,47,5442,5442, - 5442,5442,3245,5442,49,5442,3146,362,5442,2558, - 5442,5442,3245,1801,3571,5442,3154,362,5442,5442, - 5442,1773,3223,3229,5442,5442,3115,674,35,1887, - 391,1773,3223,3229,674,35,1887,391,674,35, - 1887,391,5442,5442,5442,2972,5442,5442,5442,5442, - 5442,5442,1649,35,1887,391,5442,674,35,1887, - 391,2650,49,5442,5442,2746,414,416,5442,49, - 5442,1801,47,49,5442,5442,414,417,1801,47, - 5442,5442,1801,47,621,2703,5442,49,5442,5442, - 1126,2160,49,4541,2721,2247,1801,47,541,5442, - 5442,1801,47,674,35,1887,391,5442,5442,4122, - 2168,35,1887,391,2607,5442,1635,2651,345,49, - 5442,2746,49,541,155,5442,541,5442,587,35, - 1887,391,2517,5442,187,5442,2746,5442,49,5442, - 4289,2703,5442,345,5442,49,345,1801,47,155, - 5442,508,155,5442,1801,47,345,5442,5442,941, - 2611,5442,603,49,5442,2810,534,4159,2810,5442, - 5442,5442,1801,664,5442,49,5442,788,2810,541, - 1151,587,35,1887,391,587,35,1887,391,5442, - 537,5442,5442,49,505,507,189,541,49,345, - 49,5442,541,5442,2746,155,5442,508,49,5442, - 49,5442,2746,5442,2746,187,49,345,5442,5442, - 49,4289,345,155,345,1801,3540,5442,155,1801, - 1930,5442,345,187,345,5442,3850,5442,187,4289, - 5442,49,5442,2810,4289,2746,2810,2746,5442,5442, - 505,507,5442,5442,2810,5442,2810,5442,1730,5442, - 5442,5442,5442,5442,5442,345,512,345,510,5442, - 5442,5442,5442,5442,5442,5442,4266,4139,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,2810,5442,4212, - 5442,5442,4142,5442,5442,4172,5442,5442,5442,538, - 4198,5442,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,3399,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,4226,5442,0,39,5457,0,39,5456, - 0,581,29,0,443,684,0,457,725,0, - 38,599,0,38,5457,0,38,5456,0,2647, - 125,0,1,447,0,461,924,0,460,957, - 0,3448,91,0,581,390,0,35,33,0, - 32,34,0,39,599,0,1,575,0,1, - 5715,0,1,5714,0,1,5713,0,1,5712, - 0,1,5711,0,1,5710,0,1,5709,0, - 1,5708,0,1,5707,0,1,5706,0,1, - 5705,0,39,1,5457,0,39,1,5456,0, - 633,1,0,284,397,0,284,289,0,5676, - 241,0,5675,241,0,5782,241,0,5781,241, - 0,5703,241,0,5702,241,0,5701,241,0, - 5700,241,0,5699,241,0,5698,241,0,5697, - 241,0,5696,241,0,5715,241,0,5714,241, - 0,5713,241,0,5712,241,0,5711,241,0, - 5710,241,0,5709,241,0,5708,241,0,5707, - 241,0,5706,241,0,5705,241,0,39,5457, - 241,0,39,5456,241,0,5480,241,0,5457, - 48,0,5456,48,0,43,5478,0,43,37, - 0,2647,127,0,2647,126,0,5448,1,0, - 5447,1,0,2772,237,0,32,391,0,29, - 390,0,333,448,0,1,92,0,47,37, - 0,5480,1,0,39,1,0,504,3264,0, - 5480,1,229,0,39,1,229,0,229,419, - 0,5457,37,0,5456,37,0,5478,45,0, - 37,45,0,5457,36,0,5456,36,0,5457, - 2,37,0,5456,2,37,0,5452,408,0, - 5451,408,0,1,605,0,1,4184,0,1, - 599,0,229,418,0,333,95,0,35,73, - 0,3042,320,0,1,333,0,4108,279,0, - 504,4355,0,1,229,0,229,220,0,1, - 3519,0,1,3525,0,229,219,0,5454,1, - 0,5450,1,0,1,229,4084,0,5451,229, - 0,4104,229,0,5454,386,0,5453,386,0, - 4179,229,0,10,12,0,8,10,12,0, - 4252,193,0,184,3595,0,4271,386,0,8, - 12,0 + 192,192,193,193,194,160,160,161,161,158, + 158,162,159,159,21,21,22,23,23,23, + 24,24,24,24,25,25,25,26,26,26, + 30,30,30,30,30,33,33,33,34,34, + 35,35,37,37,38,38,40,40,41,41, + 45,45,45,45,45,47,47,47,52,52, + 54,54,61,61,62,62,63,63,64,64, + 65,65,65,65,65,65,65,65,65,65, + 65,65,65,29,29,46,46,46,46,46, + 46,46,46,46,46,46,46,46,36,28, + 163,163,105,105,195,195,104,219,219,82, + 82,82,82,82,82,82,82,82,83,83, + 83,78,78,66,66,196,196,84,84,84, + 116,116,197,197,85,85,85,85,198,198, + 86,86,86,86,86,87,87,95,95,95, + 95,95,95,95,95,55,55,55,55,55, + 132,132,130,130,56,199,27,27,27,27, + 27,50,50,69,69,69,69,69,137,137, + 133,133,133,133,133,134,134,134,135,135, + 135,136,136,136,165,165,165,70,70,70, + 70,70,71,71,71,13,14,14,14,14, + 14,14,14,14,14,14,14,106,138,138, + 138,138,138,138,111,111,111,166,167,167, + 112,112,200,169,169,168,168,139,139,117, + 92,92,140,58,49,170,170,59,57,97, + 97,171,171,164,164,141,142,142,143,89, + 89,172,172,76,76,76,73,73,72,77, + 77,79,79,68,68,68,53,98,98,108, + 107,107,51,51,74,74,81,81,60,109, + 109,109,99,99,99,100,100,101,101,101, + 102,102,118,118,118,120,120,119,119,220, + 220,103,103,202,202,202,202,202,145,48, + 48,174,201,201,146,146,147,147,147,148, + 176,203,203,32,32,110,114,114,114,114, + 205,122,121,121,113,113,113,177,178,178, + 178,178,178,178,178,178,178,178,178,207, + 207,204,204,206,206,179,180,180,180,180, + 181,208,124,123,123,209,209,182,182,182, + 182,115,115,115,210,210,8,8,9,211, + 211,212,183,173,173,184,184,185,186,186, + 7,7,10,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,90,93,93,187,187, + 150,150,151,151,151,151,151,151,3,152, + 152,149,149,188,221,222,222,223,223,224, + 225,225,189,190,190,190,190,214,214,214, + 126,126,126,126,126,127,128,128,125,125, + 96,91,88,88,175,175,129,129,215,215, + 215,153,153,144,144,216,216,191,191,1119, + 35,2931,2924,4701,1355,27,30,31,1172,1197, + 26,28,2922,295,25,23,50,1259,106,76, + 77,107,1283,1332,1321,1428,332,2489,176,1421, + 1824,307,1705,1466,1799,4231,1752,1810,413,1846, + 175,1510,2623,35,311,190,71,2037,2273,34, + 265,2025,2046,1638,35,1149,32,4910,3812,27, + 30,31,1172,1197,374,28,1405,1850,268,263, + 264,1647,1673,35,2034,424,2081,2360,35,1149, + 32,672,5349,27,30,31,1172,1197,26,28, + 975,295,25,23,50,1259,106,76,77,107, + 1283,1332,1321,3168,49,308,161,425,1849,275, + 278,281,1212,985,2224,1991,959,1813,3766,71, + 35,329,3161,3368,3175,351,3484,356,1818,3174, + 388,3183,909,2264,2396,2858,5887,284,3177,3184, + 3218,160,578,759,35,432,1543,35,1149,32, + 4694,2369,27,30,31,1172,1197,57,28,1537, + 35,313,626,3860,3216,71,35,2273,3320,2360, + 35,1149,32,672,5349,27,30,31,1172,1197, + 26,28,975,295,25,23,50,1259,106,76, + 77,107,1283,1332,1321,3168,1038,387,161,2456, + 35,311,549,575,3279,579,71,3182,2700,71, + 35,2210,2058,4274,3161,1595,3175,379,1341,651, + 384,3174,534,3183,93,2598,3126,377,1088,3225, + 3177,3184,3218,160,578,378,3181,2360,35,1149, + 32,672,5349,27,30,31,1172,1197,26,28, + 975,295,25,23,50,1259,106,76,77,107, + 1283,1332,1321,3168,3573,159,161,440,3273,2215, + 35,1149,32,4694,1766,27,30,31,1172,1197, + 56,28,3161,479,3175,71,35,2034,424,3174, + 3185,3183,71,3487,549,575,3279,579,3177,3184, + 3218,160,578,61,1912,35,1149,32,4531,1257, + 27,30,31,1172,1197,26,28,467,3259,547, + 1815,3225,272,295,3855,759,35,3365,1053,2570, + 35,1149,32,672,5349,27,30,31,1172,1197, + 26,28,975,295,25,23,50,1259,106,76, + 77,107,1283,1332,1321,3168,56,49,161,1335, + 265,1207,549,575,3279,579,1851,3487,1991,809, + 42,3283,56,3260,3161,1400,3175,1207,273,263, + 264,3174,1556,3183,1729,1488,3282,2033,368,3225, + 3177,3184,3218,160,578,2708,35,1149,32,672, + 3329,27,30,31,1172,1197,26,28,975,295, + 25,23,50,1259,106,76,77,107,1283,1332, + 1321,1428,2600,3639,176,1421,60,1704,1705,1466, + 1799,324,1752,1810,1193,1846,175,3159,71,35, + 3328,414,1559,35,1149,32,865,1520,41,30, + 31,1172,1197,843,550,575,3279,579,2428,35, + 1149,32,672,2277,27,30,31,1172,1197,26, + 28,975,295,25,23,50,1259,106,76,77, + 107,1283,1332,1321,1428,147,147,176,1421,3488, + 4787,1705,1466,1799,533,1752,1810,474,1846,175, + 3159,2693,35,314,414,323,3327,35,1149,32, + 672,2634,27,30,31,1172,1197,26,28,975, + 295,25,23,50,1259,106,76,77,107,1283, + 1332,1321,1428,147,1823,3522,1421,4848,3086,1705, + 2854,421,415,2872,2638,35,1149,32,672,2736, + 27,30,31,1172,1197,26,28,975,295,25, + 23,50,1259,106,76,77,107,1283,1332,1321, + 1428,1104,2738,176,1421,2200,1860,1705,1466,1799, + 2089,1752,1810,3470,1846,175,3159,1537,35,313, + 414,5241,2795,1994,35,1149,32,2765,3281,40, + 30,31,1172,1197,422,415,2872,2973,35,1149, + 32,672,1938,27,30,31,1172,1197,26,28, + 975,295,25,23,50,1259,106,76,77,107, + 1283,1332,1321,1428,426,463,176,1421,56,4512, + 1705,1466,1799,677,1752,1810,765,1846,175,71, + 35,2034,424,190,3327,35,1149,32,672,3735, + 27,30,31,1172,1197,26,28,975,295,25, + 23,50,1259,106,76,77,107,1283,1332,1321, + 1428,488,69,1239,1421,71,3625,1705,1466,2803, + 412,415,2872,2973,35,1149,32,672,2524,27, + 30,31,1172,1197,26,28,975,295,25,23, + 50,1259,106,76,77,107,1283,1332,1321,1428, + 1213,1449,176,1421,56,1038,1705,1466,1799,769, + 1752,1810,1233,1846,175,3462,1537,35,566,408, + 5853,2532,2973,35,1149,32,672,2634,27,30, + 31,1172,1197,26,28,975,295,25,23,50, + 1259,106,76,77,107,1283,1332,1321,1428,56, + 626,176,1421,1193,837,1705,1466,1799,1086,1752, + 1810,1818,1846,175,71,35,2034,424,408,2973, + 35,1149,32,672,2277,27,30,31,1172,1197, + 26,28,975,295,25,23,50,1259,106,76, + 77,107,1283,1332,1321,1428,470,925,176,1421, + 389,1338,1705,1466,1799,24,1752,1810,55,1846, + 175,71,35,2273,310,408,2277,2670,407,2502, + 35,1149,32,672,2634,27,30,31,1172,1197, + 26,28,975,295,25,23,50,1259,106,76, + 77,107,1283,1332,1321,1428,1662,69,176,1421, + 427,463,1705,1466,1799,496,1752,1810,1818,1846, + 175,71,3471,2273,74,174,1133,406,2345,2973, + 35,1149,32,672,2277,27,30,31,1172,1197, + 26,28,975,295,25,23,50,1259,106,76, + 77,107,1283,1332,1321,1428,359,1818,176,1421, + 666,1818,1705,1466,1799,68,1752,1810,1818,1846, + 175,71,35,316,404,191,2973,35,1149,32, + 672,3462,27,30,31,1172,1197,26,28,975, + 295,25,23,50,1259,106,76,77,107,1283, + 1332,1321,1428,1193,1818,176,1421,429,463,1705, + 1466,1799,495,1752,1810,2491,1846,175,71,35, + 2034,424,187,2973,35,1149,32,672,2277,27, + 30,31,1172,1197,26,28,975,295,25,23, + 50,1259,106,76,77,107,1283,1332,1321,1428, + 469,5679,176,1421,438,51,1705,1466,1799,53, + 1752,1810,361,1846,175,71,35,2034,424,186, + 2973,35,1149,32,672,2277,27,30,31,1172, + 1197,26,28,975,295,25,23,50,1259,106, + 76,77,107,1283,1332,1321,1428,468,97,176, + 1421,1818,241,1705,1466,1799,87,1752,1810,2178, + 1846,175,931,35,2273,3472,185,2973,35,1149, + 32,672,2277,27,30,31,1172,1197,26,28, + 975,295,25,23,50,1259,106,76,77,107, + 1283,1332,1321,1428,56,65,176,1421,442,6191, + 1705,1466,1799,52,1752,1810,2280,1846,175,931, + 35,2273,310,184,2973,35,1149,32,672,2277, + 27,30,31,1172,1197,26,28,975,295,25, + 23,50,1259,106,76,77,107,1283,1332,1321, + 1428,56,228,176,1421,98,1022,1705,1466,1799, + 90,1752,1810,2322,1846,175,71,35,2273,312, + 183,2973,35,1149,32,672,2277,27,30,31, + 1172,1197,26,28,975,295,25,23,50,1259, + 106,76,77,107,1283,1332,1321,1428,56,61, + 176,1421,2870,3060,1705,1466,1799,385,1752,1810, + 1007,1846,175,71,35,2273,3523,182,2973,35, + 1149,32,672,2018,27,30,31,1172,1197,26, + 28,975,295,25,23,50,1259,106,76,77, + 107,1283,1332,1321,1428,585,1334,176,1421,56, + 1488,1705,1466,1799,966,1752,1810,2178,1846,175, + 71,35,2273,315,181,2973,35,1149,32,672, + 2277,27,30,31,1172,1197,26,28,975,295, + 25,23,50,1259,106,76,77,107,1283,1332, + 1321,1428,2261,147,176,1421,334,4931,1705,1466, + 1799,2405,1752,1810,69,1846,175,71,35,2273, + 565,180,2973,35,1149,32,672,2277,27,30, + 31,1172,1197,26,28,975,295,25,23,50, + 1259,106,76,77,107,1283,1332,1321,1428,56, + 1348,176,1421,1847,2100,1705,1466,1799,2578,1752, + 1810,69,1846,175,2934,2277,1488,364,179,2973, + 35,1149,32,672,347,27,30,31,1172,1197, + 26,28,975,295,25,23,50,1259,106,76, + 77,107,1283,1332,1321,1428,67,1499,176,1421, + 2250,233,1705,1466,1799,1499,1752,1810,2862,1846, + 175,759,35,432,1939,178,2973,35,1149,32, + 672,2277,27,30,31,1172,1197,26,28,975, + 295,25,23,50,1259,106,76,77,107,1283, + 1332,1321,1428,56,2795,176,1421,1361,1111,1705, + 1466,1799,66,1752,1810,1482,1846,175,2731,35, + 564,2413,177,2852,35,1149,32,672,159,27, + 30,31,1172,1197,26,28,975,295,25,23, + 50,1259,106,76,77,107,1283,1332,1321,1428, + 1734,1508,1413,1421,5055,3855,1705,1466,1799,2627, + 1752,1810,1365,3317,196,2973,35,1149,32,672, + 2007,27,30,31,1172,1197,26,28,975,295, + 25,23,50,1259,106,76,77,107,1283,1332, + 1321,1428,3574,1907,176,1421,1193,2277,1705,1466, + 1799,391,1752,1810,3260,1846,175,483,2934,390, + 593,139,1537,35,489,2007,5117,362,593,367, + 1934,2342,3094,35,1149,32,672,1528,27,30, + 31,1172,1197,26,28,975,295,25,23,50, + 1259,106,76,77,107,1283,1332,1321,3168,920, + 2664,161,1243,35,1149,32,4910,4511,27,30, + 31,1172,1197,374,28,2312,2342,3161,3847,3175, + 56,1229,35,329,3174,1347,3183,363,370,2112, + 3002,272,295,3177,3184,3218,160,172,3094,35, + 1149,32,672,70,27,30,31,1172,1197,26, + 28,975,295,25,23,50,1259,106,76,77, + 107,1283,1332,1321,3168,2555,2132,161,88,265, + 2489,102,2933,370,354,2260,356,2489,349,1437, + 2701,56,465,3161,1350,3175,3582,273,263,264, + 3174,348,3183,2831,2171,35,489,1488,5117,3177, + 3184,3218,160,171,3094,35,1149,32,672,3528, + 27,30,31,1172,1197,26,28,975,295,25, + 23,50,1259,106,76,77,107,1283,1332,1321, + 3168,2406,1915,161,2627,265,5179,2734,1662,2594, + 3185,483,4274,342,345,1763,482,3568,3569,3161, + 320,3175,2723,277,263,264,3174,321,3183,360, + 1501,1956,2007,411,378,3177,3184,3218,160,170, + 3094,35,1149,32,672,2008,27,30,31,1172, + 1197,26,28,975,295,25,23,50,1259,106, + 76,77,107,1283,1332,1321,3168,671,2277,161, + 1243,35,1149,32,4910,4511,27,30,31,1172, + 1197,374,28,2342,1734,3161,1655,3175,5055,147, + 44,3283,3174,5836,3183,56,1488,2489,2634,65, + 2446,3177,3184,3218,160,169,3094,35,1149,32, + 672,2084,27,30,31,1172,1197,26,28,975, + 295,25,23,50,1259,106,76,77,107,1283, + 1332,1321,3168,1499,2277,161,2600,265,2594,369, + 370,409,354,2260,356,2696,349,1437,486,3568, + 3569,3161,1423,3175,1645,280,263,264,3174,2987, + 3183,1653,411,89,2007,64,102,3177,3184,3218, + 160,168,3094,35,1149,32,672,331,27,30, + 31,1172,1197,26,28,975,295,25,23,50, + 1259,106,76,77,107,1283,1332,1321,3168,2312, + 1893,161,1243,35,1149,32,4910,4511,27,30, + 31,1172,1197,374,28,2342,69,3161,478,3175, + 492,428,463,1728,3174,227,3183,759,35,432, + 71,35,329,3177,3184,3218,160,167,3094,35, + 1149,32,672,399,27,30,31,1172,1197,26, + 28,975,295,25,23,50,1259,106,76,77, + 107,1283,1332,1321,3168,2277,466,161,56,2855, + 3076,2975,370,2145,354,2260,356,358,349,1437, + 1229,3562,329,3161,2626,3175,593,2818,2698,4440, + 3174,3628,3183,1954,2314,2489,2787,3470,415,3177, + 3184,3218,160,166,3094,35,1149,32,672,2789, + 27,30,31,1172,1197,26,28,975,295,25, + 23,50,1259,106,76,77,107,1283,1332,1321, + 3168,2277,417,161,1729,35,1149,32,4531,2417, + 27,30,31,1172,1197,59,28,3277,3629,3161, + 1335,3175,584,457,56,1728,3174,147,3183,1444, + 1365,6056,55,2007,214,3177,3184,3218,160,165, + 3094,35,1149,32,672,330,27,30,31,1172, + 1197,26,28,975,295,25,23,50,1259,106, + 76,77,107,1283,1332,1321,3168,1662,1716,161, + 1729,35,1149,32,4531,2420,27,30,31,1172, + 1197,58,28,56,2342,3161,585,3175,2408,2762, + 1956,2593,3174,56,3183,2776,6111,2489,3362,2007, + 495,3177,3184,3218,160,164,3094,35,1149,32, + 672,2874,27,30,31,1172,1197,26,28,975, + 295,25,23,50,1259,106,76,77,107,1283, + 1332,1321,3168,3072,2277,161,1994,35,1149,32, + 365,370,1669,30,31,1172,1197,56,3001,1893, + 2342,3161,2474,3175,584,147,319,1488,3174,6181, + 3183,71,147,405,1193,54,6233,3177,3184,3218, + 160,163,3094,35,1149,32,672,339,27,30, + 31,1172,1197,26,28,975,295,25,23,50, + 1259,106,76,77,107,1283,1332,1321,3168,2594, + 2597,161,1994,35,1149,32,3084,370,1857,30, + 31,1172,1197,2018,1917,56,56,3161,1833,3175, + 2673,4274,56,3171,3174,572,3183,5737,1488,1488, + 1488,1752,1488,3177,3184,3218,160,162,3154,35, + 1149,32,672,378,27,30,31,1172,1197,26, + 28,975,295,25,23,50,1259,106,76,77, + 107,1283,1332,1321,3168,2010,2489,161,56,265, + 2594,2594,2971,6135,3258,1845,718,71,35,2034, + 424,56,2095,3161,3785,3175,2138,283,263,264, + 3174,3724,3183,56,587,586,142,2082,1987,3177, + 3184,3218,160,159,3214,35,1149,32,672,307, + 27,30,31,1172,1197,26,28,975,295,25, + 23,50,1259,106,76,77,107,1283,1332,1321, + 1428,56,417,176,1421,56,5754,1705,1466,1799, + 1995,1752,1810,2178,1846,175,418,2277,2277,2185, + 221,3327,35,1149,32,672,2277,27,30,31, + 1172,1197,26,28,975,295,25,23,50,1259, + 106,76,77,107,1283,1332,1321,1428,357,101, + 2257,1421,254,309,1705,1466,1799,3064,1752,1810, + 2277,3317,196,3327,35,1149,32,672,2353,27, + 30,31,1172,1197,26,28,975,295,25,23, + 50,1259,106,76,77,107,1283,1332,1321,1428, + 2594,3078,2418,1421,56,4274,1705,1466,1799,2739, + 1752,1810,56,3317,196,56,56,5815,2178,2178, + 6205,2533,2178,2178,56,2450,319,4140,2277,2443, + 3327,35,1149,32,672,1661,27,30,31,1172, + 1197,26,28,975,295,25,23,50,1259,106, + 76,77,107,1283,1332,1321,1428,338,211,487, + 1421,231,230,1705,1466,1799,2496,1752,1810,2416, + 3317,196,3327,35,1149,32,672,459,27,30, + 31,1172,1197,26,28,975,295,25,23,50, + 1259,106,76,77,107,1283,1332,1321,1428,56, + 591,1867,1421,395,2906,1705,1466,1799,571,1752, + 1810,2669,3317,196,2268,581,2665,753,2575,3370, + 3373,2178,2178,491,2006,71,35,2034,424,3327, + 35,1149,32,672,328,27,30,31,1172,1197, + 26,28,975,295,25,23,50,1259,106,76, + 77,107,1283,1332,1321,1428,1922,49,1657,1421, + 337,234,1705,1466,1799,1019,1752,1810,46,3317, + 196,3486,35,1149,32,672,458,27,30,31, + 1172,1197,26,28,975,295,25,23,50,1259, + 106,76,77,107,1283,1332,1321,1428,56,2533, + 1248,1421,416,995,1705,1466,1799,265,1752,1810, + 56,3317,196,2927,2914,4329,2178,2178,4591,2023, + 2178,2490,2534,835,3368,286,263,264,3327,35, + 1149,32,672,461,27,30,31,1172,1197,26, + 28,975,295,25,23,50,1259,106,76,77, + 107,1283,1332,1321,1428,232,333,744,1421,4872, + 2492,1705,1466,1799,2178,1752,2915,2178,2564,2277, + 3433,35,1149,32,672,3623,27,30,31,1172, + 1197,26,28,975,295,25,23,50,1259,106, + 76,77,107,1283,1332,1321,3168,3062,387,2276, + 413,2796,2594,255,1207,1486,225,4274,1508,1011, + 2290,2566,3855,1929,589,3161,4274,3175,379,1341, + 651,384,3174,743,3183,915,925,192,577,4140, + 2045,3177,3461,3327,35,1149,32,672,4140,27, + 30,31,1172,1197,26,28,975,295,25,23, + 50,1259,106,76,77,107,1283,1332,1321,1428, + 2542,3260,577,1421,2486,2179,1705,1466,1799,2277, + 2865,3380,35,1149,32,672,367,27,30,31, + 1172,1197,26,28,975,295,25,23,50,1259, + 106,76,77,107,1283,1332,1321,3168,2276,1930, + 4964,2389,757,1207,1588,395,6144,2494,2878,2945, + 2601,3003,1663,2529,396,2595,3161,2628,3175,3004, + 2996,3370,3373,3174,2664,3183,192,2633,71,35, + 2034,424,3425,2905,35,1149,32,672,1207,27, + 30,31,1172,1197,26,28,975,295,25,23, + 50,1259,106,76,77,107,1283,1332,1321,3168, + 49,188,2706,2668,2995,2959,1216,2778,2735,1394, + 2277,1991,1171,3380,35,1149,32,672,3357,27, + 30,31,1172,1197,26,28,975,295,25,23, + 50,1259,106,76,77,107,1283,1332,1321,3168, + 1218,5026,3064,1682,1292,3006,2822,2011,2929,2793, + 2881,4274,2960,3117,3124,3092,3176,87,3161,2962, + 3175,3026,1851,3487,2277,3174,2277,3422,3380,35, + 1149,32,672,4140,27,30,31,1172,1197,26, + 28,975,295,25,23,50,1259,106,76,77, + 107,1283,1332,1321,3168,5088,3086,2868,265,3118, + 1362,3119,173,3183,2998,3236,1637,3120,3237,3244, + 2966,2958,6850,3161,6850,3175,277,263,264,2277, + 3424,3327,35,1149,32,672,6850,27,30,31, + 1172,1197,26,28,975,295,25,23,50,1259, + 106,76,77,107,1283,1332,1321,1428,6850,541, + 2869,1421,2277,2277,2740,3380,35,1149,32,672, + 6850,27,30,31,1172,1197,26,28,975,295, + 25,23,50,1259,106,76,77,107,1283,1332, + 1321,3168,6850,3327,5212,6850,6850,6850,6850,6850, + 6850,6850,6850,6850,6850,6850,539,540,6850,6850, + 3161,323,3386,3327,35,1149,32,672,6850,27, + 30,31,1172,1197,26,28,975,295,25,23, + 50,1259,106,76,77,107,1283,1332,1321,1428, + 2853,3522,6850,2751,3327,35,1149,32,672,6850, + 27,30,31,1172,1197,26,28,975,295,25, + 23,50,1259,106,76,77,107,1283,1332,1321, + 1428,6850,6850,6850,2788,3380,35,1149,32,672, + 6850,27,30,31,1172,1197,26,28,975,295, + 25,23,50,1259,106,76,77,107,1283,1332, + 1321,3168,1258,35,1149,32,4993,4511,27,30, + 31,1172,1197,374,28,3380,35,1149,32,672, + 3390,27,30,31,1172,1197,26,28,975,295, + 25,23,50,1259,106,76,77,107,1283,1332, + 1321,3168,6850,6850,6850,71,35,2034,424,2776, + 71,35,2034,424,4451,3260,56,2276,6850,2276, + 3420,1207,1207,6850,1207,6850,6850,6850,6850,6850, + 367,2092,6850,6850,354,2260,356,49,349,1437, + 386,6850,49,2181,188,192,2783,192,1991,1282, + 6850,348,1394,1991,799,3327,35,1149,32,672, + 5914,27,30,31,1172,1197,26,28,975,295, + 25,23,50,1259,106,76,77,107,1283,1332, + 1321,2535,265,6850,6850,6850,6850,6850,387,6850, + 6850,56,6850,6850,265,6850,1207,265,6850,6850, + 280,263,264,341,345,1763,6850,6850,379,1341, + 651,384,283,263,264,569,263,264,1776,188, + 6850,6850,2641,6850,2774,6850,2983,1521,3327,35, + 1149,32,672,3572,27,30,31,1172,1197,26, + 28,975,295,25,23,50,1259,106,76,77, + 107,1283,1332,1321,2553,3327,35,1149,32,672, + 6850,27,30,31,1172,1197,26,28,975,295, + 25,23,50,1259,106,76,77,107,1283,1332, + 1321,2608,3327,35,1149,32,672,6850,27,30, + 31,1172,1197,26,28,975,295,25,23,50, + 1259,106,76,77,107,1283,1332,1321,2642,3327, + 35,1149,32,672,6850,27,30,31,1172,1197, + 26,28,975,295,25,23,50,1259,106,76, + 77,107,1283,1332,1321,3374,3327,35,1149,32, + 672,6850,27,30,31,1172,1197,26,28,975, + 295,25,23,50,1259,106,76,77,107,1283, + 1332,1321,3383,3327,35,1149,32,672,6850,27, + 30,31,1172,1197,26,28,975,295,25,23, + 50,1259,106,76,77,107,1283,1332,1321,3385, + 1339,35,1149,32,4910,4448,27,30,31,1172, + 1197,374,28,3327,35,1149,32,672,6850,27, + 30,31,1172,1197,26,28,975,295,25,23, + 50,1259,106,76,77,107,1283,1332,1321,2905, + 3759,35,1149,32,4910,4755,27,30,31,1172, + 1197,374,28,6850,1220,35,3525,32,4993,4511, + 27,30,31,1172,1197,374,28,6850,6850,6850, + 56,386,354,2260,356,1207,349,1437,6850,387, + 6850,6850,2276,2276,6850,6850,6850,1207,1207,3475, + 6850,1508,1904,6850,6850,3855,3855,6850,188,379, + 1341,651,384,6850,6850,6850,2871,3260,6850,3473, + 192,192,354,2260,356,6850,349,1437,2292,387, + 6850,6850,367,1207,6850,6850,354,2260,356,2987, + 349,1437,6850,6850,3539,35,2034,424,4441,379, + 1341,651,384,2455,3260,3260,188,270,295,1776, + 6850,6850,5914,6850,597,6850,6850,6850,6850,4232, + 4232,3327,35,1149,32,672,307,27,30,31, + 1172,1197,26,28,975,295,25,23,50,1259, + 106,76,77,107,2462,265,6850,2988,3088,2382, + 35,1149,32,4910,4511,27,30,31,1172,1197, + 374,28,401,268,263,264,3327,35,1149,32, + 672,6850,27,30,31,1172,1197,26,28,975, + 295,25,23,50,1259,106,76,77,107,1283, + 1332,2649,6850,453,455,3524,6850,6850,6850,6850, + 308,6850,6850,6850,275,278,281,1212,985,6850, + 6850,94,96,6850,6850,6850,6850,6850,6850,6850, + 1575,354,2260,356,6850,349,1437,909,2264,2396, + 2858,5887,284,3327,35,1149,32,672,348,27, + 30,31,1172,1197,26,28,975,295,25,23, + 50,1259,106,76,77,107,1283,1332,2715,3216, + 259,243,35,2034,424,599,6850,6850,1508,604, + 6850,2260,3855,6850,6850,3855,4274,6850,56,71, + 35,2034,424,1207,6850,6850,6850,261,188,6850, + 341,345,1763,49,6850,6850,3079,6850,4140,212, + 6850,6850,2594,6850,1991,3274,188,6850,236,248, + 653,307,6850,3324,1955,235,245,246,247,249, + 3572,3260,1,6850,3260,6850,201,599,2917,2180, + 6850,1508,1832,6850,1207,3855,367,4274,200,367, + 6850,6850,215,199,202,203,204,205,206,261, + 188,71,35,2034,424,6850,6850,188,3079,378, + 6850,212,6850,6850,2594,3276,4675,6850,233,6144, + 236,248,653,6850,395,6850,6850,235,245,246, + 247,249,6850,49,3260,375,6850,6850,201,1917, + 3370,3373,630,6850,1991,959,6850,6850,6850,367, + 200,6850,213,6850,216,199,202,203,204,205, + 206,1416,35,1149,32,4910,4448,27,30,31, + 1172,1197,374,28,3327,35,1149,32,672,5962, + 27,30,31,1172,1197,26,28,975,295,25, + 23,50,1259,106,76,77,107,1283,2355,6850, + 6850,3327,35,1149,32,672,4502,27,30,31, + 1172,1197,26,28,975,295,25,23,50,1259, + 106,76,77,107,1283,2421,6850,6850,6850,6850, + 6850,6850,6850,354,2260,356,6850,349,1437,6850, + 387,6850,6850,6850,6850,1770,35,1149,32,4993, + 588,27,30,31,1172,1197,374,28,6850,6850, + 379,1341,651,384,329,35,2034,424,6850,6850, + 589,2027,35,2034,424,1751,6850,2003,35,2034, + 424,6850,6850,6850,345,6850,6850,6850,6850,599, + 6850,6850,6850,6850,6850,6850,49,6850,3260,56, + 6850,56,6850,49,1207,6850,4274,1991,1298,307, + 6850,261,188,368,1991,2051,6850,354,2260,356, + 3079,350,1437,212,387,2260,2594,188,378,3855, + 4274,4707,236,248,653,2011,6850,6850,2917,235, + 245,246,247,249,381,1341,651,384,431,56, + 201,6850,4140,599,1207,6850,6850,329,35,2034, + 424,718,200,6850,6850,6850,3624,199,202,203, + 204,205,206,6850,6850,261,188,188,3260,6850, + 6850,6850,2150,3369,3079,2378,6850,212,6850,49, + 2594,6850,6850,367,6850,6850,236,248,653,6850, + 1991,47,6850,235,245,246,247,249,72,6850, + 517,6850,2180,6850,201,599,6850,599,243,35, + 2034,424,6850,4675,1101,6850,200,6850,395,6850, + 210,199,202,203,204,205,206,261,188,3270, + 188,6850,3508,1917,3370,3373,3079,1207,3079,212, + 49,212,2594,6850,6850,6850,6850,6850,236,248, + 653,1991,47,6850,6850,235,245,246,247,249, + 188,6850,603,6850,6850,6850,201,599,194,56, + 243,35,2034,424,1207,1531,2775,6850,200,6850, + 228,4274,208,199,202,203,204,205,206,261, + 188,329,35,2034,424,6850,6850,188,3079,6850, + 6850,212,49,378,2594,2444,6850,592,6850,6850, + 236,248,653,1991,2729,6850,6850,235,245,246, + 247,249,6850,49,689,6850,6850,6850,201,599, + 6850,6850,6850,6850,1991,47,718,4459,56,6850, + 200,6850,6850,4274,209,199,202,203,204,205, + 206,261,188,243,35,2034,424,595,2842,56, + 3079,6850,6850,212,1207,378,2594,6850,6850,6850, + 6850,6850,236,248,653,6850,6850,6850,6850,235, + 245,246,247,249,6850,49,775,188,6850,6850, + 201,599,6850,6850,6850,3459,1991,1488,718,6850, + 6062,229,200,6850,6850,6850,219,199,202,203, + 204,205,206,261,188,243,35,2034,424,2209, + 4459,56,3079,6850,6850,212,1207,3673,2594,6850, + 6850,6850,6850,6850,236,248,653,6850,6850,6850, + 6850,235,245,246,247,249,6850,49,861,188, + 6850,6850,201,599,6850,56,6850,1564,1991,47, + 1207,6850,56,6850,200,6850,6850,4274,3630,199, + 202,203,204,205,206,261,188,243,35,2034, + 424,6850,885,188,3079,6850,6850,212,6850,378, + 2594,3672,3129,6850,6850,6850,236,248,653,6850, + 6850,6850,6850,235,245,246,247,249,6850,49, + 947,6850,6850,6850,201,599,6850,6850,6850,6850, + 1991,47,718,6850,56,6850,200,6850,6850,4274, + 224,199,202,203,204,205,206,261,188,243, + 35,2034,424,2246,1249,6850,3079,6850,6850,212, + 6850,378,2594,6850,6850,6850,6850,6850,236,248, + 653,6850,6850,6850,6850,235,245,246,247,249, + 6850,49,1033,6850,6850,6850,201,599,6850,6850, + 6850,6850,1991,47,718,6850,6850,6850,200,6850, + 6850,6850,218,199,202,203,204,205,206,261, + 188,71,35,2034,424,1870,1384,6850,3079,6850, + 6850,212,6850,6850,2594,6850,6850,6850,6850,6850, + 236,248,653,6850,6850,6850,6850,235,245,246, + 247,249,6850,49,6850,6850,6850,6850,201,6850, + 6850,6850,6850,6850,1991,642,6850,6850,6850,6850, + 200,6850,6850,6850,227,199,202,203,204,205, + 206,3327,35,1149,32,672,6850,27,30,31, + 1172,1197,26,28,975,295,25,23,50,1259, + 106,76,77,107,2464,3327,35,1149,32,672, + 6850,27,30,31,1172,1197,26,28,975,295, + 25,23,50,1259,106,76,77,107,2471,3638, + 35,553,6850,6850,6850,6850,6850,6850,6850,6850, + 6850,6850,270,295,3327,35,1149,32,672,6850, + 27,30,31,1172,1197,26,28,975,295,25, + 23,50,1259,106,76,77,85,6850,6850,6850, + 6850,6850,6850,6850,6850,3327,2037,1149,2045,672, + 265,27,30,31,1172,1197,26,28,975,295, + 25,23,50,1259,106,76,77,84,268,263, + 264,3327,35,1149,32,672,6850,27,30,31, + 1172,1197,26,28,975,295,25,23,50,1259, + 106,76,77,83,6850,6850,6850,6850,6850,6850, + 6850,6850,6850,6850,6850,6850,6850,6850,6850,275, + 278,281,1212,985,6850,6850,6850,6850,6850,6850, + 6850,6850,6850,6850,6850,6850,6850,6850,6850,6850, + 6850,6850,2198,3567,3881,3893,5747,3327,35,1149, + 32,672,6850,27,30,31,1172,1197,26,28, + 975,295,25,23,50,1259,106,76,77,82, + 3327,35,1149,32,672,6850,27,30,31,1172, + 1197,26,28,975,295,25,23,50,1259,106, + 76,77,81,6850,6850,6850,6850,562,563,567, + 3327,35,1149,32,672,6850,27,30,31,1172, + 1197,26,28,975,295,25,23,50,1259,106, + 76,77,80,3896,3327,35,1149,32,672,6850, + 27,30,31,1172,1197,26,28,975,295,25, + 23,50,1259,106,76,77,79,3327,35,1149, + 32,672,6850,27,30,31,1172,1197,26,28, + 975,295,25,23,50,1259,106,76,77,78, + 3033,35,1149,32,672,6850,27,30,31,1172, + 1197,26,28,975,295,25,23,50,1259,106, + 76,77,104,3327,35,1149,32,672,6850,27, + 30,31,1172,1197,26,28,975,295,25,23, + 50,1259,106,76,77,109,3327,35,1149,32, + 672,6850,27,30,31,1172,1197,26,28,975, + 295,25,23,50,1259,106,76,77,108,3327, + 35,1149,32,672,6850,27,30,31,1172,1197, + 26,28,975,295,25,23,50,1259,106,76, + 77,105,1492,35,3525,32,4910,4511,27,30, + 31,1172,1197,374,28,3274,35,1149,32,672, + 6850,27,30,31,1172,1197,26,28,975,295, + 25,23,50,1259,86,76,77,1603,6850,6850, + 56,56,4274,6850,6850,4274,599,3687,35,553, + 6850,6850,6850,6850,1870,6850,6850,6850,6850,4274, + 271,295,6850,6850,261,6850,6850,378,378,188, + 6850,6850,6850,6850,354,2260,356,1494,349,1437, + 6850,261,6850,6850,6850,238,248,653,6850,6850, + 6850,2455,237,245,246,247,249,6850,265,6850, + 718,718,238,248,653,6850,6850,6850,6850,237, + 245,246,247,249,6850,1959,269,263,264,6850, + 4274,545,1436,6850,6850,6850,6850,239,241,243, + 3469,6850,250,240,242,6850,2271,35,2034,424, + 6850,6850,261,6850,239,241,243,3469,6850,250, + 240,242,6850,71,35,2034,424,276,279,282, + 1212,985,6850,238,248,653,6850,2407,49,6097, + 237,245,246,247,249,6850,6850,6850,6850,1991, + 47,454,455,3524,2605,49,6097,3589,35,2034, + 424,4441,6850,6850,6850,6850,1991,2048,6850,6850, + 271,295,6850,719,6850,239,241,243,3469,6850, + 250,240,242,6850,1385,35,1149,32,4993,307, + 27,30,31,1172,1197,374,28,6850,1296,6850, + 6850,6850,5951,4274,6850,562,563,568,265,6850, + 6850,6850,6850,6850,6850,2737,6850,6097,6850,6850, + 6850,71,35,2034,424,261,269,263,264,6850, + 6850,6850,1385,35,1149,32,4993,3260,27,30, + 31,1172,1197,374,28,6850,828,443,6002,6850, + 6850,6850,368,49,6850,6850,354,2260,356,6850, + 352,1437,6850,308,1991,2660,6850,276,279,282, + 1212,985,2315,35,1149,32,4910,4194,27,30, + 31,1172,1197,374,28,3260,6850,6850,444,445, + 446,3469,2048,56,6850,285,6850,4274,4274,6850, + 368,6850,6850,6850,354,2260,356,1692,350,1437, + 6850,439,4274,3467,6850,6850,6850,6850,6850,261, + 378,6850,6850,6850,6850,6850,243,35,2034,424, + 6850,6850,2182,6850,261,6850,6850,599,6850,6850, + 238,248,653,6850,351,3484,356,237,245,246, + 247,249,6850,718,6850,238,248,653,49,378, + 188,6850,237,245,246,247,249,1781,220,1991, + 47,6850,4274,6850,543,447,450,6850,6850,6850, + 6850,2137,239,241,243,3469,4274,581,240,242, + 6850,6850,2512,1578,261,6850,6850,239,241,243, + 3469,6850,580,240,242,2822,6850,6850,261,6850, + 4274,6850,6850,6850,2126,238,248,653,3855,6850, + 6850,6850,237,245,246,247,249,6850,6850,238, + 248,653,4140,6850,6850,6850,237,245,246,247, + 249,2226,6850,6850,2598,6850,4274,6850,222,6850, + 6850,243,35,2034,424,6850,6850,239,241,243, + 3469,1179,251,240,242,5951,4274,3260,261,6850, + 6850,239,241,243,3469,2882,340,240,242,6850, + 4274,6850,368,49,6850,6850,6850,6850,261,238, + 248,653,6850,387,1991,47,237,245,246,247, + 249,6850,4140,2459,35,2034,424,6850,541,828, + 443,6002,56,381,1341,651,384,599,1625,6850, + 6850,6850,56,6850,6850,6850,6850,4274,6850,3280, + 6850,239,241,243,3469,49,535,240,242,378, + 188,6850,6850,6850,6850,6850,1991,47,1394,378, + 6850,444,445,446,3469,538,540,6850,56,6850, + 56,6850,56,599,6850,599,6850,599,6850,6850, + 2540,6850,718,6850,6850,6850,3467,6850,541,6850, + 6850,6850,718,6850,6850,378,188,378,188,378, + 188,6850,3564,1635,220,6850,220,6850,220,6850, + 6850,6850,6850,596,6850,6850,6850,6850,6850,6850, + 6850,6850,6850,6850,6850,6850,6850,6850,2512,6850, + 2512,6850,2512,6850,6850,538,540,6850,6850,6850, + 6850,6850,6850,6850,6850,6850,6850,6850,447,449, + 6850,6850,6850,6850,6850,6850,6850,6850,6850,6850, + 6850,6850,6850,6850,6850,6850,6850,6850,6850,6850, + 6850,6850,3620,6850,6850,627,6850,6850,5928,6850, + 6850,6850,6850,6850,3429,6850,3530,6850,3584,6850, + 0,39,6865,0,39,6864,0,1238,29,0, + 476,1324,0,490,1369,0,38,646,0,38, + 6865,0,38,6864,0,4005,125,0,1,480, + 0,494,1381,0,493,1478,0,956,91,0, + 1238,423,0,35,33,0,32,34,0,39, + 646,0,1,1085,0,1,7156,0,1,7155, + 0,1,7154,0,1,7153,0,1,7152,0, + 1,7151,0,1,7150,0,1,7149,0,1, + 7148,0,1,7147,0,1,7146,0,39,1, + 6865,0,39,1,6864,0,317,430,0,317, + 322,0,7117,274,0,7116,274,0,7223,274, + 0,7222,274,0,7144,274,0,7143,274,0, + 7142,274,0,7141,274,0,7140,274,0,7139, + 274,0,7138,274,0,7137,274,0,7156,274, + 0,7155,274,0,7154,274,0,7153,274,0, + 7152,274,0,7151,274,0,7150,274,0,7149, + 274,0,7148,274,0,7147,274,0,7146,274, + 0,39,6865,274,0,39,6864,274,0,6888, + 274,0,6865,48,0,6864,48,0,43,6886, + 0,43,37,0,4005,127,0,4005,126,0, + 6856,1,0,6855,1,0,3359,270,0,32, + 424,0,29,423,0,1,5715,0,1,5364, + 0,1,5421,0,1,5487,0,1,5510,0, + 1,5540,0,1,5564,0,1,5587,0,1, + 3493,0,1042,1,0,1,2317,0,1,5395, + 0,1,6872,0,1,6871,0,1,6870,0, + 1,6869,0,1,6868,0,1,6867,0,1, + 6866,0,1,638,0,1,641,0,1,652, + 0,1,714,0,1,751,0,39,1,0, + 366,481,0,1,92,0,47,37,0,6888, + 1,0,6865,274,0,6864,274,0,537,3468, + 0,6888,1,262,0,39,1,262,0,262, + 452,0,6865,37,0,6864,37,0,6886,45, + 0,37,45,0,6865,36,0,6864,36,0, + 6865,2,37,0,6864,2,37,0,6860,441, + 0,6859,441,0,1,2380,0,1,646,0, + 262,451,0,366,95,0,35,73,0,2733, + 353,0,1,366,0,3867,312,0,537,6037, + 0,1,262,0,262,253,0,1,743,0, + 1,2001,0,262,252,0,6862,1,0,6858, + 1,0,1,262,3576,0,6859,262,0,3577, + 262,0,6862,419,0,6861,419,0,3622,262, + 0,10,12,0,8,10,12,0,3627,226, + 0,217,5150,0,3631,419,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1112,350 +1385,403 @@ 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,47,0,49, - 50,51,52,53,54,0,56,57,58,59, - 60,61,62,0,64,65,66,67,0,6, - 0,71,0,3,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,0,56,57,58,59, + 0,61,62,63,0,65,66,67,0,69, + 0,1,2,73,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,0,49,50,51,52,53, - 54,69,56,57,58,59,60,61,62,0, - 64,65,66,67,0,92,93,71,4,0, + 44,45,46,47,48,49,50,51,52,53, + 86,87,56,57,58,59,0,61,62,63, + 4,65,66,67,94,69,92,93,0,73, 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, - 0,49,50,51,52,53,54,68,56,57, - 58,59,60,61,62,0,64,65,66,67, - 0,1,2,71,4,0,74,75,76,77, + 48,49,50,51,52,53,0,0,56,57, + 58,59,0,61,62,63,4,65,66,67, + 0,69,0,1,2,73,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,0,49,50,51, - 52,53,54,68,56,57,58,59,60,61, - 62,0,64,65,66,67,0,1,2,0, - 4,10,74,75,76,77,78,79,80,81, + 42,43,44,45,46,47,48,49,50,51, + 52,53,86,87,56,57,58,59,0,61, + 62,63,95,65,66,67,0,69,0,1, + 2,0,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,0,49,50,51,52,53,54,0, - 56,57,58,59,60,61,62,0,64,65, - 66,67,0,6,0,0,87,88,74,75, + 46,47,48,49,50,51,52,53,0,68, + 56,57,58,59,0,61,62,63,0,65, + 66,67,0,69,0,3,0,0,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,63,49, - 50,51,52,53,54,0,56,57,58,59, - 60,61,62,0,64,65,66,67,99,92, - 93,89,9,91,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,86,87,56,57,58,59, + 0,61,62,63,0,65,66,67,94,69, + 86,87,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,0,49,50,51,52,53, - 54,0,56,57,58,59,60,61,62,0, - 64,65,66,67,99,6,0,1,2,0, + 44,45,46,47,48,49,50,51,52,53, + 0,0,56,57,58,59,0,61,62,63, + 0,65,66,67,94,69,92,93,0,0, 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, - 0,49,50,51,52,53,54,68,56,57, - 58,59,60,61,62,0,64,65,66,67, - 5,92,93,0,1,2,74,75,76,77, + 48,49,50,51,52,53,86,87,56,57, + 58,59,0,61,62,63,95,65,66,67, + 94,69,92,93,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,0,49,50,51, - 52,53,54,0,56,57,58,59,60,61, - 62,0,64,65,66,67,0,1,2,8, - 0,5,74,75,76,77,78,79,80,81, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,0,56,57,58,59,0,61, + 62,63,0,65,66,67,0,69,0,1, + 2,5,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,71,49,50,51,52,53,54,69, - 56,57,58,59,60,61,62,0,64,65, - 66,67,0,1,2,0,4,0,74,75, + 46,47,48,49,50,51,52,53,86,87, + 56,57,58,59,0,61,62,63,4,65, + 66,67,0,69,101,102,4,95,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,0,49, - 50,51,52,53,54,68,56,57,58,59, - 60,61,62,0,64,65,66,67,0,1, - 2,0,87,88,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,0,56,57,58,59, + 0,61,62,63,0,65,66,67,0,69, + 0,1,2,0,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,0,49,50,51,52,53, - 54,0,56,57,58,59,60,61,62,0, - 64,65,66,67,0,0,1,2,87,88, + 44,45,46,47,48,49,50,51,52,53, + 86,87,56,57,58,59,0,61,62,63, + 0,65,66,67,4,69,92,93,0,0, 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, - 0,49,50,51,52,53,54,0,56,57, - 58,59,60,61,62,8,64,65,66,67, - 0,1,2,89,0,91,74,75,76,77, + 48,49,50,51,52,53,68,0,56,57, + 58,59,0,61,62,63,9,65,66,67, + 0,69,96,0,1,2,74,75,76,77, 78,79,80,81,82,83,84,85,0,1, - 2,3,4,5,6,7,0,9,10,11, + 2,3,4,5,6,7,8,40,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,0,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,0,49,50,51, - 52,53,54,0,56,57,58,4,60,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,100,118,27,28,29,30, - 31,32,33,34,35,36,0,1,2,40, - 4,5,0,7,0,0,100,48,0,1, - 2,6,4,0,9,56,57,58,59,0, - 61,62,0,0,1,2,22,23,24,0, - 71,72,28,29,30,31,32,33,34,35, - 36,22,23,24,48,86,0,28,29,30, - 31,32,33,34,35,36,48,0,0,0, - 1,2,103,104,105,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, - 0,0,27,28,29,30,31,32,33,34, - 35,36,89,0,91,40,3,48,0,6, - 0,8,9,48,68,0,1,2,96,97, - 5,56,57,58,59,0,61,62,25,26, - 27,0,1,2,0,0,71,72,3,48, - 37,38,8,0,1,2,3,4,5,6, - 7,86,9,96,97,0,0,0,55,3, - 0,1,2,48,4,5,63,7,103,104, - 105,68,69,70,71,72,73,87,88,48, - 0,1,2,3,4,5,6,7,0,9, - 87,88,89,90,91,92,93,94,95,96, - 97,98,99,100,101,70,63,73,48,106, - 107,108,109,110,111,112,113,114,115,116, - 117,118,119,120,0,0,0,3,0,4, - 6,6,8,9,9,0,0,1,2,3, - 4,5,6,7,8,9,89,0,91,25, - 26,27,72,25,26,0,1,2,22,23, - 24,37,38,27,28,29,30,31,32,33, - 34,35,36,0,1,2,3,4,5,55, - 7,8,0,0,1,2,98,63,5,63, - 7,55,68,69,70,71,72,73,63,63, - 27,0,1,2,3,4,5,6,7,73, - 9,87,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,0,0,0,3, - 106,107,108,109,110,111,112,113,114,115, - 116,117,118,119,120,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, - 0,0,27,28,29,30,31,32,33,34, - 35,36,0,1,2,40,4,0,6,0, - 0,9,0,48,0,25,26,0,8,0, - 0,56,57,58,59,8,61,62,8,64, - 0,22,23,24,87,88,71,28,29,30, - 31,32,33,34,35,36,55,27,0,1, - 2,86,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,67,0,27, - 28,29,30,31,32,33,34,35,36,70, - 73,0,40,63,0,1,2,3,4,5, - 48,7,8,25,26,0,0,55,56,57, - 58,59,0,61,62,10,64,0,1,2, - 101,27,5,0,7,0,107,108,109,110, - 111,112,113,114,115,116,117,0,86,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,59,0,27,28,29,30, - 31,32,33,34,35,36,0,1,2,40, - 68,69,6,0,0,1,2,48,4,5, - 0,7,55,68,0,56,57,58,59,0, - 61,62,8,64,98,22,23,24,0,72, - 71,28,29,30,31,32,33,34,35,36, - 55,27,23,24,48,86,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,55,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,0,56,57,58,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,0,1,2,0,4,0,40,0, + 1,2,3,4,5,6,7,8,0,1, + 2,53,0,55,56,57,58,5,0,61, + 62,63,0,1,2,3,4,0,6,71, + 8,73,5,38,7,38,0,0,1,2, + 3,4,5,6,7,8,88,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,0,0,27,28,29,30,31,32,33, - 34,35,36,0,1,2,40,0,0,1, - 2,3,4,5,48,7,0,0,0,3, - 3,0,56,57,58,59,8,61,62,8, - 64,0,1,2,3,4,5,71,7,8, - 0,1,2,0,4,0,6,55,8,9, - 120,48,86,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,0,63, - 27,28,29,30,31,32,33,34,35,36, - 0,73,71,40,63,0,1,2,3,4, - 5,48,7,0,73,60,3,0,90,56, - 57,58,59,73,61,62,0,64,0,0, - 1,2,3,4,71,6,8,0,9,0, - 90,0,1,2,3,4,5,8,7,86, + 24,25,26,27,28,29,30,31,32,33, + 71,0,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,91, + 0,99,100,0,0,40,98,0,0,1, + 2,3,4,5,6,7,8,0,53,0, + 55,56,57,58,0,64,61,62,63,68, + 0,0,0,3,0,5,71,7,73,9, + 6,22,23,24,25,26,27,28,29,30, + 31,32,33,88,0,1,2,3,4,55, + 6,54,8,0,34,35,36,37,60,0, + 40,64,3,70,0,1,2,60,70,114, + 115,116,0,9,54,0,1,2,3,4, + 60,6,0,8,64,64,89,90,68,68, + 70,71,72,73,101,102,103,104,105,106, + 107,108,109,110,111,112,86,87,0,89, + 90,91,92,93,94,95,96,97,98,99, + 100,101,102,103,104,105,106,107,108,109, + 110,111,112,69,120,60,64,117,118,119, + 120,0,34,35,3,0,5,0,7,4, + 9,0,1,2,3,4,9,6,0,8, + 0,0,1,2,3,4,5,0,7,0, + 10,4,5,91,7,34,35,36,37,0, + 98,40,3,22,23,24,25,26,27,28, + 29,30,31,32,33,54,0,1,2,54, + 4,60,0,1,2,64,4,0,6,68, + 8,70,71,72,73,0,69,59,0,1, + 2,60,71,54,6,64,8,86,87,68, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,102,103,104,105,106,107,108, + 109,110,111,112,0,1,2,55,117,118, + 119,120,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,0,0,1,2, + 3,4,40,6,0,8,0,1,2,55, + 4,5,0,7,0,53,0,55,56,57, + 58,0,0,61,62,63,4,65,7,114, + 115,116,0,1,2,73,22,23,24,25, + 26,27,28,29,30,31,32,33,0,53, + 88,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,0,70,0,0,1, + 2,40,4,0,6,91,8,4,66,67, + 0,0,98,91,53,54,55,56,57,58, + 98,0,61,62,63,22,65,101,102,103, + 104,105,106,107,108,109,110,111,112,0, + 1,2,3,4,5,6,7,8,38,88, 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,0,63,27,28,29, - 30,31,32,33,34,35,36,0,1,2, - 40,4,63,6,68,69,9,69,48,0, - 63,73,3,103,104,105,56,57,58,59, - 71,61,62,72,64,0,0,1,2,3, - 4,5,6,7,0,9,0,1,2,3, - 4,5,8,7,0,0,86,0,1,2, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,0,1,2,0,4,5, + 40,7,71,0,1,2,9,4,5,60, + 7,0,0,53,3,55,56,57,58,0, + 113,61,62,63,0,65,0,114,115,116, + 0,1,2,73,22,23,24,25,26,27, + 28,29,30,31,32,33,0,0,88,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,0,1,2,60,4,5,40, + 7,0,1,2,0,4,0,6,4,8, + 54,0,53,7,55,56,57,58,0,0, + 61,62,63,0,65,118,22,0,1,2, + 96,4,73,22,23,24,25,26,27,28, + 29,30,31,32,33,89,90,88,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,55,0,1,2,68,64,40,6, + 71,8,0,1,2,0,0,0,6,0, + 0,53,5,55,56,57,58,0,9,61, + 62,63,0,65,0,3,0,1,2,23, + 24,73,22,23,24,25,26,27,28,29, + 30,31,32,33,0,0,88,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,0,0,27,28,29,30,31,32, - 33,34,35,36,0,1,2,40,4,63, - 6,0,48,9,3,48,70,72,0,63, - 55,67,0,56,57,58,59,9,61,62, - 0,64,0,3,0,0,1,2,8,0, - 1,2,3,4,5,0,7,0,1,2, - 0,1,2,86,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,0, - 48,27,28,29,30,31,32,33,34,35, - 36,69,0,63,40,0,1,2,68,69, - 65,66,48,73,0,0,72,3,0,0, - 56,57,58,59,0,61,62,3,64,0, - 0,1,2,0,4,0,6,8,0,9, - 0,3,0,1,2,3,4,5,6,7, - 86,9,10,11,12,13,14,15,16,17, - 18,19,20,21,0,1,2,25,26,0, - 65,66,8,55,55,37,38,0,0,37, - 38,39,4,41,42,43,44,45,46,47, - 55,49,50,51,52,53,54,0,69,0, - 71,63,60,61,102,90,0,65,66,0, - 1,2,3,4,5,6,7,0,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,67,55,55,25,26,0,1,2,0, - 4,5,3,7,106,68,37,38,39,0, - 41,42,43,44,45,46,47,119,49,50, - 51,52,53,54,0,1,2,68,0,60, - 101,94,95,0,65,66,107,68,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 0,1,2,25,26,0,0,0,0,4, - 3,3,48,0,0,37,38,39,0,41, - 42,43,44,45,46,47,0,49,50,51, - 52,53,54,0,1,2,0,0,60,0, - 4,4,0,1,2,67,0,74,48,71, - 0,1,2,3,4,5,6,7,22,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,0,55,68,25,26,0,1,2, - 0,48,0,70,4,3,68,37,38,39, - 48,41,42,43,44,45,46,47,72,49, - 50,51,52,53,54,0,0,0,0,70, - 60,6,94,95,8,65,66,0,1,2, - 3,4,5,6,7,48,9,10,11,12, - 13,14,15,16,17,18,19,20,21,103, - 104,105,25,26,0,0,0,3,0,0, - 4,0,8,8,37,38,39,8,41,42, - 43,44,45,46,47,0,49,50,51,52, - 53,54,27,0,0,0,27,60,3,73, - 72,0,65,66,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,55,63,0,25, - 26,63,0,0,69,3,8,73,0,68, - 0,37,38,39,4,41,42,43,44,45, - 46,47,0,49,50,51,52,53,54,0, - 0,0,22,69,60,94,95,0,75,10, - 10,67,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,0,0,0,25,26,40, - 40,73,8,0,0,0,0,48,48,37, - 38,39,0,41,42,43,44,45,46,47, - 0,49,50,51,52,53,54,0,0,0, - 0,3,60,5,6,0,69,9,8,67, - 0,0,90,0,4,0,3,0,0,4, - 55,55,0,25,26,0,0,27,55,55, - 55,55,0,0,0,37,38,73,0,41, - 0,3,0,3,39,3,0,0,0,3, - 3,3,70,55,0,0,39,0,3,0, - 3,63,72,65,66,55,68,69,70,70, - 55,0,0,0,0,0,0,55,0,0, - 69,0,0,0,0,87,88,89,70,0, - 92,93,94,95,96,97,98,99,100,101, - 0,69,69,0,106,0,108,109,110,111, - 112,113,114,115,116,117,0,1,2,3, + 23,24,25,26,27,28,29,30,31,32, + 33,72,60,0,60,68,64,40,5,0, + 68,0,66,67,0,86,87,3,54,54, + 53,96,55,56,57,58,99,100,61,62, + 63,0,65,22,23,24,25,26,27,28, + 29,30,31,32,33,0,1,2,3,4, + 5,0,7,89,90,88,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,55,0, - 0,25,26,70,70,40,121,72,72,70, - 72,70,70,37,38,39,102,41,42,43, - 44,45,46,47,0,49,50,51,52,53, - 54,0,1,2,3,4,5,6,7,90, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,0,0,25,26,0,0, - 0,0,102,39,0,102,0,0,37,38, - 39,0,41,42,43,44,45,46,47,0, - 49,50,51,52,53,54,0,0,0,0, - 0,60,0,0,118,0,1,2,3,4, - 5,6,7,0,9,10,11,12,13,14, - 15,16,17,18,19,20,21,0,0,0, - 25,26,0,0,0,0,0,0,0,0, - 0,0,37,38,39,0,41,42,43,44, - 45,46,47,0,49,50,51,52,53,54, - 0,1,2,3,4,5,6,7,63,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,0,0,0,25,26,0,0,0, - 0,0,0,0,0,0,0,37,38,39, - 0,41,42,43,44,45,46,47,0,49, - 50,51,52,53,54,0,0,0,0,0, - 60,0,1,2,3,4,5,6,7,0, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,0,0,25,26,0,0, - 0,0,0,0,0,0,0,0,37,38, - 39,0,41,42,43,44,45,46,47,0, - 49,50,51,52,53,54,0,1,2,3, - 4,5,6,7,0,9,10,11,12,13, - 14,15,16,17,18,19,20,21,0,0, - 0,25,26,0,0,0,0,0,0,0, - 0,0,0,37,38,39,0,41,42,43, - 44,45,46,47,0,49,50,51,52,53, - 54,0,1,2,3,4,5,6,7,0, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,0,0,25,26,0,0, - 0,0,0,0,0,0,0,0,37,38, - 39,0,41,42,43,44,45,46,47,0, - 49,50,51,52,53,54,0,1,2,0, - 4,0,0,0,0,0,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,0,0,0,28,29,30,31,32,33, - 34,35,36,0,0,0,40,0,0,0, - 0,0,0,0,0,0,1,2,0,4, - 0,0,56,57,58,10,11,12,13,14, + 24,25,26,27,28,29,30,31,32,33, + 0,1,2,0,4,64,40,0,0,0, + 0,0,99,100,0,60,9,3,9,53, + 9,55,56,57,58,64,0,61,62,63, + 0,65,22,23,24,25,26,27,28,29, + 30,31,32,33,0,1,2,40,4,40, + 6,40,8,0,88,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, - 0,0,0,28,29,30,31,32,33,34, - 35,36,0,0,0,40,0,1,2,3, - 4,5,6,7,8,9,0,0,0,0, - 0,56,57,58,0,0,0,0,22,23, - 24,0,0,27,28,29,30,31,32,33, - 34,35,36,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,0,0,0, - 28,29,30,31,32,33,34,35,36,63, - 0,0,0,0,0,0,0,0,0,73, + 25,26,27,28,29,30,31,32,33,0, + 1,2,0,4,5,40,7,0,9,55, + 0,1,2,95,7,0,0,54,53,0, + 55,56,57,58,9,9,61,62,63,0, + 65,0,1,2,3,4,5,6,7,8, + 0,10,11,12,13,14,15,16,17,18, + 19,20,21,88,0,1,2,3,4,0, + 6,0,8,9,3,34,35,36,37,38, + 39,72,41,42,43,44,45,46,47,48, + 49,50,51,52,0,1,2,72,72,5, + 59,0,0,62,40,3,97,66,67,0, + 1,2,3,4,5,6,7,8,0,10, + 11,12,13,14,15,16,17,18,19,20, + 21,0,1,2,3,4,97,6,0,8, + 9,70,113,34,35,36,37,38,39,55, + 41,42,43,44,45,46,47,48,49,50, + 51,52,0,1,2,0,0,0,59,0, + 3,40,54,64,9,66,67,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 34,35,3,34,35,0,1,2,0,1, + 2,34,35,36,37,38,39,55,41,42, + 43,44,45,46,47,48,49,50,51,52, + 0,1,2,68,96,0,59,72,0,0, + 0,0,7,0,3,0,69,9,9,9, + 73,0,1,2,3,4,5,6,7,8, + 55,10,11,12,13,14,15,16,17,18, + 19,20,21,0,1,2,0,0,0,6, + 40,0,0,0,3,34,35,36,37,38, + 39,0,41,42,43,44,45,46,47,48, + 49,50,51,52,0,1,2,68,68,64, + 59,73,73,0,71,0,3,66,67,0, + 1,2,3,4,5,6,7,8,55,10, + 11,12,13,14,15,16,17,18,19,20, + 21,60,0,0,0,54,64,64,70,0, + 0,9,9,34,35,36,37,38,39,55, + 41,42,43,44,45,46,47,48,49,50, + 51,52,0,1,2,0,0,0,59,3, + 89,90,0,0,9,66,67,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,60, + 60,69,97,0,70,72,3,0,0,0, + 3,34,35,36,37,38,39,55,41,42, + 43,44,45,46,47,48,49,50,51,52, + 97,64,0,1,2,0,59,0,73,0, + 0,0,70,3,71,0,69,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,60, + 0,1,2,0,0,0,3,0,5,6, + 7,34,35,36,37,38,39,55,41,42, + 43,44,45,46,47,48,49,50,51,52, + 60,0,1,2,0,70,59,34,35,36, + 37,74,39,68,0,0,69,0,3,0, + 3,113,0,9,9,55,0,54,0,54, + 0,54,0,60,0,3,97,64,10,66, + 67,68,68,70,22,23,24,25,26,27, + 28,29,30,31,32,33,55,0,54,86, + 87,0,89,90,91,92,93,94,95,96, + 0,10,99,100,101,60,103,104,105,106, + 107,108,109,110,111,112,72,72,54,61, + 117,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,0,53,0,55,0,0,4, + 0,0,4,3,54,34,35,36,37,38, + 39,10,41,42,43,44,45,46,47,48, + 49,50,51,52,0,1,2,3,4,5, + 6,7,8,0,10,11,12,13,14,15, + 16,17,18,19,20,21,0,54,0,54, + 113,54,54,0,53,9,55,64,34,35, + 36,37,38,39,0,41,42,43,44,45, + 46,47,48,49,50,51,52,0,0,0, + 0,0,89,90,3,0,9,0,55,118, + 66,67,0,1,2,3,4,5,6,7, + 8,0,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,68,0,72,55, + 0,0,0,0,71,0,34,35,36,37, + 38,39,54,41,42,43,44,45,46,47, + 48,49,50,51,52,0,0,68,3,71, + 73,59,0,1,2,3,4,5,6,7, + 8,0,10,11,12,13,14,15,16,17, + 18,19,20,21,54,54,54,54,0,54, + 0,0,0,0,64,71,34,35,36,37, + 38,39,75,41,42,43,44,45,46,47, + 48,49,50,51,52,0,121,0,3,89, + 90,0,60,0,1,2,3,4,5,6, + 7,8,0,10,11,12,13,14,15,16, + 17,18,19,20,21,54,0,0,0,0, + 3,3,3,0,0,64,0,34,35,36, + 37,38,39,70,41,42,43,44,45,46, + 47,48,49,50,51,52,0,0,0,0, + 89,90,59,0,1,2,3,4,5,6, + 7,8,71,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,54,0, + 0,0,0,0,0,0,70,34,35,36, + 37,38,39,70,41,42,43,44,45,46, + 47,48,49,50,51,52,0,0,0,0, + 0,0,59,0,1,2,3,4,5,6, + 7,8,0,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,0,0, + 0,0,0,0,0,0,71,34,35,36, + 37,38,39,71,41,42,43,44,45,46, + 47,48,49,50,51,52,0,0,0,0, + 0,0,59,0,1,2,3,4,5,6, + 7,8,0,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,0,0, + 0,0,0,0,0,70,70,34,35,36, + 37,38,39,70,41,42,43,44,45,46, + 47,48,49,50,51,52,0,1,2,3, + 4,5,6,7,8,0,10,11,12,13, + 14,15,16,17,18,19,20,21,0,0, + 0,0,0,0,0,0,0,0,0,0, + 34,35,36,37,38,39,0,41,42,43, + 44,45,46,47,48,49,50,51,52,0, + 1,2,3,4,5,6,7,8,0,10, + 11,12,13,14,15,16,17,18,19,20, + 21,0,0,0,0,0,0,0,0,0, + 0,0,0,34,35,36,37,38,39,0, + 41,42,43,44,45,46,47,48,49,50, + 51,52,0,1,2,3,4,5,6,7, + 8,0,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,0,0,0, + 0,0,0,0,0,0,34,35,36,37, + 38,39,0,41,42,43,44,45,46,47, + 48,49,50,51,52,0,1,2,3,4, + 5,6,7,8,0,10,11,12,13,14, + 15,16,17,18,19,20,21,0,0,0, + 0,0,0,0,0,0,9,0,0,34, + 35,36,37,38,39,0,41,42,43,44, + 45,46,47,48,49,50,51,52,0,1, + 2,0,4,0,0,0,0,0,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,0,0,0,0,0,0,0,72, + 0,0,0,0,0,0,0,0,0,1, + 2,53,4,0,56,57,58,0,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,2, + 0,53,0,0,56,57,58,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,2,0, + 53,0,0,56,57,58,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 0,0,0,0,1,2,3,4,5,6, + 7,8,9,0,0,0,0,3,0,53, + 0,0,56,57,58,22,23,24,25,26, + 27,28,29,30,31,32,33,0,0,1, + 2,3,4,40,6,0,8,9,3,0, + 36,37,0,0,9,0,0,54,0,0, + 0,0,0,60,0,1,2,3,4,5, + 6,7,8,9,60,72,0,0,0,0, + 0,0,0,0,0,0,22,23,24,25, + 26,27,28,29,30,31,32,33,60,0, + 0,0,0,0,40,60,0,0,0,64, + 72,0,0,68,0,0,0,72,0,0, + 0,0,0,0,60,0,0,0,0,0, + 0,117,0,119,0,0,72,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 0,1,2,3,4,5,0,7,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,22,23,24,25,26,27,28,29, + 30,31,32,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, + 60,0,0,0,64,0,0,0,68,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,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; @@ -1463,346 +1789,401 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5442,5404,5383,5383,5383,5383,5383,5383,5420,5383, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5408,1,1, + 6850,6812,6791,6791,6791,6791,6791,6791,6791,6828, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,333,1,1,1,3507, - 1,5616,2815,114,3684,1,1,5453,398,3776, - 5442,5449,156,4749,1811,4136,3657,2252,3655,4034, - 3220,4134,3475,4111,2601,4110,10,5423,5423,5423, - 5423,5423,5423,5423,5423,5423,5423,5423,5423,5423, - 5423,5423,5423,5423,5423,5423,5423,5423,5423,5423, - 5423,5423,5423,5423,5423,5423,5423,5423,5423,5423, - 5423,5423,5423,5423,5423,5423,5423,5423,5423,5423, - 5423,5423,5423,5423,299,5423,5423,5423,5423,5423, - 5423,1476,5423,5423,5423,5423,5423,5423,5423,387, - 5423,5423,5423,5423,39,3752,3728,5423,5480,5442, - 5423,5423,5423,5423,5423,5423,5423,5423,5423,5423, - 5423,5423,8,5426,5426,5426,5426,5426,5426,5426, - 5426,5426,5426,5426,5426,5426,5426,5426,5426,5426, - 5426,5426,5426,5426,5426,5426,5426,5426,5426,5426, - 5426,5426,5426,5426,5426,5426,5426,5426,5426,5426, - 5426,5426,5426,5426,5426,5426,5426,5426,5426,5426, - 5442,5426,5426,5426,5426,5426,5426,2769,5426,5426, - 5426,5426,5426,5426,5426,5442,5426,5426,5426,5426, - 289,5176,5176,5426,284,5442,5426,5426,5426,5426, - 5426,5426,5426,5426,5426,5426,5426,5426,5442,5404, - 5383,5383,5383,5383,5383,5383,5411,5383,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5408,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5442,1,1,1, - 1,1,1,2777,1,1,1,3507,1,5616, - 2815,303,3684,1,1,5453,5442,5078,5075,120, - 5480,5744,1811,4136,3657,2252,3655,4034,3220,4134, - 3475,4111,2601,4110,5442,5404,5383,5383,5383,5383, - 5383,5383,5411,5383,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5408,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5442,1,1,1,1,1,1,134, - 1,1,1,3507,1,5616,2815,116,3684,1, - 1,5453,110,3776,5442,461,2911,2938,1811,4136, - 3657,2252,3655,4034,3220,4134,3475,4111,2601,4110, - 5442,5404,5383,5383,5383,5383,5383,5383,5411,5383, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5408,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5105,1, - 1,1,1,1,1,135,1,1,1,3507, - 1,5616,2815,130,3684,1,1,5453,2339,3752, - 3728,3984,2404,4007,1811,4136,3657,2252,3655,4034, - 3220,4134,3475,4111,2601,4110,5442,5404,5383,5383, - 5383,5383,5383,5383,5411,5383,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5408,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5442,1,1,1,1,1, - 1,5442,1,1,1,3507,1,5616,2815,115, - 3684,1,1,5453,2339,3776,5442,5456,5457,5442, - 1811,4136,3657,2252,3655,4034,3220,4134,3475,4111, - 2601,4110,5442,5404,5383,5383,5383,5383,5383,5383, - 5411,5383,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5408, + 6816,1,1,1,1,1,1,1,1,1, + 1,1,1,1,120,1,1,1,1,1, + 132,1285,7057,2619,128,3527,1,1,366,6861, + 6850,6864,6865,6857,2797,3619,3083,3231,3082,3575, + 4714,3616,806,3581,4509,3579,10,6831,6831,6831, + 6831,6831,6831,6831,6831,6831,6831,6831,6831,6831, + 6831,6831,6831,6831,6831,6831,6831,6831,6831,6831, + 6831,6831,6831,6831,6831,6831,6831,6831,6831,6831, + 6831,6831,6831,6831,6831,6831,6831,6831,6831,6831, + 6831,6831,6831,6831,6831,6831,6831,6831,6831,6831, + 4346,4413,6831,6831,6831,6831,39,6831,6831,6831, + 6888,6831,6831,6831,1106,6831,3754,3723,431,6831, + 6831,6831,6831,6831,6831,6831,6831,6831,6831,6831, + 6831,6831,8,6834,6834,6834,6834,6834,6834,6834, + 6834,6834,6834,6834,6834,6834,6834,6834,6834,6834, + 6834,6834,6834,6834,6834,6834,6834,6834,6834,6834, + 6834,6834,6834,6834,6834,6834,6834,6834,6834,6834, + 6834,6834,6834,6834,6834,6834,6834,6834,6834,6834, + 6834,6834,6834,6834,6834,6834,124,134,6834,6834, + 6834,6834,6850,6834,6834,6834,815,6834,6834,6834, + 332,6834,6850,6595,6592,6834,6834,6834,6834,6834, + 6834,6834,6834,6834,6834,6834,6834,6834,6850,6812, + 6791,6791,6791,6791,6791,6791,6791,6819,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5442,1,1,1,1,1,1,2806,1,1, - 1,3507,1,5616,2815,5442,3684,1,1,5453, - 2634,3752,3728,5442,5262,5259,1811,4136,3657,2252, - 3655,4034,3220,4134,3475,4111,2601,4110,5442,5404, - 5383,5383,5383,5383,5383,5383,5411,5383,1,1, + 1,1,1,1,1,1,1,1,6816,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5408,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5442,1,1,1, - 1,1,1,5442,1,1,1,3507,1,5616, - 2815,5442,3684,1,1,5453,5442,5456,5457,5450, - 518,2634,1811,4136,3657,2252,3655,4034,3220,4134, - 3475,4111,2601,4110,5442,5404,5383,5383,5383,5383, - 5383,5383,5411,5383,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5408,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5449,1,1,1,1,1,1,894, - 1,1,1,3507,1,5616,2815,5442,3684,1, - 1,5453,5442,5078,5075,124,5480,5442,1811,4136, - 3657,2252,3655,4034,3220,4134,3475,4111,2601,4110, - 5442,5404,5383,5383,5383,5383,5383,5383,5411,5383, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5408,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5442,1, - 1,1,1,1,1,2823,1,1,1,3507, - 1,5616,2815,5442,3684,1,1,5453,48,5262, - 5259,123,2911,2938,1811,4136,3657,2252,3655,4034, - 3220,4134,3475,4111,2601,4110,5442,5404,5383,5383, - 5383,5383,5383,5383,5411,5383,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5408,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5442,1,1,1,1,1, - 1,5442,1,1,1,3507,1,5616,2815,5442, - 3684,1,1,5453,113,400,5456,5457,2911,2938, - 1811,4136,3657,2252,3655,4034,3220,4134,3475,4111, - 2601,4110,5442,4084,1,1,1,1,1,1, - 4104,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5451, + 1,1,4346,4413,1,1,1,1,420,1285, + 7057,2619,1254,3527,1,1,6850,6861,48,6595, + 6592,189,2797,3619,3083,3231,3082,3575,4714,3616, + 806,3581,4509,3579,6850,6812,6791,6791,6791,6791, + 6791,6791,6791,6819,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5442,1,1,1,1,1,1,5442,1,1, - 1,3507,1,5616,2815,5446,3684,1,1,5453, - 36,5336,5333,3984,136,4007,1811,4136,3657,2252, - 3655,4034,3220,4134,3475,4111,2601,4110,39,5078, - 5075,1149,633,3800,3869,4184,137,3892,942,5707, - 5705,5714,5713,5709,5710,5708,5711,5712,5715,5706, - 5702,5781,5782,3846,3823,5442,5696,5703,5699,5675, - 5701,5700,5697,5698,5676,3938,3915,5461,5843,2839, - 799,892,5463,828,4080,880,5442,5464,5462,619, - 5458,5459,5460,5442,1136,5844,5845,2750,1433,5442, - 5314,5314,229,5310,229,229,229,5318,229,1, + 1,1,1,1,6816,1,1,1,1,1, + 1,1,1,1,1,1,1,1,123,1489, + 1,1,1,1,133,1285,7057,2619,6850,3527, + 1,1,6850,6861,122,5741,121,6850,2797,3619, + 3083,3231,3082,3575,4714,3616,806,3581,4509,3579, + 6850,6812,6791,6791,6791,6791,6791,6791,6791,6819, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2291,5445,229,1,1,1, - 1,1,1,1,1,1,5442,5078,5075,1, - 633,5123,5442,4184,224,5442,2291,5307,397,5173, - 5173,1731,284,112,1688,1,1,1,3025,225, - 5857,671,128,299,5456,5457,5702,5781,5782,5442, - 419,229,5696,5703,5699,5675,5701,5700,5697,5698, - 5676,5702,5781,5782,2325,5945,5442,5696,5703,5699, - 5675,5701,5700,5697,5698,5676,284,129,5442,5442, - 8786,8786,5880,5881,5882,5442,5314,5314,229,5310, - 229,229,229,5362,229,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 122,37,229,1,1,1,1,1,1,1, - 1,1,3984,33,4007,1,5117,5478,5442,5117, - 5442,5117,5117,5307,5957,37,5298,5298,2463,2434, - 5298,1,1,1,3025,5442,5857,671,5117,5117, - 5117,43,5268,5268,1,313,418,229,3624,5478, - 5117,5117,160,347,5078,5075,586,633,599,333, - 4184,5945,333,2463,2434,5442,5442,111,5117,2772, - 5442,5078,5075,2791,633,5123,5117,4184,5880,5881, - 5882,5117,5117,5117,5117,5117,5117,2911,2938,5265, - 5442,5166,5162,605,5170,599,5374,4184,132,5374, - 5117,5117,5117,5117,5117,5117,5117,5117,5117,5117, - 5117,5117,5117,5117,5117,1155,1059,160,2538,5117, - 5117,5117,5117,5117,5117,5117,5117,5117,5117,5117, - 5117,5117,5117,5117,5442,39,460,5120,117,5480, - 5120,333,5120,5120,333,350,29,390,390,5289, - 390,390,5289,390,5289,5289,3984,5442,4007,5120, - 5120,5120,2078,3172,3089,293,5456,5457,390,390, - 390,5120,5120,5289,390,390,390,390,390,390, - 390,390,390,1,5166,5162,5353,5170,5359,5120, - 5356,5452,5442,38,5096,5093,2372,5120,5090,5108, - 4184,5081,5120,5120,5120,5120,5120,5120,1059,5289, - 5451,311,5166,5162,605,5170,599,5374,4184,5289, - 5374,5120,5120,5120,5120,5120,5120,5120,5120,5120, - 5120,5120,5120,5120,5120,5120,91,121,5442,5111, - 5120,5120,5120,5120,5120,5120,5120,5120,5120,5120, - 5120,5120,5120,5120,5120,5442,5383,5383,229,5383, - 229,229,229,5386,229,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 119,5442,229,1,1,8867,1,1,1,1, - 1,1,447,1,1,1,1,5442,5102,226, - 5442,5102,5442,5380,5442,3172,3089,5442,5454,138, - 408,1,1,1,3315,5448,5653,2815,5347,3684, - 100,5702,5781,5782,2911,2938,220,5696,5703,5699, - 5675,5701,5700,5697,5698,5676,3555,5350,5442,8718, - 8713,5945,5442,5383,5383,229,5383,229,229,229, - 229,229,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5453,118,229, - 1,1,8867,1,1,1,1,1,1,1949, - 5447,5442,1,4224,1,5166,5162,605,5170,599, - 5380,4184,311,3172,3089,303,133,3422,1,1, - 1,3315,5442,5653,2815,5744,3684,5442,5456,5457, - 1102,311,599,5442,4184,5442,2778,1906,1863,1820, - 1777,1734,1691,1648,1605,1562,1519,29,5945,5442, - 5383,5383,229,5383,229,229,229,5395,229,1, + 6816,1,1,1,1,1,1,1,1,1, + 1,1,1,1,4346,4413,1,1,1,1, + 152,1285,7057,2619,129,3527,1,1,1106,6861, + 4346,4413,4346,4413,2797,3619,3083,3231,3082,3575, + 4714,3616,806,3581,4509,3579,6850,6812,6791,6791, + 6791,6791,6791,6791,6791,6819,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1898,5442,229,1,1,8867, - 1,1,1,1,1,1,37,5298,5298,1, - 4459,3120,333,227,5442,5078,5075,5380,633,599, - 5442,4184,581,5886,5442,1,1,1,3315,338, - 5653,2815,5452,3684,2372,5702,5781,5782,5442,427, - 219,5696,5703,5699,5675,5701,5700,5697,5698,5676, - 3674,5451,5781,5782,5478,5945,5442,5383,5383,229, - 5383,229,229,229,5386,229,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5442,5442,229,1,1,8867,1,1,1, - 1,1,1,37,5298,5298,1,5442,1,5166, - 5162,605,5170,599,5380,4184,349,1,1,1683, - 4830,1,1,1,1,3315,365,5653,2815,5401, - 3684,1,5166,5162,586,5170,599,220,4184,5277, - 1,5304,5304,5442,5301,536,333,4203,365,333, - 5074,2981,5945,5442,5383,5383,229,5383,229,229, - 229,5386,229,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5442,1059, - 229,1,1,8867,1,1,1,1,1,1, - 442,365,5449,1,1059,333,5078,5075,605,633, - 599,5380,4184,320,5280,3942,5371,5442,365,1, - 1,1,3315,365,5653,2815,5442,3684,5442,347, - 39,39,2965,5480,220,333,5448,99,333,8, - 365,1,5166,5162,605,5170,599,5439,4184,5945, - 5442,5383,5383,229,5383,229,229,229,229,229, + 1,1,1,1,1,1,6816,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5442,1059,229,1,1, - 8867,1,1,1,1,1,1,448,39,39, - 1,5480,1059,5292,4251,3120,5292,4871,5380,237, - 1242,5447,5283,5880,5881,5882,1,1,1,3315, - 5439,5653,2815,2078,3684,5442,369,5166,5162,586, - 5170,599,1,4184,1,1,1,5166,5162,586, - 5170,599,5398,4184,47,5442,5945,5442,5383,5383, - 229,5383,229,229,229,229,229,1,1,1, + 140,135,1,1,1,1,153,1285,7057,2619, + 148,3527,1,1,3588,6861,3754,3723,144,6850, + 2797,3619,3083,3231,3082,3575,4714,3616,806,3581, + 4509,3579,6850,6812,6791,6791,6791,6791,6791,6791, + 6791,6819,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5442,5442,229,1,1,8867,1,1, - 1,1,1,1,92,1,1,1,1,1059, - 5295,5442,2243,5295,2967,5380,1286,1992,131,1059, - 4550,5453,364,1,1,1,3315,2404,5653,2815, - 1,3684,5442,2965,5442,5442,5456,5457,343,1, - 5166,5162,5353,5170,5359,5442,5356,5442,8718,8713, - 292,673,673,5945,5442,5383,5383,229,5383,229, - 229,229,229,229,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5442, - 3430,229,1,1,8867,1,1,1,1,1, - 1,3228,5442,1059,1,5442,5262,5259,343,343, - 3961,789,5380,343,5442,360,5846,3623,29,443, - 1,1,1,3315,5442,5653,2815,4103,3684,5442, - 95,39,39,5442,5480,457,5365,5450,75,5365, - 5442,3500,5442,1,1,1,1,1,1,1, - 5945,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5442,5456,5457,1,1,138, - 3961,789,5454,5081,5084,5504,5505,125,399,1, - 1,1,390,1,1,1,1,1,1,1, - 5087,1,1,1,1,1,1,5442,1015,5442, - 5449,2533,1,5982,4152,5801,5442,1,1,1, - 5166,5162,1149,5170,3800,3869,4184,5442,3892,5126, - 5153,5159,5132,5135,5147,5144,5150,5141,5138,5129, - 5156,5453,2675,581,3846,3823,5442,5078,5075,5442, - 633,599,4105,4184,808,5099,3938,3915,5461,5442, - 2839,799,892,5463,828,4080,880,953,5464,5462, - 619,5458,5459,5460,5442,5324,5321,5900,5442,1433, - 1102,2577,2505,1,39,39,2778,519,39,5078, - 5075,1149,633,3800,3869,4184,5436,3892,575,5707, - 5705,5714,5713,5709,5710,5708,5711,5712,5715,5706, - 45,5330,5330,3846,3823,5442,5442,5442,5442,2770, - 4108,4471,5478,372,5442,3938,3915,5461,127,2839, - 799,892,5463,828,4080,880,431,5464,5462,619, - 5458,5459,5460,5442,5343,5339,39,398,1433,370, - 5480,391,5442,5324,5321,5417,5442,3357,5327,5449, - 140,5078,5075,1149,633,3800,3869,4184,1371,3892, - 575,5707,5705,5714,5713,5709,5710,5708,5711,5712, - 5715,5706,5442,2675,4343,3846,3823,37,5298,5298, - 5442,5478,103,1341,2075,4473,5271,3938,3915,5461, - 5478,2839,799,892,5463,828,4080,880,3261,5464, - 5462,619,5458,5459,5460,5442,1,5442,451,1389, - 1433,1774,2577,2505,5448,39,39,1,5166,5162, - 1149,5170,3800,3869,4184,5478,3892,5126,5153,5159, - 5132,5135,5147,5144,5150,5141,5138,5129,5156,5880, - 5881,5882,3846,3823,1,5442,5442,2965,322,1, - 2723,126,5277,5452,3938,3915,5461,5452,2839,799, - 892,5463,828,4080,880,5442,5464,5462,619,5458, - 5459,5460,5451,193,286,5442,5451,1433,3042,5447, - 2570,5442,39,39,39,5078,5075,1149,633,3800, - 3869,4184,5414,3892,575,5707,5705,5714,5713,5709, - 5710,5708,5711,5712,5715,5706,2675,1059,1,3846, - 3823,1059,279,5442,4053,5377,532,5280,5442,5274, - 39,3938,3915,5461,5480,2839,799,892,5463,828, - 4080,880,1,5464,5462,619,5458,5459,5460,1, - 1,5442,2998,5727,1433,2577,2505,292,5430,5389, - 5389,5417,39,5078,5075,1149,633,3800,3869,4184, - 5414,3892,575,5707,5705,5714,5713,5709,5710,5708, - 5711,5712,5715,5706,1,390,5442,3846,3823,5392, - 5392,532,162,5442,398,73,5442,3873,3873,3938, - 3915,5461,294,2839,799,892,5463,828,4080,880, - 5442,5464,5462,619,5458,5459,5460,5442,1,423, - 1,584,1433,5914,5908,5442,8153,5912,190,5417, - 48,429,5803,5442,5457,48,3804,5442,35,5456, - 5114,581,5442,5906,5907,184,5442,190,3422,581, - 5368,3277,452,310,5442,5937,5938,162,5442,5915, - 5442,4528,5442,4762,1094,4805,5442,5442,5442,4823, - 3505,4828,2117,5917,377,5442,3217,5442,4873,5442, - 4530,869,2165,1515,1543,5457,5918,5939,5916,2204, - 5456,5442,5442,511,509,5442,5442,3636,5442,5442, - 4205,5442,513,2,5442,5928,5927,5940,3265,1, - 5909,5910,5933,5934,5931,5932,5911,5913,5935,5936, - 525,3130,4067,524,5941,5442,5921,5922,5923,5919, - 5920,5929,5930,5925,5924,5926,39,5078,5075,1149, - 633,3800,3869,4184,5446,3892,575,5707,5705,5714, - 5713,5709,5710,5708,5711,5712,5715,5706,37,5442, - 5442,3846,3823,4838,4840,4146,5433,3258,3296,3265, - 3334,2035,2618,3938,3915,5461,4152,2839,799,892, - 5463,828,4080,880,1,5464,5462,619,5458,5459, - 5460,39,5078,5075,1149,633,3800,3869,4184,4223, - 3892,575,5707,5705,5714,5713,5709,5710,5708,5711, - 5712,5715,5706,5442,5442,5442,3846,3823,5442,5442, - 5442,5442,1,3672,5442,4152,5442,5442,3938,3915, - 5461,5442,2839,799,892,5463,828,4080,880,5442, - 5464,5462,619,5458,5459,5460,5442,5442,5442,5442, - 5442,1433,5442,5442,5445,39,5078,5075,1149,633, - 3800,3869,4184,5442,3892,575,5707,5705,5714,5713, - 5709,5710,5708,5711,5712,5715,5706,5442,5442,5442, - 3846,3823,5442,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,3938,3915,5461,5442,2839,799,892,5463, - 828,4080,880,5442,5464,5462,619,5458,5459,5460, - 39,5078,5075,1149,633,3800,3869,4184,1050,3892, - 575,5707,5705,5714,5713,5709,5710,5708,5711,5712, - 5715,5706,5442,5442,5442,3846,3823,5442,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,3938,3915,5461, - 5442,2839,799,892,5463,828,4080,880,5442,5464, - 5462,619,5458,5459,5460,5442,5442,5442,5442,5442, - 1433,39,5078,5075,4752,633,3800,3869,4184,5442, - 3892,575,5707,5705,5714,5713,5709,5710,5708,5711, - 5712,5715,5706,5442,5442,5442,3846,3823,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,3938,3915, - 5461,5442,2839,799,892,5463,828,4080,880,5442, - 5464,5462,619,5458,5459,5460,39,5078,5075,1149, - 633,3800,3869,4184,5442,3892,575,5707,5705,5714, - 5713,5709,5710,5708,5711,5712,5715,5706,5442,5442, - 5442,3846,3823,5442,5442,5442,5442,5442,5442,5442, - 5442,5442,5442,3938,3915,5461,5442,2839,799,892, - 5463,828,4080,880,5442,5464,5462,619,5458,5459, - 5460,39,5078,5075,1149,633,3800,3869,4184,5442, - 3892,575,5707,5705,5714,5713,5709,5710,5708,5711, - 5712,5715,5706,5442,5442,5442,3846,3823,5442,5442, - 5442,5442,5442,5442,5442,5442,5442,5442,3938,3915, - 5461,5442,2839,799,892,5463,828,4080,880,5442, - 5464,5462,619,5458,5459,5460,5442,5078,5075,5442, - 5480,5442,5442,5442,5442,5442,802,5707,5705,5714, - 5713,5709,5710,5708,5711,5712,5715,5706,5702,5781, - 5782,5442,5442,5442,5696,5703,5699,5675,5701,5700, - 5697,5698,5676,5442,5442,5442,5843,5442,5442,5442, - 5442,5442,5442,5442,5442,241,5252,5248,5442,5256, - 5442,5442,1136,5844,5845,802,5239,5245,5218,5221, - 5233,5230,5236,5227,5224,5215,5242,5194,5188,5185, - 5442,5442,5442,5212,5191,5203,5182,5197,5200,5209, - 5206,5179,5442,5442,5442,5843,32,391,391,5286, - 391,391,5286,391,5286,5286,5442,5442,5442,5442, - 5442,1136,5844,5845,5442,5442,5442,5442,391,391, - 391,5442,223,5286,391,391,391,391,391,391, - 391,391,391,5707,5705,5714,5713,5709,5710,5708, - 5711,5712,5715,5706,5702,5781,5782,5442,5442,5442, - 5696,5703,5699,5675,5701,5700,5697,5698,5676,5286, - 5442,5442,5442,5442,5442,5442,5442,5442,5442,5286 + 1,1,1,1,1,1,1,1,1,1, + 1,1,6816,1,1,1,1,1,1,1, + 1,1,1,1,1,1,4346,4413,1,1, + 1,1,6850,1285,7057,2619,1254,3527,1,1, + 3588,6861,3825,3785,4346,4413,2797,3619,3083,3231, + 3082,3575,4714,3616,806,3581,4509,3579,6850,6812, + 6791,6791,6791,6791,6791,6791,6791,6819,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,6816,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,143,138,1,1,1,1,6850,1285, + 7057,2619,154,3527,1,1,6850,6861,433,6864, + 6865,2526,2797,3619,3083,3231,3082,3575,4714,3616, + 806,3581,4509,3579,6850,6812,6791,6791,6791,6791, + 6791,6791,6791,6819,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,6816,1,1,1,1,1, + 1,1,1,1,1,1,1,1,4346,4413, + 1,1,1,1,6850,1285,7057,2619,2245,3527, + 1,1,431,6861,3288,4210,424,3533,2797,3619, + 3083,3231,3082,3575,4714,3616,806,3581,4509,3579, + 6850,6812,6791,6791,6791,6791,6791,6791,6791,6819, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 6816,1,1,1,1,1,1,1,1,1, + 1,1,1,1,141,6850,1,1,1,1, + 6850,1285,7057,2619,149,3527,1,1,6850,6861, + 36,6747,6744,6850,2797,3619,3083,3231,3082,3575, + 4714,3616,806,3581,4509,3579,6850,6812,6791,6791, + 6791,6791,6791,6791,6791,6819,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,6816,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 4346,4413,1,1,1,1,136,1285,7057,2619, + 6850,3527,1,1,2092,6861,3825,3785,551,6850, + 2797,3619,3083,3231,3082,3575,4714,3616,806,3581, + 4509,3579,6850,3576,1,1,1,1,1,1, + 1,3577,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,6859,1,1,1,1,1,1,1, + 1,1,1,1,1,1,929,441,1,1, + 1,1,6850,1285,7057,2619,6758,3527,1,1, + 6850,6861,3393,6850,10573,10573,2797,3619,3083,3231, + 3082,3575,4714,3616,806,3581,4509,3579,39,6414, + 6411,3866,1042,5510,5395,5540,2317,6761,1187,7148, + 7146,7155,7154,7150,7151,7149,7152,7153,7156,7147, + 7143,7222,7223,7137,7144,7140,7116,7142,7141,7138, + 7139,7117,5487,5421,5587,5564,6869,5364,6886,641, + 751,6871,652,5715,714,6872,6870,638,6866,6867, + 6868,7284,6850,6850,1320,7285,7286,1439,6850,6725, + 6725,262,6721,262,262,262,262,6729,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,322,6509,6509,6850,317,6850,262,6850, + 6502,6498,2380,6652,6782,646,6782,2317,332,6864, + 6865,1,114,6718,1,1,1,5325,110,2201, + 7298,2340,1,6502,6498,2380,6652,6850,646,262, + 2317,452,1951,2731,1904,3030,256,344,6502,6498, + 2380,6652,6782,646,6782,2317,7386,7148,7146,7155, + 7154,7150,7151,7149,7152,7153,7156,7147,7143,7222, + 7223,7137,7144,7140,7116,7142,7141,7138,7139,7117, + 3033,6850,7321,7322,7323,6850,6725,6725,262,6721, + 262,262,262,262,6770,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5633, + 6850,5301,4301,138,37,262,5656,125,402,6502, + 6498,4180,6652,1,646,1,2317,494,1,257, + 6718,1,1,1,6850,6171,2201,7298,2340,3566, + 33,6850,6850,6453,6850,6453,262,6453,451,6453, + 1481,7143,7222,7223,7137,7144,7140,7116,7142,7141, + 7138,7139,7117,7386,366,6414,6411,2380,1042,6886, + 646,4032,2317,6850,6453,6453,6453,6453,2053,6850, + 6453,6435,3359,2006,6850,6864,6865,6441,1293,7321, + 7322,7323,6850,6862,6453,1,6502,6498,4180,6652, + 6453,646,113,2317,6453,3626,3978,3905,6453,3566, + 6453,6453,6453,6453,3288,4210,1959,1912,1865,1818, + 1771,1724,1677,1630,1583,1536,6453,6453,117,6453, + 6453,6453,6453,6453,6453,6453,6453,6453,6453,6453, + 6453,6453,6453,6453,6453,6453,6453,6453,6453,6453, + 6453,6453,6453,6861,6410,2053,2989,6453,6453,6453, + 6453,6850,4631,4604,6456,432,6456,6850,6456,423, + 6456,1,6502,6498,2380,6652,6862,646,594,2317, + 336,37,6865,6865,6865,6865,6865,39,6865,6850, + 7185,6888,366,5633,366,6456,6456,6456,6456,91, + 5656,6456,6447,6865,6865,6865,6865,6865,6865,6865, + 6865,6865,6865,6865,6865,6456,6850,6414,6411,1238, + 6888,6456,6850,6414,6411,6456,1042,6850,6459,6456, + 2317,6456,6456,6456,6456,475,6861,3570,38,6432, + 6429,6865,3033,2856,6426,6865,2317,6456,6456,6865, + 6456,6456,6456,6456,6456,6456,6456,6456,6456,6456, + 6456,6456,6456,6456,6456,6456,6456,6456,6456,6456, + 6456,6456,6456,6456,43,6601,6601,2644,6456,6456, + 6456,6456,6850,6791,6791,262,6791,262,262,262, + 262,6794,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,9189, + 1,1,1,1,1,1,6850,1,6502,6498, + 6764,6652,262,6767,112,6655,480,1,1,6598, + 1,6438,111,6438,258,1,158,6788,1,1, + 1,130,6850,2590,7094,2619,2670,3527,3641,7321, + 7322,7323,6850,6864,6865,253,7143,7222,7223,7137, + 7144,7140,7116,7142,7141,7138,7139,7117,6850,2537, + 7386,6850,6791,6791,262,6791,262,262,262,262, + 262,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,9189,1, + 1,1,1,1,1,6850,2812,6850,6850,6414, + 6411,262,1042,39,646,5633,2317,6888,5610,1047, + 1,6850,5656,5633,1,3477,6788,1,1,1, + 5656,6850,2590,7094,2619,982,3527,3330,4999,2746, + 2680,2614,2548,2482,2416,2350,2284,2218,2152,380, + 6414,6411,4180,1042,366,646,366,2317,3526,7386, + 6850,6791,6791,262,6791,262,262,262,262,6803, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,9189,1,1, + 1,1,1,1,481,39,39,6850,6888,6700, + 262,6700,2095,92,1,1,6854,1,6703,2053, + 6703,1,259,1,5164,6788,1,1,1,6850, + 3621,2590,7094,2619,137,3527,493,7321,7322,7323, + 326,6864,6865,252,7143,7222,7223,7137,7144,7140, + 7116,7142,7141,7138,7139,7117,145,6850,7386,6850, + 6791,6791,262,6791,262,262,262,262,6794,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,9189,1,1,1, + 1,1,1,95,39,39,6444,6888,6773,262, + 6773,6850,6414,6411,39,1042,131,646,6888,2317, + 4113,260,1,3641,6788,1,1,1,397,6850, + 2590,7094,2619,6850,3527,6853,2667,430,6506,6506, + 3393,317,253,7143,7222,7223,7137,7144,7140,7116, + 7142,7141,7138,7139,7117,4086,4059,7386,6850,6791, + 6791,262,6791,262,262,262,262,6794,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,9189,1,1,1,1, + 1,1,317,6850,6864,6865,3371,3038,262,646, + 2878,2317,6850,6864,6865,156,371,116,1481,6850, + 571,1,5325,6788,1,1,1,319,6856,2590, + 7094,2619,1,3527,383,3859,6850,6595,6592,7222, + 7223,253,7143,7222,7223,7137,7144,7140,7116,7142, + 7141,7138,7139,7117,147,6850,7386,6850,6791,6791, + 262,6791,262,262,262,262,262,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,9189,1,1,1,1,1, + 1,6855,2053,115,2053,7168,576,262,5325,6850, + 576,572,5610,1047,270,4346,4413,6616,4113,4731, + 1,3431,6788,1,1,1,5301,4301,2590,7094, + 2619,6850,3527,7143,7222,7223,7137,7144,7140,7116, + 7142,7141,7138,7139,7117,380,39,39,3859,6888, + 366,6850,366,4086,4059,7386,6850,6791,6791,262, + 6791,262,262,262,262,262,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,9189,1,1,1,1,1,1, + 6850,6414,6411,6850,6888,3062,262,6850,155,1, + 573,1,5301,4301,6850,2053,6860,4458,6860,1, + 223,6788,1,1,1,3085,6850,2590,7094,2619, + 6850,3527,7143,7222,7223,7137,7144,7140,7116,7142, + 7141,7138,7139,7117,6850,6414,6411,6859,1042,6859, + 6459,223,2317,6850,7386,6850,6791,6791,262,6791, + 262,262,262,262,262,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,9189,1,1,1,1,1,1,1, + 6697,6697,6850,6709,366,262,366,150,398,2710, + 6850,10327,10324,3533,3675,1,6850,4978,1,410, + 6788,1,1,1,193,6856,2590,7094,2619,393, + 3527,6850,1,1,1,1,1,1,1,1, + 6850,1,1,1,1,1,1,1,1,1, + 1,1,1,7386,1,6502,6498,6764,6652,6850, + 6767,346,6655,6860,972,1,1,1,1,1, + 1,398,1,1,1,1,1,1,1,1, + 1,1,1,1,37,6706,6706,193,6855,366, + 1,6850,6850,7448,6859,4729,398,1,1,1, + 6502,6498,3493,1042,5510,5395,5540,2317,6850,6462, + 6489,6495,6468,6471,6483,6480,6486,6477,6474,6465, + 6492,1,6502,6498,2380,6652,7242,646,157,2317, + 344,1144,3621,5487,5421,5587,5564,6869,5364,6886, + 641,751,6871,652,5715,714,6872,6870,638,6866, + 6867,6868,37,6706,6706,6850,119,6850,1439,118, + 4779,344,5102,552,6856,39,39,39,6414,6411, + 3866,1042,5510,5395,5540,2317,6844,1085,7148,7146, + 7155,7154,7150,7151,7149,7152,7153,7156,7147,6850, + 4631,4604,4909,4631,4604,6850,6735,6732,6850,10327, + 10324,5487,5421,5587,5564,6869,5364,1719,641,751, + 6871,652,5715,714,6872,6870,638,6866,6867,6868, + 325,892,892,6252,3431,151,1439,6855,6850,6850, + 6850,6850,3675,6850,3867,6850,6825,6858,6858,6860, + 6857,173,6414,6411,3866,1042,5510,5395,5540,2317, + 6886,1085,7148,7146,7155,7154,7150,7151,7149,7152, + 7153,7156,7147,37,6706,6706,6850,6850,405,6706, + 6859,382,6850,6850,1798,5487,5421,5587,5564,6869, + 5364,146,641,751,6871,652,5715,714,6872,6870, + 638,6866,6867,6868,45,6741,6741,1058,5702,7398, + 1439,6857,6857,6850,7287,1,3869,39,39,1, + 6502,6498,3493,1042,5510,5395,5540,2317,1672,6462, + 6489,6495,6468,6471,6483,6480,6486,6477,6474,6465, + 6492,2053,1,1,403,4113,7327,7341,1342,100, + 99,6806,398,5487,5421,5587,5564,6869,5364,6738, + 641,751,6871,652,5715,714,6872,6870,638,6866, + 6867,6868,6850,6754,6750,1,103,6850,1439,4222, + 4086,4059,327,464,6809,39,39,39,6414,6411, + 3866,1042,5510,5395,5540,2317,6822,1085,7148,7146, + 7155,7154,7150,7151,7149,7152,7153,7156,7147,5061, + 2991,6861,7244,6850,1389,398,2733,312,583,355, + 6785,5487,5421,5587,5564,6869,5364,6886,641,751, + 6871,652,5715,714,6872,6870,638,6866,6867,6868, + 398,6022,6850,6735,6732,456,1439,1,6857,1, + 353,6850,3090,6779,2080,325,6825,39,6414,6411, + 3866,1042,5510,5395,5540,2317,6822,1085,7148,7146, + 7155,7154,7150,7151,7149,7152,7153,7156,7147,2053, + 6850,11329,8950,1,462,29,1063,476,7349,7355, + 7353,5487,5421,5587,5564,6869,5364,6886,641,751, + 6871,652,5715,714,6872,6870,638,6866,6867,6868, + 2053,37,6706,6706,490,3189,1439,7347,7348,7378, + 7379,2921,7356,9929,1,1,6825,6850,3859,6850, + 3560,1,574,6856,6610,6886,6850,7358,336,6417, + 6850,6420,6850,728,423,4223,3586,7359,7185,1940, + 1943,7380,2394,7357,7143,7222,7223,7137,7144,7140, + 7116,7142,7141,7138,7139,7117,6886,582,6423,7369, + 7368,1,7374,7375,7381,7372,7373,7352,7354,7376, + 6850,6797,7350,7351,7377,2053,7362,7363,7364,7360, + 7361,7370,7371,7366,7365,7367,6855,6613,6450,2399, + 7382,39,6414,6411,3866,1042,5510,5395,5540,2317, + 6854,1085,7148,7146,7155,7154,7150,7151,7149,7152, + 7153,7156,7147,127,6800,48,3565,6850,48,6865, + 6850,1,6864,4916,1238,5487,5421,5587,5564,6869, + 5364,6797,641,751,6871,652,5715,714,6872,6870, + 638,6866,6867,6868,1,6502,6498,6649,6652,6637, + 6658,6640,6655,47,6462,6489,6495,6468,6471,6483, + 6480,6486,6477,6474,6465,6492,1,4032,485,6865, + 3621,3477,6864,484,6800,590,3565,6604,6634,6631, + 6646,6643,6670,6628,6850,6685,6694,6664,6688,6625, + 6691,6661,6667,6682,6679,6676,6673,8,29,343, + 6850,6850,3978,3905,6288,217,6847,6850,1431,6853, + 6697,6697,39,6414,6411,3866,1042,5510,5395,5540, + 2317,6850,1085,7148,7146,7155,7154,7150,7151,7149, + 7152,7153,7156,7147,6850,6850,2274,226,590,3479, + 126,431,73,6850,2142,6850,5487,5421,5587,5564, + 6869,5364,1238,641,751,6871,652,5715,714,6872, + 6870,638,6866,6867,6868,6850,6850,2182,6290,460, + 6847,1439,39,6414,6411,3866,1042,5510,5395,5540, + 2317,6850,1085,7148,7146,7155,7154,7150,7151,7149, + 7152,7153,7156,7147,4032,1238,6776,2908,6850,3075, + 6850,6850,6850,35,6607,3132,5487,5421,5587,5564, + 6869,5364,6838,641,751,6871,652,5715,714,6872, + 6870,638,6866,6867,6868,6850,6841,6850,4842,3978, + 3905,6850,1517,39,6414,6411,3493,1042,5510,5395, + 5540,2317,6850,1085,7148,7146,7155,7154,7150,7151, + 7149,7152,7153,7156,7147,4113,544,6850,6850,6850, + 6292,808,5095,542,2,4153,6850,5487,5421,5587, + 5564,6869,5364,2802,641,751,6871,652,5715,714, + 6872,6870,638,6866,6867,6868,6850,6850,6850,6850, + 4086,4059,1439,39,6414,6411,3493,1042,5510,5395, + 5540,2317,4778,1085,7148,7146,7155,7154,7150,7151, + 7149,7152,7153,7156,7147,6850,6850,6850,37,6850, + 6850,6850,6850,6850,6850,6850,5740,5487,5421,5587, + 5564,6869,5364,6023,641,751,6871,652,5715,714, + 6872,6870,638,6866,6867,6868,6850,6850,6850,6850, + 6850,6850,1439,39,6414,6411,3866,1042,5510,5395, + 5540,2317,6850,1085,7148,7146,7155,7154,7150,7151, + 7149,7152,7153,7156,7147,6850,6850,6850,6850,6850, + 6850,6850,6850,546,6850,6850,4840,5487,5421,5587, + 5564,6869,5364,4902,641,751,6871,652,5715,714, + 6872,6870,638,6866,6867,6868,6850,6850,6850,6850, + 6850,6850,1439,39,6414,6411,6242,1042,5510,5395, + 5540,2317,6850,1085,7148,7146,7155,7154,7150,7151, + 7149,7152,7153,7156,7147,6850,6850,6850,6850,6850, + 6850,6850,6850,6850,6850,2802,2944,5487,5421,5587, + 5564,6869,5364,904,641,751,6871,652,5715,714, + 6872,6870,638,6866,6867,6868,39,6414,6411,3866, + 1042,5510,5395,5540,2317,6850,1085,7148,7146,7155, + 7154,7150,7151,7149,7152,7153,7156,7147,6850,6850, + 6850,6850,6850,6850,6850,6850,6850,6850,6850,6850, + 5487,5421,5587,5564,6869,5364,6850,641,751,6871, + 652,5715,714,6872,6870,638,6866,6867,6868,39, + 6414,6411,3493,1042,5510,5395,5540,2317,6850,1085, + 7148,7146,7155,7154,7150,7151,7149,7152,7153,7156, + 7147,6850,6850,6850,6850,6850,6850,6850,6850,6850, + 6850,6850,6850,5487,5421,5587,5564,6869,5364,6850, + 641,751,6871,652,5715,714,6872,6870,638,6866, + 6867,6868,39,6414,6411,3493,1042,5510,5395,5540, + 2317,6850,1085,7148,7146,7155,7154,7150,7151,7149, + 7152,7153,7156,7147,6850,6850,6850,6850,6850,6850, + 6850,6850,6850,6850,6850,6850,5487,5421,5587,5564, + 6869,5364,6850,641,751,6871,652,5715,714,6872, + 6870,638,6866,6867,6868,39,6414,6411,3866,1042, + 5510,5395,5540,2317,6850,1085,7148,7146,7155,7154, + 7150,7151,7149,7152,7153,7156,7147,1,6850,6850, + 6850,6850,6850,6850,6850,6850,195,6850,6850,5487, + 5421,5587,5564,6869,5364,6850,641,751,6871,652, + 5715,714,6872,6870,638,6866,6867,6868,6850,6414, + 6411,6850,6888,6850,6850,6850,6850,6850,759,7148, + 7146,7155,7154,7150,7151,7149,7152,7153,7156,7147, + 7143,7222,7223,7137,7144,7140,7116,7142,7141,7138, + 7139,7117,6850,6850,6850,6850,6850,6850,6850,195, + 6850,6850,6850,6850,6850,6850,6850,6850,274,6585, + 6581,7284,6589,6850,1320,7285,7286,6850,759,6572, + 6578,6551,6554,6566,6563,6569,6560,6557,6548,6575, + 6527,6521,6518,6545,6524,6536,6515,6530,6533,6542, + 6539,6512,6850,6850,6850,6850,6850,6850,6850,6850, + 6850,6850,6850,6850,6850,6850,6850,6850,6864,6865, + 6850,7284,6850,6850,1320,7285,7286,1336,7148,7146, + 7155,7154,7150,7151,7149,7152,7153,7156,7147,7143, + 7222,7223,7137,7144,7140,7116,7142,7141,7138,7139, + 7117,6850,6850,6850,6850,6850,6850,6850,6850,6850, + 6850,6850,6850,6850,6850,6850,274,6715,6712,6850, + 7284,6850,6850,1320,7285,7286,1336,6572,6578,6551, + 6554,6566,6563,6569,6560,6557,6548,6575,6527,6521, + 6518,6545,6524,6536,6515,6530,6533,6542,6539,6512, + 6850,6850,6850,29,423,423,6622,423,6622,423, + 6622,423,6622,6850,75,6850,6850,3458,6850,7284, + 6850,6850,1320,7285,7286,423,423,423,423,423, + 423,423,423,423,423,423,423,6850,1,6502, + 6498,4180,6652,6622,646,1,2317,6610,3859,6850, + 6912,6913,6850,6850,376,6850,6850,6417,6850,6850, + 6850,6850,6850,6622,32,424,424,6619,424,6619, + 424,6619,424,6619,3941,6622,6850,6850,6850,6850, + 6850,6850,6850,6850,6850,6850,424,424,424,424, + 424,424,424,424,424,424,424,424,2053,6850, + 6850,6850,6850,6850,6619,2053,6850,6850,6850,376, + 6613,6850,6850,376,6850,6850,6850,376,6850,6850, + 6850,6850,6850,6850,6619,6850,570,6850,6850,6850, + 6850,746,6850,869,6850,6850,6619,7148,7146,7155, + 7154,7150,7151,7149,7152,7153,7156,7147,7143,7222, + 7223,7137,7144,7140,7116,7142,7141,7138,7139,7117, + 37,6864,6864,6864,6864,6864,6850,6864,6850,6850, + 6850,6850,6850,6850,6850,6850,6850,6850,6850,6850, + 6850,6850,6864,6864,6864,6864,6864,6864,6864,6864, + 6864,6864,6864,6864,6850,6850,6850,6850,6850,6850, + 6850,6850,6850,6850,6850,6850,6850,6850,6850,6850, + 6850,6850,6850,6850,6850,6850,6850,6850,6850,6850, + 6864,6850,6850,6850,6864,6850,6850,6850,6864 }; }; public final static char termAction[] = TermAction.termAction; @@ -1810,61 +2191,67 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 117,7,865,1,158,767,767,767,767,1058, - 158,404,404,907,404,245,865,247,866,866, - 866,866,866,866,866,866,866,406,412,417, - 414,421,419,426,424,428,427,429,459,430, - 865,849,947,947,947,947,904,592,9,9, - 401,947,292,204,404,404,9,904,204,779, - 946,1114,1060,995,849,404,406,686,686,592, - 865,866,866,866,866,866,866,866,866,866, - 866,866,866,866,866,866,866,866,866,866, - 865,865,865,865,865,865,865,865,865,865, - 865,865,866,204,204,195,849,747,747,747, - 747,392,204,9,9,1056,984,995,114,995, - 109,995,341,995,979,1058,904,292,292,9, - 767,292,946,865,902,1113,204,901,903,901, - 204,292,414,414,412,412,412,419,419,419, - 419,417,417,424,421,421,427,426,428,1072, - 429,1056,252,70,584,583,540,1002,1002,1058, - 247,158,158,158,158,904,904,747,746,747, - 401,904,508,347,111,391,112,1058,904,904, - 392,747,866,947,410,160,204,1060,904,904, - 903,1114,865,195,292,445,204,72,74,904, - 1114,865,865,865,865,158,158,849,509,399, - 397,347,904,643,454,641,392,114,511,904, - 392,904,204,410,1056,1113,1060,904,902,204, - 588,576,587,74,392,902,204,204,204,204, - 592,592,509,397,514,904,347,1072,112,767, - 394,61,1062,347,643,642,643,643,392,511, - 511,904,904,410,411,410,865,160,66,406, - 1060,530,865,585,585,517,517,904,68,1056, - 693,204,904,204,204,397,397,1114,114,114, - 747,767,901,636,1064,898,158,643,643,643, - 643,904,511,513,755,513,410,592,866,292, - 66,530,865,865,74,904,1114,204,72,576, - 530,1037,397,396,902,647,114,296,363,902, - 643,643,898,450,866,1072,525,760,904,1056, - 643,643,726,513,514,866,904,411,204,292, - 741,74,530,397,451,647,647,634,1074,500, - 158,112,333,363,902,643,114,1058,1064,866, - 866,1113,898,771,974,727,904,514,741,204, - 741,514,647,647,295,500,634,775,1058,746, - 767,749,749,451,114,829,771,904,158,726, - 904,1058,1058,904,158,734,741,514,296,647, - 451,524,450,204,1058,904,363,296,363,745, - 745,769,830,1058,904,592,904,904,904,75, - 734,647,865,208,898,451,904,904,363,947, - 947,769,829,1072,866,1072,451,828,158,158, - 158,830,158,904,467,451,451,904,114,204, - 904,904,203,736,514,204,514,114,904,451, - 746,821,158,821,830,1072,830,849,849,847, - 828,849,451,451,528,827,947,736,514,208, - 451,107,693,830,204,898,204,847,500,158, - 204,769,208,749,204,204,1050,830,528,830, - 451,500,865,830,827,513,745,114,114,1052, - 865,828,592,451,204,449,207,901,830,204, - 451,449,449,830 + 904,7,343,1,945,837,837,837,837,510, + 945,522,522,442,522,105,343,107,344,344, + 344,344,344,344,344,344,344,524,530,535, + 532,539,537,544,542,546,545,547,198,548, + 343,327,147,147,147,147,382,742,120,120, + 519,147,431,53,522,522,120,382,53,947, + 146,1124,512,1005,327,522,524,672,672,742, + 343,344,344,344,344,344,344,344,344,344, + 344,344,344,344,344,344,344,344,344,344, + 343,343,343,343,343,343,343,343,343,343, + 343,343,344,53,53,44,327,1070,1070,1070, + 1070,1126,53,120,120,508,994,1005,117,1005, + 112,1005,179,1005,989,510,382,431,431,120, + 837,431,146,343,380,1123,53,379,381,379, + 53,431,532,532,530,530,530,537,537,537, + 537,535,535,542,539,539,545,544,546,1082, + 547,508,391,865,855,854,684,1012,1012,510, + 107,945,945,945,945,382,382,1070,148,504, + 343,1047,1045,1052,1050,1054,1053,1055,1056,1069, + 1070,519,382,247,250,114,674,115,510,382, + 382,1126,1070,344,147,528,9,53,512,382, + 382,381,1124,343,44,431,563,53,867,869, + 382,1124,343,343,343,343,945,945,481,492, + 492,492,492,476,510,737,344,344,344,344, + 344,344,344,344,344,343,343,343,343,343, + 343,343,343,343,343,343,343,344,327,248, + 517,515,250,382,788,62,786,1126,117,385, + 382,1126,382,53,528,508,1123,512,382,380, + 53,859,847,858,869,1126,380,53,53,53, + 53,742,742,382,344,1045,1045,1045,1050,1047, + 1047,1053,1052,1054,1082,1055,248,515,388,382, + 250,1082,115,837,1128,626,1072,250,788,787, + 788,788,1126,385,385,382,382,528,529,528, + 343,9,631,524,512,572,343,856,856,185, + 185,382,863,508,792,53,382,53,53,1126, + 679,343,515,515,1124,117,117,1070,837,379, + 582,1074,376,945,788,788,788,788,382,385, + 387,825,387,528,742,344,431,631,572,343, + 343,869,382,1124,53,867,847,572,695,382, + 515,514,380,633,117,588,266,380,788,788, + 376,568,344,1082,193,830,382,508,788,788, + 434,387,388,344,382,529,53,431,727,869, + 572,515,569,633,633,784,1084,239,945,115, + 625,266,380,788,117,510,1074,344,344,1123, + 376,839,294,435,382,388,727,53,727,388, + 633,633,587,239,784,843,510,1069,837,56, + 56,569,117,307,839,382,945,434,382,510, + 510,382,945,720,727,388,588,633,569,192, + 568,53,510,382,266,588,266,1068,1068,735, + 308,510,382,742,382,382,382,870,720,633, + 343,68,376,569,382,382,266,147,147,735, + 307,1082,344,1082,569,306,945,945,945,308, + 945,382,206,569,569,382,117,53,382,382, + 52,722,388,53,388,117,382,569,1069,299, + 945,299,308,1082,308,327,327,325,306,327, + 569,569,733,305,147,722,388,68,569,177, + 792,308,53,376,53,325,239,945,53,735, + 68,56,53,53,708,308,733,308,569,239, + 343,308,305,387,1068,117,117,979,343,306, + 742,569,53,567,67,379,308,53,569,567, + 567,308 }; }; public final static char asb[] = Asb.asb; @@ -1872,118 +2259,119 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 8,72,118,73,27,69,120,0,28,11, - 12,40,23,42,65,13,43,56,29,30, - 44,14,31,32,15,16,33,66,34,45, - 17,18,46,35,47,57,49,60,50,36, - 51,58,19,22,20,24,21,52,53,54, - 39,3,37,38,9,6,25,26,41,68, - 7,1,2,4,10,5,0,5,7,3, - 63,6,9,90,28,11,12,23,13,56, - 29,30,14,31,32,15,16,33,34,17, - 18,35,57,36,10,58,19,22,20,24, - 21,1,2,4,73,8,40,0,48,4, - 72,1,2,67,8,0,11,12,42,65, - 13,43,44,14,15,16,66,7,45,17, - 18,46,47,49,60,50,51,10,19,20, - 21,52,53,54,39,1,2,37,38,9, - 6,25,26,5,41,4,61,3,0,91, - 89,25,26,92,93,87,88,55,94,95, - 96,97,98,99,100,101,107,72,90,70, - 108,109,110,111,112,113,114,115,116,117, - 118,71,27,120,68,1,2,9,6,4, - 3,63,69,73,8,0,71,60,37,38, - 9,6,25,26,41,46,3,4,52,53, - 54,39,50,44,49,12,21,11,17,15, - 16,18,19,14,13,20,10,43,47,45, - 42,51,67,8,7,5,1,2,66,65, - 0,65,66,10,43,47,45,42,51,12, - 21,11,17,15,16,18,19,14,13,20, - 52,53,54,39,50,44,49,5,7,4, - 3,37,38,9,6,25,26,41,46,1, - 2,118,8,0,67,40,23,13,56,29, - 14,31,32,15,16,33,34,17,18,35, - 57,36,58,19,22,20,24,21,12,11, - 28,8,3,9,6,27,62,64,86,30, - 61,48,7,1,2,5,4,10,59,0, - 4,8,67,1,2,0,86,59,7,103, - 104,105,62,8,3,9,6,5,72,71, - 27,61,28,11,12,40,23,13,56,29, - 30,14,31,32,15,16,33,34,17,18, - 35,57,36,10,58,19,22,20,24,21, - 4,1,2,48,0,60,23,24,7,5, - 1,2,4,74,67,119,106,37,38,63, - 3,91,89,6,92,93,25,26,88,87, - 55,94,95,96,97,9,98,99,100,68, - 90,73,120,70,108,109,110,111,112,113, - 114,115,116,117,72,118,101,107,71,69, - 27,8,0,4,8,72,67,0,68,72, - 90,69,118,73,71,120,11,12,42,65, - 13,43,44,14,15,16,66,45,17,18, - 46,47,49,60,50,51,10,19,20,21, - 52,53,54,39,37,38,25,26,41,8, - 27,5,7,1,2,4,3,9,6,0, - 1,2,69,71,8,0,74,68,72,90, - 73,67,63,3,8,69,27,70,0,23, - 60,24,8,68,90,70,69,73,0,28, - 11,12,23,13,29,30,14,31,32,15, - 16,33,7,34,17,18,35,36,19,22, - 20,24,21,1,2,8,63,9,6,5, - 4,73,27,3,0,9,6,7,5,4, - 1,2,3,63,68,70,69,8,73,90, - 0,8,73,11,12,42,65,13,43,44, - 14,15,16,66,7,45,17,18,46,47, - 49,60,50,51,10,19,20,21,52,53, - 54,1,2,3,37,38,9,6,25,26, - 5,41,4,39,0,8,72,67,74,0, - 4,55,8,72,67,0,64,28,11,12, - 40,23,13,56,29,86,30,14,31,32, - 15,16,33,59,34,17,18,35,57,36, - 10,58,19,62,22,20,24,21,8,3, - 9,6,71,27,61,7,4,48,5,1, - 2,0,28,11,12,40,23,13,56,29, - 30,14,31,32,15,16,33,34,17,18, - 35,57,36,10,58,19,22,20,24,21, - 1,2,4,90,0,22,1,2,4,103, - 104,105,0,23,24,74,3,72,27,67, - 60,8,90,73,70,69,68,0,68,70, - 69,1,2,0,8,69,71,70,0,72, - 8,63,3,70,69,27,55,0,102,0, - 8,67,69,0,8,67,70,0,65,66, - 37,38,9,6,25,26,5,41,46,3, - 4,7,52,53,54,39,50,44,49,12, - 21,11,17,15,16,18,19,14,13,20, - 10,43,47,45,42,51,63,1,2,0, - 86,103,104,105,48,72,102,121,71,61, - 74,62,59,64,76,78,84,82,75,80, - 81,83,85,67,77,79,27,8,28,40, - 23,56,29,30,31,32,33,34,35,57, - 36,58,22,24,60,65,66,10,43,47, - 45,42,51,12,21,11,17,15,16,18, - 19,14,13,20,52,53,54,39,50,44, - 49,37,38,25,26,41,46,9,6,3, - 4,7,5,1,2,0,66,65,25,26, - 6,92,93,98,9,99,5,41,70,55, - 68,111,112,108,109,110,116,115,117,88, - 87,113,114,96,97,94,95,100,101,37, - 38,69,89,106,63,3,28,11,12,40, - 23,13,56,29,30,14,31,32,15,16, - 33,34,17,18,35,57,36,10,58,19, - 20,24,21,1,2,4,22,0,10,56, - 40,57,58,12,21,11,17,15,16,18, - 19,14,13,20,74,72,90,118,71,67, - 120,119,91,106,89,37,38,25,26,92, - 93,87,88,55,68,94,95,96,97,98, - 99,100,101,107,70,108,109,110,111,112, - 113,114,115,116,117,69,28,23,29,30, - 31,32,33,34,35,36,22,24,27,8, - 73,3,63,7,5,9,6,1,2,4, - 0,27,8,3,7,5,9,6,4,1, - 2,72,0,40,23,13,56,29,14,31, - 32,15,16,33,34,17,18,35,57,36, - 10,58,19,22,20,24,21,12,11,28, - 8,3,9,27,62,59,64,86,30,61, - 55,4,6,7,1,2,5,48,0 + 9,71,118,72,40,68,120,0,98,91, + 34,35,99,100,86,87,54,89,90,92, + 93,94,95,96,101,102,71,97,70,103, + 104,105,106,107,108,109,110,111,112,118, + 73,40,120,64,1,2,7,5,4,3, + 60,68,72,9,0,64,70,68,1,2, + 0,4,9,71,69,0,73,59,36,37, + 7,5,34,35,39,45,3,4,50,51, + 52,38,48,43,47,12,21,11,17,15, + 16,18,19,14,13,20,10,42,46,44, + 41,49,69,9,8,6,1,2,67,66, + 0,55,4,71,1,2,69,9,0,41, + 66,42,43,67,8,44,45,46,47,59, + 48,49,50,51,52,38,36,37,7,5, + 34,35,6,39,64,3,4,10,1,2, + 56,57,58,12,21,11,17,15,16,18, + 19,14,13,20,25,31,32,27,30,29, + 22,26,23,24,28,33,53,0,4,9, + 69,1,2,0,74,64,71,97,72,69, + 60,3,9,68,40,70,0,64,71,97, + 68,118,72,73,120,11,12,41,66,13, + 42,43,14,15,16,67,44,17,18,45, + 46,47,59,48,49,10,19,20,21,50, + 51,52,38,36,37,34,35,39,9,40, + 6,8,1,2,4,3,7,5,0,88, + 61,8,114,115,116,63,9,3,7,5, + 6,71,73,40,62,25,11,12,53,23, + 13,56,26,27,14,28,29,15,16,30, + 31,17,18,32,57,55,33,10,58,19, + 20,24,21,1,2,4,22,0,88,114, + 115,116,55,71,113,121,73,62,74,63, + 61,65,76,78,84,82,75,80,81,83, + 85,69,77,79,40,9,25,53,23,56, + 26,27,28,29,30,31,32,57,33,58, + 22,24,59,66,67,10,42,46,44,41, + 49,12,21,11,17,15,16,18,19,14, + 13,20,50,51,52,38,48,43,47,36, + 37,34,35,39,45,7,5,3,4,8, + 6,1,2,0,1,2,68,73,9,0, + 66,67,10,42,46,44,41,49,12,21, + 11,17,15,16,18,19,14,13,20,50, + 51,52,38,48,43,47,6,8,4,3, + 36,37,7,5,34,35,39,45,1,2, + 118,9,0,22,1,2,4,114,115,116, + 0,67,66,34,35,99,100,94,95,6, + 39,70,54,106,107,103,104,105,111,110, + 112,87,86,108,109,92,93,89,90,96, + 101,36,37,91,117,10,56,53,57,58, + 12,21,11,17,15,16,18,19,14,13, + 20,25,31,32,27,30,29,22,26,23, + 24,28,33,64,68,3,60,7,5,1, + 2,4,0,59,23,24,8,6,1,2, + 4,74,69,119,117,36,37,60,3,98, + 91,5,99,100,34,35,87,86,54,89, + 90,92,93,7,94,95,96,64,97,72, + 120,70,103,104,105,106,107,108,109,110, + 111,112,71,118,101,102,73,68,40,9, + 0,23,59,24,9,64,97,70,68,72, + 0,9,71,69,74,0,69,53,23,13, + 56,26,14,28,29,15,16,30,31,17, + 18,32,57,33,58,19,22,20,24,21, + 12,11,25,9,3,7,5,40,63,65, + 88,27,62,55,61,8,1,2,4,10, + 6,0,65,25,11,12,53,23,13,56, + 26,88,27,14,28,29,15,16,30,61, + 31,17,18,32,57,33,10,58,19,63, + 22,20,24,21,9,3,7,5,73,40, + 62,8,6,55,1,2,4,0,72,9, + 87,86,0,11,12,13,14,15,16,17, + 18,19,20,21,25,23,26,27,28,29, + 30,31,32,33,22,24,40,9,72,8, + 1,2,60,3,7,5,6,4,0,23, + 24,74,3,71,40,69,59,9,64,97, + 68,72,70,0,113,0,54,64,89,90, + 0,9,72,11,12,41,66,13,42,43, + 14,15,16,67,8,44,17,18,45,46, + 47,59,48,49,10,19,20,21,50,51, + 52,1,2,3,36,37,7,5,34,35, + 6,39,4,38,0,4,54,9,71,69, + 0,25,11,12,53,23,13,56,26,27, + 14,28,29,15,16,30,31,17,18,32, + 57,33,10,58,19,22,20,24,21,1, + 2,4,97,0,9,68,73,70,0,71, + 9,60,3,70,68,40,54,0,9,69, + 68,0,9,69,70,0,7,5,8,6, + 4,1,2,3,60,64,70,68,9,72, + 97,0,6,8,3,60,5,7,97,25, + 11,12,53,23,13,56,26,27,14,28, + 29,15,16,30,31,17,18,32,57,33, + 10,58,19,22,20,24,21,1,2,4, + 72,9,0,11,12,41,66,13,42,43, + 14,15,16,67,8,44,17,18,45,46, + 47,59,48,49,10,19,20,21,50,51, + 52,38,1,2,36,37,7,5,34,35, + 6,39,4,62,3,0,66,67,36,37, + 34,35,39,45,50,51,52,38,48,43, + 47,12,21,11,17,15,16,18,19,14, + 13,20,10,42,46,44,41,49,7,5, + 3,60,8,6,4,1,2,0,10,56, + 53,57,58,12,21,11,17,15,16,18, + 19,14,13,20,74,71,97,118,73,69, + 120,8,31,32,33,22,24,1,2,30, + 29,28,27,26,6,4,23,25,119,98, + 117,91,36,37,34,35,99,100,9,60, + 3,5,72,40,87,86,54,89,90,92, + 93,7,94,95,96,101,102,103,104,105, + 106,107,108,109,110,111,112,70,68,64, + 0,40,9,3,8,6,7,5,4,1, + 2,71,0,53,23,13,56,26,14,28, + 29,15,16,30,31,17,18,32,57,33, + 10,58,19,22,20,24,21,12,11,25, + 9,3,7,40,63,61,65,88,27,62, + 54,4,5,8,6,1,2,55,0 }; }; public final static byte asr[] = Asr.asr; @@ -1991,61 +2379,67 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 31,12,71,12,12,12,12,12,12,75, - 12,12,12,227,12,171,141,91,71,71, - 213,71,71,71,71,71,71,12,12,12, - 12,12,12,12,12,12,12,12,71,12, - 71,277,41,41,41,41,91,132,23,23, - 65,5,82,283,12,12,23,217,283,71, - 48,202,12,12,277,12,12,50,50,132, - 141,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71, - 71,71,71,71,71,71,71,71,71,71, - 71,141,71,283,283,145,1,12,12,12, - 12,125,283,36,36,121,244,245,154,245, - 28,245,84,245,238,10,91,82,82,36, - 12,82,41,186,171,128,283,170,91,170, - 283,82,12,12,12,12,12,12,12,12, + 184,12,69,12,12,12,12,12,12,73, + 12,12,12,124,12,216,157,28,69,69, + 245,69,69,69,69,69,69,12,12,12, + 12,12,12,12,12,12,12,12,69,12, + 69,257,292,292,292,292,28,149,173,173, + 25,5,104,236,12,12,173,249,236,69, + 64,18,12,12,257,12,12,41,41,149, + 157,69,69,69,69,69,69,69,69,69, + 69,69,69,69,69,69,69,69,69,69, + 69,69,69,69,69,69,69,69,69,69, + 69,157,69,236,236,161,1,12,12,12, + 12,77,236,31,31,180,275,276,204,276, + 80,276,83,276,269,10,28,104,104,31, + 12,104,292,57,216,47,236,215,28,215, + 236,104,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,121,77,144,63,63,12,12,12,10, - 91,12,12,12,12,190,11,12,12,12, - 161,91,12,23,189,75,25,75,91,11, - 12,12,71,41,23,58,283,12,11,91, - 135,202,71,159,82,12,283,267,23,91, - 202,141,141,141,141,12,12,36,123,123, - 123,260,190,56,56,12,210,154,23,210, - 201,190,283,46,161,128,12,217,190,283, - 12,16,12,270,200,190,283,283,283,283, - 132,132,12,23,205,91,114,12,156,12, - 12,34,247,260,56,56,23,23,201,23, - 218,11,190,23,44,12,141,161,136,12, - 12,23,71,12,12,63,63,91,15,121, - 270,283,190,283,283,123,87,202,154,182, - 12,12,75,23,116,18,12,23,23,106, - 106,190,218,104,12,12,46,132,71,82, - 136,87,71,71,23,11,202,283,267,165, - 23,12,23,87,171,23,154,255,23,210, - 23,97,167,114,71,12,102,12,91,121, - 106,106,177,104,205,71,218,44,283,82, - 23,270,87,87,114,222,23,12,255,248, - 12,181,34,270,171,97,94,108,18,71, - 71,207,167,12,75,89,210,205,61,283, - 23,205,255,222,153,116,12,12,75,12, - 12,198,198,114,94,204,12,210,12,231, - 210,75,75,11,12,23,61,205,255,23, - 114,184,12,283,75,210,270,255,23,12, - 12,23,138,108,11,132,11,210,210,281, - 87,222,186,69,18,114,210,157,270,41, - 41,175,149,12,71,12,114,12,12,12, - 12,150,12,218,112,114,114,218,99,283, - 11,11,283,23,205,283,23,154,157,114, - 12,220,12,12,150,12,150,285,285,193, - 12,285,114,114,12,23,41,61,205,23, - 114,12,41,150,283,18,283,273,23,12, - 283,175,69,198,283,283,23,150,12,150, - 114,18,141,150,220,205,12,99,99,16, - 71,12,235,114,283,13,68,170,150,283, - 114,13,12,150 + 12,180,99,160,20,20,12,12,12,10, + 28,12,12,12,12,54,11,12,238,161, + 152,12,12,12,12,12,12,12,12,12, + 12,297,28,12,173,53,73,22,73,28, + 11,12,12,69,292,173,13,236,12,11, + 28,220,18,69,295,104,12,236,193,173, + 28,18,157,157,157,157,12,12,275,276, + 276,276,276,261,10,12,69,69,69,69, + 69,69,69,69,69,69,69,69,69,69, + 69,69,69,69,69,69,157,69,31,182, + 182,182,301,54,51,51,12,223,204,173, + 223,17,54,236,62,297,47,12,249,54, + 236,12,166,12,196,16,54,236,236,236, + 236,149,149,28,69,12,12,12,12,12, + 12,12,12,12,12,12,12,173,142,28, + 208,12,118,12,12,128,278,301,51,51, + 173,173,17,173,250,11,54,173,110,12, + 157,297,221,12,12,173,69,12,12,20, + 20,28,165,180,196,236,54,236,236,17, + 236,69,182,112,18,204,139,12,12,73, + 173,175,168,12,173,173,75,75,54,250, + 93,12,12,62,149,69,104,221,112,69, + 69,173,11,18,236,193,210,173,12,54, + 173,112,216,173,204,286,173,223,173,95, + 212,208,69,12,134,12,28,180,75,75, + 106,93,142,69,250,110,236,104,173,196, + 112,112,208,252,173,12,286,279,12,138, + 128,196,216,95,121,114,168,69,69,86, + 212,12,73,60,223,142,97,236,173,142, + 286,252,203,175,12,12,73,12,12,39, + 39,208,121,141,12,223,12,130,223,73, + 73,11,12,173,97,142,286,173,208,91, + 12,236,73,223,196,286,173,12,12,173, + 187,114,11,149,11,223,223,234,112,252, + 57,67,168,208,223,119,196,292,292,136, + 199,12,69,12,208,12,12,12,12,200, + 12,250,206,208,208,250,146,236,11,11, + 236,173,142,236,173,204,119,208,12,89, + 12,12,200,12,200,308,308,226,12,308, + 208,208,12,173,292,97,142,173,208,12, + 292,200,236,168,236,291,173,12,236,136, + 67,39,236,236,173,200,12,200,208,168, + 157,200,89,142,12,146,146,166,69,12, + 231,208,236,144,66,215,200,236,208,144, + 12,200 }; }; public final static char nasb[] = Nasb.nasb; @@ -2053,35 +2447,38 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 3,13,10,9,153,151,120,150,149,5, - 2,0,164,0,34,94,93,65,5,2, - 9,10,4,0,43,1,0,154,190,0, - 4,176,0,158,0,5,10,9,2,13, - 4,46,0,142,0,144,0,177,0,5, - 2,9,10,140,0,108,0,4,179,0, - 126,0,76,0,4,197,0,68,130,43, - 10,9,2,13,5,0,13,2,9,10, - 5,82,0,154,185,0,63,0,195,0, - 2,45,0,43,162,0,161,0,43,56, - 0,193,0,155,0,109,0,174,5,173, - 0,4,40,39,0,4,10,9,2,65, - 5,89,50,0,137,66,0,66,139,138, - 0,4,96,0,2,114,0,49,43,181, - 4,40,0,34,93,94,4,0,68,40, - 49,69,4,43,0,122,103,0,94,93, - 50,5,59,0,94,93,50,65,59,5, - 10,9,2,0,163,0,5,101,194,0, - 1,122,0,186,0,4,30,0,45,2, - 3,0,40,4,24,183,0,107,0,137, - 2,66,0,4,68,0,66,50,0,2, - 57,0,5,10,9,13,3,1,0,112, - 0,115,4,49,81,0,4,46,198,0, - 5,101,170,0,4,180,0,2,5,120, - 116,117,118,13,86,0,39,5,2,9, - 10,4,160,0,4,49,81,83,0,4, - 49,81,101,47,5,0,50,5,89,24, - 4,0,46,4,182,0,4,46,40,0, - 46,4,34,0,4,46,102,0 + 3,13,10,9,137,136,113,135,134,4, + 2,0,5,194,0,154,2,75,0,79, + 0,42,1,0,5,212,0,2,44,0, + 4,10,9,2,13,127,5,0,121,0, + 4,2,9,10,157,0,75,156,155,0, + 122,0,44,2,3,0,5,28,0,210, + 0,161,0,192,0,80,148,42,10,9, + 2,13,4,0,123,0,154,75,0,166, + 205,0,166,200,0,75,53,0,129,0, + 201,0,167,0,173,0,144,0,13,2, + 9,10,4,94,0,4,115,209,0,159, + 0,51,0,186,4,185,0,140,117,0, + 42,174,0,5,60,213,0,170,0,4, + 115,182,0,208,0,175,0,1,140,0, + 5,80,0,176,0,42,66,0,5,105, + 0,13,2,9,10,4,5,36,0,31, + 100,101,5,0,31,101,100,77,4,2, + 9,10,5,0,5,10,9,2,77,4, + 98,53,0,5,191,0,5,50,42,36, + 196,0,53,4,98,27,5,0,80,36, + 50,82,5,42,0,5,36,39,0,101, + 100,53,77,68,4,10,9,2,0,2, + 131,0,2,67,0,36,5,27,198,0, + 5,195,0,60,5,31,0,137,214,136, + 113,135,134,0,4,10,9,13,3,1, + 0,132,5,50,93,0,5,60,36,0, + 113,69,13,110,111,112,190,0,2,4, + 113,110,111,112,13,69,0,39,4,2, + 9,10,5,172,0,5,50,93,95,0, + 197,5,60,0,101,100,53,4,68,0, + 5,50,93,115,48,4,0,5,60,116, + 0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2089,18 +2486,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, - 113,114,2,31,13,10,79,115,9,100, + 113,114,2,31,10,13,9,79,115,100, 48,52,60,68,74,75,86,87,102,105, - 107,104,54,106,11,12,120,47,64,66, - 70,73,76,83,89,98,7,8,112,53, - 14,55,61,67,84,88,90,93,94,97, - 99,109,110,111,19,63,91,101,77,95, - 122,103,1,46,58,78,121,20,44,33, - 119,30,118,96,108,49,50,56,57,59, - 69,71,72,85,92,65,17,18,6,32, - 4,15,16,21,22,23,24,25,26,27, - 28,51,80,81,82,5,29,34,35,36, - 37,38,39,40,41,42,43,117,3,123, + 107,104,54,106,47,64,66,70,73,76, + 83,89,98,11,12,7,8,112,14,120, + 55,61,67,84,88,90,94,97,99,109, + 110,111,53,19,93,63,91,101,95,1, + 77,122,103,20,46,58,78,44,121,33, + 30,118,119,96,108,49,50,56,57,59, + 69,71,72,85,92,17,18,65,21,22, + 6,23,24,25,26,27,32,4,15,16, + 28,29,34,35,36,37,38,39,40,41, + 42,43,51,80,81,82,5,117,3,123, 62,116 }; }; @@ -2109,27 +2506,29 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 130,135,136,0,0,134,0,0,229,235, + 130,135,136,0,0,134,0,0,237,243, 133,0,143,0,132,0,0,142,148,0, - 0,149,158,180,159,160,161,162,163,151, - 164,165,166,126,141,167,168,0,128,131, - 169,0,129,138,137,152,177,0,0,0, - 0,0,0,0,0,172,0,145,155,0, - 204,0,187,201,205,0,0,127,171,0, - 0,0,0,0,0,206,175,0,0,0, - 0,125,178,0,0,186,0,0,202,212, - 157,208,209,210,0,0,146,0,0,207, - 220,174,196,0,0,211,0,0,0,0, - 240,241,0,147,179,189,190,191,192,193, - 195,0,198,0,199,0,214,217,0,0, - 219,0,238,0,239,0,0,139,140,144, - 0,0,154,156,0,170,0,181,182,183, - 184,185,188,0,0,0,194,0,197,203, - 0,215,216,0,0,221,224,0,226,228, - 0,232,233,234,237,124,0,150,153,0, - 173,0,176,0,0,200,213,218,0,0, - 222,223,225,227,0,230,231,236,242,243, - 0,0,0,0 + 0,149,158,159,160,161,188,151,0,162, + 126,141,163,164,165,131,166,167,128,168, + 0,129,138,137,170,169,171,185,0,0, + 195,172,0,173,0,0,0,0,0,152, + 174,175,176,0,177,180,0,155,194,0, + 0,0,212,0,0,209,213,0,214,127, + 145,179,0,0,0,0,0,0,183,0, + 0,0,0,125,186,0,0,210,216,217, + 218,0,220,157,0,146,0,0,215,197, + 198,199,201,227,228,182,204,0,0,219, + 0,0,0,0,248,0,251,0,252,0, + 147,187,189,190,191,192,196,200,203,0, + 206,0,207,0,222,225,0,0,0,246, + 0,247,0,0,139,140,144,0,0,154, + 156,0,178,0,193,0,0,0,202,0, + 205,211,0,223,224,0,0,229,232,0, + 234,236,0,240,241,242,245,0,0,249, + 124,0,150,153,0,181,0,184,0,0, + 208,221,226,0,0,230,231,233,235,0, + 238,239,244,250,253,254,0,0,0,0, + 0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2137,18 +2536,19 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 159,311,583,602,304,319,534,550,561,572, - 372,267,281,298,333,42,292,392,430,167, - 591,477,20,51,71,80,85,90,130,195, - 326,341,346,144,273,287,505,27,144,382, - 346,610,27,217,246,1,14,61,76,106, - 351,361,365,448,470,499,526,530,620,624, - 628,97,7,97,410,426,439,460,518,116, - 116,232,439,541,557,568,579,207,488,56, - 56,156,222,225,56,241,262,225,225,56, - 369,467,474,156,56,643,110,355,414,454, - 56,355,401,177,104,452,632,639,632,639, - 65,420,137,104,104,251 + 172,324,602,621,317,332,553,569,580,591, + 372,280,294,311,344,55,305,392,430,180, + 610,496,20,33,64,84,93,98,103,143, + 208,339,350,20,467,157,286,300,524,40, + 157,382,20,629,40,230,259,1,14,27, + 74,89,119,27,361,365,448,489,518,545, + 549,639,643,647,110,7,110,410,426,439, + 460,479,537,129,129,245,439,560,576,587, + 598,220,507,69,69,169,235,238,69,254, + 275,238,238,69,369,486,493,169,69,662, + 123,355,414,454,472,69,355,401,190,117, + 452,651,658,651,658,78,420,150,117,117, + 264 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2156,18 +2556,19 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,135,5,5,135,135,5,5,5,5, - 379,135,95,135,339,48,278,398,436,173, - 67,483,25,25,25,59,59,95,135,200, - 331,331,339,149,278,101,510,38,152,387, - 597,615,32,211,211,5,18,5,59,95, - 331,95,95,135,244,5,5,5,5,5, - 244,641,11,101,379,379,379,464,510,120, - 125,236,443,545,545,545,545,211,492,59, - 59,5,5,228,230,244,5,265,265,230, - 95,5,244,5,503,5,113,358,417,457, - 522,513,404,180,95,95,634,634,636,636, - 67,422,139,202,187,253 + 18,148,5,5,148,148,5,5,5,5, + 379,148,108,148,25,61,291,398,436,186, + 80,502,25,38,38,38,72,72,108,148, + 213,31,31,25,5,162,291,114,529,51, + 165,387,616,634,45,224,224,5,18,31, + 5,72,108,31,108,108,148,257,5,5, + 5,5,5,257,660,11,114,379,379,379, + 464,483,529,133,138,249,443,564,564,564, + 564,224,511,72,72,5,5,241,243,257, + 5,278,278,243,108,5,257,5,522,5, + 126,358,417,457,475,541,532,404,193,108, + 108,653,653,655,655,80,422,152,215,200, + 266 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2175,18 +2576,19 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 47,118,18,18,80,118,18,18,18,18, - 72,85,48,80,117,78,54,72,71,47, - 18,20,3,7,8,170,170,166,116,47, - 117,117,119,129,55,48,140,134,129,72, - 18,18,134,95,60,136,75,173,170,166, - 119,184,52,56,144,19,18,18,18,18, - 18,12,112,166,72,71,71,38,140,131, - 131,59,71,18,18,18,18,95,20,174, - 170,186,93,100,62,76,61,160,77,119, - 73,145,144,177,140,17,166,119,102,70, - 140,140,72,47,166,67,138,45,138,45, - 173,102,116,47,47,60 + 48,112,18,18,92,112,18,18,18,18, + 85,97,49,92,111,90,58,85,84,48, + 18,20,190,3,7,8,182,182,178,110, + 48,111,111,138,45,147,59,49,157,151, + 147,85,18,18,151,102,72,153,88,190, + 185,182,178,138,199,56,66,161,19,18, + 18,18,18,18,12,129,178,85,84,84, + 64,41,157,114,114,68,84,18,18,18, + 18,102,20,186,182,201,100,109,74,79, + 73,172,89,138,86,162,161,192,157,17, + 178,138,116,83,45,157,157,85,48,178, + 78,155,44,155,44,185,116,110,48,48, + 72 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2194,18 +2596,19 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 102,71,73,73,71,71,73,73,73,73, - 73,71,27,71,1,68,1,73,121,67, - 3,73,68,68,68,1,1,27,71,67, - 1,1,1,71,1,1,4,68,69,27, - 1,1,68,73,73,73,102,73,1,27, - 1,27,27,71,118,73,73,73,73,73, - 118,1,73,1,73,73,73,72,4,1, - 1,6,73,68,68,68,68,73,3,1, - 1,73,73,3,1,118,73,1,1,1, - 27,73,118,73,5,73,1,48,70,72, - 1,48,75,74,27,27,4,4,4,4, - 3,1,67,1,1,3 + 113,73,72,72,73,73,72,72,72,72, + 72,73,40,73,1,64,1,72,121,69, + 3,72,1,64,64,64,1,1,40,73, + 69,1,1,1,72,73,1,1,4,64, + 68,40,1,1,64,72,72,72,113,1, + 72,1,40,1,40,40,73,118,72,72, + 72,72,72,118,1,72,1,72,72,72, + 71,71,4,1,1,5,72,64,64,64, + 64,72,3,1,1,72,72,3,1,118, + 72,1,1,1,40,72,118,72,6,72, + 1,55,70,71,64,1,55,75,74,40, + 40,4,4,4,4,3,1,69,1,1, + 3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2213,18 +2616,19 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeStateSet { public final static char scopeStateSet[] = { - 85,154,250,250,107,154,250,250,250,250, - 95,109,85,107,154,107,87,95,95,85, - 250,250,182,226,226,54,54,82,154,85, - 154,154,154,312,87,85,149,50,312,95, - 250,250,50,141,63,26,95,30,54,82, - 154,22,87,33,79,250,250,250,250,250, - 250,230,6,82,95,95,95,281,149,154, - 154,121,95,250,250,250,250,141,250,30, - 54,24,141,143,63,137,63,60,68,154, - 95,57,79,152,149,250,82,154,1,95, - 149,149,95,85,82,11,118,158,118,158, - 30,1,154,85,85,63 + 85,183,284,284,107,183,284,284,284,284, + 95,109,85,107,183,107,87,95,95,85, + 284,284,118,214,260,260,54,54,82,183, + 85,183,183,185,140,370,87,85,178,50, + 370,95,284,284,50,169,63,26,95,118, + 30,54,82,185,22,87,33,79,284,284, + 284,284,284,284,264,6,82,95,95,95, + 148,343,178,183,183,124,95,284,284,284, + 284,169,284,30,54,24,169,171,63,165, + 63,60,68,185,95,57,79,181,178,284, + 82,185,1,95,140,178,178,95,85,82, + 11,121,189,121,189,30,1,183,85,85, + 63 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2232,71 +2636,73 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 322,3,60,0,126,0,321,3,102,0, - 126,172,0,126,178,74,0,216,0,254, - 126,55,124,0,20,0,297,126,55,48, - 0,20,53,0,33,132,0,20,53,0, - 0,297,126,55,48,203,0,20,178,0, - 254,126,55,132,0,179,127,0,141,0, - 218,3,296,0,296,0,2,0,126,0, - 254,126,55,131,0,179,127,223,0,179, - 127,22,223,0,179,127,317,22,0,128, - 188,167,127,0,128,0,188,167,127,0, - 134,128,0,171,0,313,126,171,0,126, - 171,0,222,128,0,167,312,242,0,136, - 0,0,0,0,135,0,0,0,0,311, - 126,165,253,0,127,0,253,0,129,0, - 0,127,0,310,126,165,252,0,127,0, - 0,44,127,0,0,152,3,0,126,284, - 283,126,74,282,171,0,283,126,74,282, - 171,0,215,0,216,0,282,171,0,96, - 0,0,215,0,216,0,203,96,0,0, - 215,0,216,0,283,126,282,171,0,215, - 0,203,0,0,215,0,226,126,3,0, - 126,0,0,0,0,0,226,126,3,215, - 0,222,3,0,211,126,0,208,0,146, - 0,172,167,127,0,10,0,0,0,0, - 213,63,0,125,0,226,126,3,183,0, - 183,0,2,0,0,126,0,0,0,0, - 0,199,3,0,201,0,235,126,165,39, - 30,0,179,127,59,62,0,196,128,0, - 128,179,127,280,62,0,179,127,280,62, - 0,179,127,70,123,59,0,235,126,165, - 244,59,0,235,126,165,244,225,59,0, - 277,278,126,165,123,307,56,0,277,278, - 126,165,307,56,0,179,127,276,56,0, - 135,0,188,179,127,276,242,0,136,0, - 179,127,276,242,0,188,167,127,10,0, - 167,127,10,0,167,127,0,93,136,0, - 269,126,146,0,269,126,171,0,162,84, - 0,302,161,304,305,3,81,0,126,171, - 0,304,305,3,81,0,128,0,126,171, - 0,162,3,75,191,80,0,126,128,0, - 191,80,0,108,2,131,126,128,0,224, - 3,75,0,199,168,0,33,169,0,168, - 0,175,33,169,0,224,3,85,0,191, - 156,224,3,83,0,62,171,0,224,3, - 83,0,126,171,62,171,0,303,126,165, - 0,162,0,213,77,0,30,171,0,162, - 107,159,0,30,169,0,218,3,0,213, - 63,266,0,162,63,0,180,3,299,66, - 127,0,126,0,0,0,0,299,66,127, - 0,2,145,126,0,0,0,0,180,3, - 46,0,147,0,125,48,167,127,0,31, - 147,0,93,136,31,147,0,219,179,127, - 0,146,31,147,0,180,3,51,0,162, - 3,51,0,162,3,68,180,55,42,0, - 180,55,42,0,20,2,131,126,0,162, - 3,68,180,55,45,0,180,55,45,0, - 162,3,68,180,55,47,0,180,55,47, - 0,162,3,68,180,55,43,0,180,55, - 43,0,218,3,125,188,167,127,10,0, - 125,188,167,127,10,0,136,2,0,126, - 0,218,3,124,259,167,127,10,0,259, - 167,127,10,0,135,2,0,126,0,218, - 3,135,0,218,3,140,0,162,63,140, - 0,261,0,31,0,31,139,0,166,0, - 134,0,162,3,0 + 338,3,59,0,126,0,337,3,113,0, + 126,180,0,127,188,74,0,224,0,197, + 166,126,10,0,136,0,166,126,10,0, + 135,0,271,127,54,124,0,20,0,309, + 127,54,55,0,20,53,0,33,132,0, + 20,53,0,0,309,127,54,55,215,0, + 20,186,0,271,127,54,132,0,189,126, + 0,141,0,227,3,308,0,308,0,2, + 0,126,0,271,127,54,131,0,189,126, + 237,0,189,126,22,237,0,189,126,332, + 22,0,128,197,166,126,0,128,0,197, + 166,126,0,134,128,0,172,0,328,127, + 172,0,127,172,0,230,128,0,166,327, + 235,0,136,0,0,0,0,135,0,0, + 0,0,326,127,164,236,0,127,0,236, + 0,129,0,0,127,0,325,127,164,270, + 0,127,0,0,44,127,0,0,150,3, + 0,127,296,295,127,74,294,172,0,295, + 127,74,294,172,0,223,0,224,0,294, + 172,0,96,0,0,223,0,224,0,211, + 96,0,0,223,0,224,0,295,127,294, + 172,0,223,0,211,0,0,223,0,240, + 127,3,0,126,0,0,0,0,0,240, + 127,3,222,0,231,3,0,220,127,0, + 216,0,146,0,175,166,126,0,10,0, + 0,0,0,226,60,0,125,0,240,127, + 3,195,0,195,0,2,0,0,126,0, + 0,0,0,0,211,3,0,209,0,252, + 127,164,38,27,0,189,126,61,63,0, + 204,128,0,128,189,126,292,63,0,189, + 126,292,63,0,189,126,70,123,61,0, + 252,127,164,262,61,0,252,127,164,262, + 239,61,0,289,290,127,164,123,322,56, + 0,289,290,127,164,322,56,0,189,126, + 288,56,0,197,189,126,288,235,0,189, + 126,288,235,0,166,126,0,93,136,0, + 286,127,149,0,286,127,172,0,158,84, + 0,317,161,319,320,3,81,0,126,179, + 0,319,320,3,81,0,128,0,126,179, + 0,158,3,75,204,80,0,126,128,0, + 204,80,0,108,2,131,126,128,0,238, + 3,75,0,211,182,0,33,169,0,182, + 0,183,33,169,0,238,3,85,0,204, + 153,238,3,83,0,62,179,0,238,3, + 83,0,126,179,62,179,0,318,127,164, + 0,158,0,226,77,0,30,179,0,158, + 102,185,0,30,177,0,148,64,167,3, + 0,167,3,0,20,161,126,0,158,102, + 162,0,30,169,0,227,3,0,226,60, + 283,0,158,60,0,203,3,314,67,126, + 0,126,0,0,0,0,314,67,126,0, + 2,145,126,0,0,0,0,203,3,45, + 0,147,0,125,55,166,126,0,31,147, + 0,93,136,31,147,0,228,189,126,0, + 146,31,147,0,203,3,49,0,158,3, + 49,0,158,3,64,203,54,41,0,203, + 54,41,0,20,2,131,126,0,158,3, + 64,203,54,44,0,203,54,44,0,158, + 3,64,203,54,46,0,203,54,46,0, + 158,3,64,203,54,42,0,203,54,42, + 0,227,3,125,197,166,126,10,0,125, + 197,166,126,10,0,136,2,0,126,0, + 227,3,124,276,166,126,10,0,276,166, + 126,10,0,135,2,0,126,0,227,3, + 135,0,227,3,140,0,158,60,140,0, + 278,0,31,0,31,139,0,165,0,134, + 0,158,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2304,38 +2710,44 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4724,4828,4823,4805,0,4233,4211,4066,3234,0, - 3652,3595,3513,3410,3372,3334,3296,3258,3220,3000, - 2962,3505,0,3416,0,2102,1190,875,0,3130, - 2570,0,3652,3595,1983,1897,3513,3410,3372,3334, - 3296,3258,1811,3220,3000,2962,1553,1467,0,4747, - 3120,4691,0,4205,3261,0,3538,740,0,4515, - 4309,0,4276,4515,2819,3154,4309,3076,3486,4289, - 4067,2492,4053,605,2724,586,2703,0,747,746, - 0,4541,4531,0,4541,4531,4189,4459,4413,4116, - 4401,4355,4102,4343,3652,3595,3513,3410,3372,3334, - 3296,3258,3220,3000,2962,0,4541,4531,4189,4459, - 4413,4116,4401,4355,4102,4343,0,2770,2750,0, - 2492,4276,3531,2819,3154,4557,2724,2716,3451,3379, - 4547,3146,878,879,734,0,2200,1946,969,934, - 3154,3146,3076,586,2703,2965,2810,0,953,808, - 0,789,0,4245,541,2746,0,4740,4733,4687, - 4682,4668,4664,4657,4599,4582,4443,4815,4385,3573, - 4811,4758,4174,3471,2977,3467,3198,2755,2717,1384, - 0,2611,2607,4740,4733,4687,2247,2160,4682,621, - 4668,4664,4657,4599,4582,3115,3353,3283,4443,3206, - 4815,2981,2791,2634,2243,4385,3573,2156,4811,2871, - 4758,3658,2738,4174,3471,2977,652,3467,3198,2755, - 4245,599,2746,2717,1384,2558,1329,742,633,2618, - 3076,3486,4289,4067,2492,4276,4053,4515,2819,3154, - 605,2724,586,4309,2703,2538,2325,953,808,4030, - 1102,2291,2372,2339,2463,2434,2404,2938,2911,2675, - 2647,2577,2505,3776,3752,3728,3172,3089,4007,3984, - 3961,3938,3915,3892,3869,3846,3823,3800,2839,4080, - 2035,2252,2204,2165,2117,2078,1389,1341,1242,1286, - 894,1992,1059,835,754,695,541,1949,1906,1863, - 1820,1777,1734,1691,1648,1605,1562,1519,1476,1433, - 1199,1015,971,1155,0 + 6062,6292,6290,6288,0,2597,2665,1716,2533,0, + 5212,5150,5088,5026,4964,4902,4840,4778,4714,4502, + 4440,4842,0,1763,0,2443,1995,1987,0,2274, + 2142,0,5212,5150,2869,2868,5088,5026,4964,4902, + 4840,4778,2797,4714,4502,4440,2406,2277,0,6205, + 3566,6135,0,2394,2080,0,2314,2089,0,653, + 6002,0,5962,653,5914,4675,6002,4591,4329,2512, + 2182,3812,5702,2380,4194,4180,4140,0,2446,1022, + 0,5928,6191,0,5928,6191,5815,6171,6111,5754, + 6097,6037,5737,6022,5212,5150,5088,5026,4964,4902, + 4840,4778,4714,4502,4440,0,5928,6191,5815,6171, + 6111,5754,6097,6037,5737,6022,0,5747,5349,0, + 2245,815,0,3812,5962,4511,5914,4675,4755,4194, + 4448,4232,4231,4451,6144,920,3368,2081,0,3330, + 3431,3588,3533,3825,3785,3675,3493,2878,929,2812, + 2746,2680,2614,2548,2482,2416,2350,2284,2218,2152, + 837,769,677,0,2260,1437,1341,651,4675,6144, + 4591,4180,4140,3279,3859,718,0,869,746,0, + 1047,0,5747,5349,5887,599,4274,0,6233,6181, + 6056,5836,5179,5117,5055,4993,4931,4910,5951,5853, + 4848,4787,5241,4531,3860,925,3855,4701,4694,4441, + 3488,672,0,1625,1578,6233,6181,6056,1384,1249, + 5836,885,5179,5117,5055,4993,4931,1907,4459,1860, + 1813,4910,1766,5951,5853,1719,1672,1481,1431,4848, + 4787,809,5241,4707,4531,3185,2917,3860,925,3855, + 765,4701,4694,4441,5887,646,4274,3488,672,2842, + 2776,1193,1042,904,4591,4329,2512,2182,3812,5962, + 5702,653,5914,4675,2380,4194,4180,6002,4140,2710, + 2644,869,746,2878,4153,929,3330,2812,2746,2680, + 2614,2548,2482,2416,2350,2284,2218,2152,3431,3588, + 3533,3825,3785,3675,4113,4086,4059,5679,3493,837, + 769,677,3288,3393,1106,1254,3754,3723,3641,4413, + 4346,4032,4005,3978,3905,5325,5301,4301,4631,4604, + 5656,5633,5610,5587,5564,5540,5510,5487,5421,5395, + 5364,5715,2944,3231,3189,3132,3090,3033,1389,1342, + 2991,1293,2095,2053,599,2006,1959,1912,1865,1818, + 1771,1724,1677,1630,1583,1536,1489,1439,1207,1058, + 995,1144,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2343,61 +2755,67 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,298,126,268,51,42,45,47,43,10, - 135,124,131,7,132,4,3,127,46,41, - 5,26,25,6,9,38,37,140,145,148, - 147,150,149,153,151,155,154,158,60,159, - 69,3,55,55,55,55,127,3,55,55, - 168,126,63,3,65,66,55,5,162,65, - 66,167,166,124,3,123,125,106,119,3, - 63,89,91,26,25,93,92,6,95,94, - 68,55,87,88,9,97,96,99,98,100, - 117,116,115,114,113,112,111,110,109,108, - 70,107,101,180,162,168,126,180,180,180, - 180,167,218,126,126,126,270,271,253,272, - 242,273,56,274,275,10,127,63,63,126, - 124,63,299,3,188,4,180,48,127,48, - 218,162,147,147,145,145,145,149,149,149, - 149,148,148,151,150,150,154,153,155,162, - 158,126,63,3,216,215,135,125,124,10, - 127,68,68,68,68,188,259,254,257,254, - 211,127,172,165,312,276,307,276,127,179, - 167,254,204,3,300,168,152,261,188,127, - 179,167,72,211,213,159,222,126,3,127, - 167,3,3,3,3,125,124,69,167,9, - 6,126,167,229,125,124,127,123,165,127, - 167,48,180,126,126,4,219,5,48,226, - 227,146,228,126,167,48,162,162,162,162, - 3,3,172,172,311,127,169,223,59,48, - 203,62,171,314,125,124,230,230,179,165, - 126,179,188,156,263,266,63,181,4,123, - 125,156,70,222,199,187,183,127,3,126, - 69,226,188,218,218,6,126,167,244,225, - 55,48,280,282,126,3,183,230,230,126, - 126,188,126,278,123,279,126,3,63,162, - 4,126,70,70,3,179,167,199,126,211, - 156,125,172,185,188,165,244,68,55,127, - 74,126,211,313,72,291,199,124,127,126, - 126,126,72,278,277,70,69,263,218,213, - 220,126,126,126,128,126,165,30,48,171, - 64,59,62,126,179,126,283,72,69,72, - 70,167,211,316,223,22,127,277,126,226, - 220,235,237,126,39,126,3,123,59,297, - 48,10,40,128,283,165,295,127,296,69, - 127,22,317,179,60,156,126,235,126,165, - 269,247,281,39,70,127,69,68,55,229, - 229,284,126,69,179,3,179,127,127,3, - 126,126,3,70,69,156,127,179,126,70, - 70,126,303,79,77,1,162,8,85,83, - 81,80,75,82,84,78,76,59,74,218, - 179,179,322,220,235,152,165,252,179,225, - 297,285,102,8,72,213,72,3,3,3, - 191,3,123,162,123,178,69,126,126,165, - 225,68,3,72,224,168,224,305,146,75, - 224,126,126,40,90,321,168,156,199,156, - 304,126,3,156,285,310,229,156,156,126, - 70,191,161,269,162,190,69,70,121,302, - 156,190,8,156 + 0,313,127,285,49,41,44,46,42,10, + 135,124,131,8,132,4,3,126,45,39, + 6,35,34,5,7,37,36,140,145,147, + 146,152,148,156,155,159,157,160,59,162, + 68,3,54,54,54,54,126,3,54,54, + 182,127,60,3,66,67,54,6,158,66, + 67,166,165,124,3,123,125,117,119,3, + 60,91,98,35,34,100,99,5,90,89, + 64,54,86,87,7,93,92,95,94,96, + 112,111,110,109,108,107,106,105,104,103, + 70,102,101,203,158,182,127,203,203,203, + 203,166,227,127,127,127,255,256,236,257, + 235,258,56,287,259,10,126,60,60,127, + 124,60,314,3,197,4,203,55,126,55, + 227,158,146,146,145,145,145,148,148,148, + 148,147,147,155,152,152,157,156,159,158, + 160,127,60,3,223,222,135,125,124,10, + 126,64,64,64,64,197,276,271,127,249, + 3,167,148,174,169,183,176,184,185,274, + 271,220,126,175,164,327,288,322,288,126, + 189,166,271,216,3,315,182,150,278,197, + 126,189,166,71,220,226,162,231,127,3, + 126,166,3,3,3,3,125,124,255,256, + 257,258,336,259,10,167,90,89,54,7, + 93,92,95,94,96,112,111,110,109,108, + 107,106,105,104,103,70,102,101,68,166, + 7,5,127,166,243,125,124,126,123,164, + 126,166,55,203,127,127,4,228,6,55, + 240,241,149,242,127,166,55,158,158,158, + 158,3,3,126,64,148,148,148,169,167, + 167,176,174,183,158,184,175,175,326,126, + 170,237,61,55,215,63,172,329,125,124, + 244,244,189,164,127,189,197,153,280,283, + 60,190,4,123,125,153,70,231,211,199, + 195,126,3,127,68,240,197,227,227,166, + 148,71,5,127,166,262,239,54,55,292, + 294,127,3,195,244,244,127,127,197,127, + 290,123,291,127,3,60,158,4,127,70, + 70,3,189,166,211,127,220,153,125,197, + 175,173,197,164,262,64,54,126,74,127, + 220,328,71,303,211,124,126,127,127,127, + 71,290,289,70,68,280,227,226,229,127, + 127,127,128,127,164,27,55,172,65,61, + 63,127,189,127,295,71,68,71,70,166, + 220,331,237,22,126,289,127,240,229,252, + 254,127,38,127,3,123,61,309,55,10, + 53,128,295,164,307,126,308,68,126,22, + 332,189,59,153,127,252,127,164,286,265, + 293,38,70,126,68,64,54,243,243,296, + 127,68,189,3,189,126,126,3,127,127, + 3,70,68,153,126,189,127,70,70,127, + 318,79,77,1,158,9,85,83,81,80, + 75,82,84,78,76,61,74,227,189,189, + 338,229,252,150,164,270,189,239,309,297, + 113,9,71,226,71,3,3,3,204,3, + 123,158,123,188,68,127,127,164,239,64, + 3,71,238,182,238,320,149,75,238,127, + 127,53,97,337,182,153,211,153,319,127, + 3,153,297,325,243,153,153,127,70,204, + 161,286,158,202,68,70,121,317,153,202, + 9,153 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2577,6 +2995,20 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "logical_and_expression", "logical_or_expression", "assignment_expression", + "relational_expression_inTempla" + + "te", + "equality_expression_inTemplate", + "and_expression_inTemplate", + "exclusive_or_expression_inTemp" + + "late", + "inclusive_or_expression_inTemp" + + "late", + "logical_and_expression_inTempl" + + "ate", + "logical_or_expression_inTempla" + + "te", + "assignment_expression_inTempla" + + "te", "expression_list_actual", "statement", "compound_statement", @@ -2652,6 +3084,10 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "template_parameter", "template_argument_list", "template_argument", + "type_name_specifier_inTemplate", + "type_name_declaration_specifie" + + "rs_inTemplate", + "type_specifier_seq_inTemplate", "handler", "exception_declaration", "type_id_list" @@ -2661,10 +3097,10 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 61, - SCOPE_UBOUND = 115, - SCOPE_SIZE = 116, - MAX_NAME_LENGTH = 37; + ERROR_SYMBOL = 62, + SCOPE_UBOUND = 120, + SCOPE_SIZE = 121, + MAX_NAME_LENGTH = 43; public final int getErrorSymbol() { return ERROR_SYMBOL; } public final int getScopeUbound() { return SCOPE_UBOUND; } @@ -2672,20 +3108,20 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 544, + NUM_STATES = 602, NT_OFFSET = 122, - LA_STATE_OFFSET = 5982, + LA_STATE_OFFSET = 7448, MAX_LA = 2147483647, - NUM_RULES = 540, - NUM_NONTERMINALS = 204, - NUM_SYMBOLS = 326, + NUM_RULES = 598, + NUM_NONTERMINALS = 225, + NUM_SYMBOLS = 347, SEGMENT_SIZE = 8192, - START_STATE = 645, + START_STATE = 4258, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, - ACCEPT_ACTION = 5074, - ERROR_ACTION = 5442; + ACCEPT_ACTION = 6410, + ERROR_ACTION = 6850; 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 ae4edf27c8a..075073973bb 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,127 +15,127 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoCastExpressionParsersym { public final static int - TK_asm = 64, - TK_auto = 28, + TK_asm = 65, + TK_auto = 25, TK_bool = 11, TK_break = 76, TK_case = 77, - TK_catch = 102, + TK_catch = 113, TK_char = 12, - TK_class = 40, + TK_class = 53, TK_const = 23, - TK_const_cast = 42, + TK_const_cast = 41, TK_continue = 78, TK_default = 79, - TK_delete = 65, + TK_delete = 66, TK_do = 80, TK_double = 13, - TK_dynamic_cast = 43, + TK_dynamic_cast = 42, TK_else = 121, TK_enum = 56, - TK_explicit = 29, - TK_export = 86, - TK_extern = 30, - TK_false = 44, + TK_explicit = 26, + TK_export = 88, + TK_extern = 27, + TK_false = 43, TK_float = 14, TK_for = 81, - TK_friend = 31, + TK_friend = 28, TK_goto = 82, TK_if = 83, - TK_inline = 32, + TK_inline = 29, TK_int = 15, TK_long = 16, - TK_mutable = 33, - TK_namespace = 59, - TK_new = 66, - TK_operator = 7, - TK_private = 103, - TK_protected = 104, - TK_public = 105, - TK_register = 34, - TK_reinterpret_cast = 45, + TK_mutable = 30, + TK_namespace = 61, + TK_new = 67, + TK_operator = 8, + TK_private = 114, + TK_protected = 115, + TK_public = 116, + TK_register = 31, + TK_reinterpret_cast = 44, TK_return = 84, TK_short = 17, TK_signed = 18, - TK_sizeof = 46, - TK_static = 35, - TK_static_cast = 47, + TK_sizeof = 45, + TK_static = 32, + TK_static_cast = 46, TK_struct = 57, TK_switch = 85, - TK_template = 48, - TK_this = 49, - TK_throw = 60, + TK_template = 55, + TK_this = 47, + TK_throw = 59, TK_try = 74, - TK_true = 50, - TK_typedef = 36, - TK_typeid = 51, + TK_true = 48, + TK_typedef = 33, + TK_typeid = 49, TK_typename = 10, TK_union = 58, TK_unsigned = 19, - TK_using = 62, + TK_using = 63, TK_virtual = 22, TK_void = 20, TK_volatile = 24, TK_wchar_t = 21, TK_while = 75, - TK_integer = 52, - TK_floating = 53, - TK_charconst = 54, - TK_stringlit = 39, + TK_integer = 50, + TK_floating = 51, + TK_charconst = 52, + TK_stringlit = 38, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 8, + TK_EndOfCompletion = 9, TK_Invalid = 122, - TK_LeftBracket = 63, + TK_LeftBracket = 60, TK_LeftParen = 3, TK_Dot = 119, - TK_DotStar = 91, - TK_Arrow = 106, - TK_ArrowStar = 89, - TK_PlusPlus = 37, - TK_MinusMinus = 38, - TK_And = 9, - TK_Star = 6, - TK_Plus = 25, - TK_Minus = 26, - TK_Tilde = 5, - TK_Bang = 41, - TK_Slash = 92, - TK_Percent = 93, - TK_RightShift = 87, - TK_LeftShift = 88, - TK_LT = 55, - TK_GT = 68, - TK_LE = 94, - TK_GE = 95, - TK_EQ = 96, - TK_NE = 97, - TK_Caret = 98, - TK_Or = 99, - TK_AndAnd = 100, + TK_DotStar = 98, + TK_Arrow = 117, + TK_ArrowStar = 91, + TK_PlusPlus = 36, + TK_MinusMinus = 37, + TK_And = 7, + TK_Star = 5, + TK_Plus = 34, + TK_Minus = 35, + TK_Tilde = 6, + TK_Bang = 39, + TK_Slash = 99, + TK_Percent = 100, + TK_RightShift = 86, + TK_LeftShift = 87, + TK_LT = 54, + TK_GT = 64, + TK_LE = 89, + TK_GE = 90, + TK_EQ = 92, + TK_NE = 93, + TK_Caret = 94, + TK_Or = 95, + TK_AndAnd = 96, TK_OrOr = 101, - TK_Question = 107, - TK_Colon = 72, + TK_Question = 102, + TK_Colon = 71, TK_ColonColon = 4, - TK_DotDotDot = 90, + TK_DotDotDot = 97, TK_Assign = 70, - TK_StarAssign = 108, - TK_SlashAssign = 109, - TK_PercentAssign = 110, - TK_PlusAssign = 111, - TK_MinusAssign = 112, - TK_RightShiftAssign = 113, - TK_LeftShiftAssign = 114, - TK_AndAssign = 115, - TK_CaretAssign = 116, - TK_OrAssign = 117, - TK_Comma = 69, + TK_StarAssign = 103, + TK_SlashAssign = 104, + TK_PercentAssign = 105, + TK_PlusAssign = 106, + TK_MinusAssign = 107, + TK_RightShiftAssign = 108, + TK_LeftShiftAssign = 109, + TK_AndAssign = 110, + TK_CaretAssign = 111, + TK_OrAssign = 112, + TK_Comma = 68, TK_RightBracket = 118, - TK_RightParen = 73, - TK_RightBrace = 71, - TK_SemiColon = 27, - TK_LeftBrace = 67, - TK_ERROR_TOKEN = 61, + TK_RightParen = 72, + TK_RightBrace = 73, + TK_SemiColon = 40, + TK_LeftBrace = 69, + TK_ERROR_TOKEN = 62, TK_EOF_TOKEN = 120; public final static String orderedTerminalSymbols[] = { @@ -144,11 +144,11 @@ public interface CPPNoCastExpressionParsersym { "Completion", "LeftParen", "ColonColon", - "Tilde", "Star", + "Tilde", + "And", "operator", "EndOfCompletion", - "And", "typename", "bool", "char", @@ -164,9 +164,6 @@ public interface CPPNoCastExpressionParsersym { "virtual", "const", "volatile", - "Plus", - "Minus", - "SemiColon", "auto", "explicit", "extern", @@ -176,43 +173,46 @@ public interface CPPNoCastExpressionParsersym { "register", "static", "typedef", + "Plus", + "Minus", "PlusPlus", "MinusMinus", "stringlit", - "class", "Bang", + "SemiColon", "const_cast", "dynamic_cast", "false", "reinterpret_cast", "sizeof", "static_cast", - "template", "this", "true", "typeid", "integer", "floating", "charconst", + "class", "LT", + "template", "enum", "struct", "union", - "namespace", "throw", + "LeftBracket", + "namespace", "ERROR_TOKEN", "using", - "LeftBracket", + "GT", "asm", "delete", "new", - "LeftBrace", - "GT", "Comma", + "LeftBrace", "Assign", - "RightBrace", "Colon", "RightParen", + "RightBrace", "try", "while", "break", @@ -225,27 +225,22 @@ public interface CPPNoCastExpressionParsersym { "if", "return", "switch", - "export", "RightShift", "LeftShift", - "ArrowStar", - "DotDotDot", - "DotStar", - "Slash", - "Percent", + "export", "LE", "GE", + "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd", + "DotDotDot", + "DotStar", + "Slash", + "Percent", "OrOr", - "catch", - "private", - "protected", - "public", - "Arrow", "Question", "StarAssign", "SlashAssign", @@ -257,6 +252,11 @@ public interface CPPNoCastExpressionParsersym { "AndAssign", "CaretAssign", "OrAssign", + "catch", + "private", + "protected", + "public", + "Arrow", "RightBracket", "Dot", "EOF_TOKEN", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java index f0a60677a10..d97915cca6b 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java @@ -248,7 +248,13 @@ public void setTokens(List tokens) { public CPPNoFunctionDeclaratorParser(ITokenStream stream, Map properties) { // constructor for creating secondary parser initActions(properties); tokenMap = new TokenMap(CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); -} +} + + public CPPNoFunctionDeclaratorParser(ITokenStream stream, IScanner scanner, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map properties) { // constructor for creating secondary parser + initActions(properties); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + tokenMap = new TokenMap(CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); +} public void ruleAction(int ruleNumber) @@ -815,1125 +821,1353 @@ public CPPNoFunctionDeclaratorParser(ITokenStream stream, Map pro } // - // Rule 141: throw_expression ::= throw + // Rule 142: relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression // - case 141: { action. consumeExpressionThrow(false); break; + case 142: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 142: throw_expression ::= throw assignment_expression + // Rule 143: relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression ) // - case 142: { action. consumeExpressionThrow(true); break; + case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 145: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 144: relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression // - case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 146: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 145: relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression // - case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 147: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 147: equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate // - case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 148: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 148: equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate // - case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 149: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 150: and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate // - case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 150: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 152: exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate // - case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 151: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 154: inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate // - case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 152: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 156: logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate // - case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 156: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 153: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 158: logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate // - case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 158: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 154: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 160: conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate // - case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 160: { action. consumeExpressionConditional(); break; } // - // Rule 155: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 163: assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate // - case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 163: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 157: expression_list ::= expression_list_actual + // Rule 164: assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate // - case 157: { action. consumeExpressionList(); break; + case 164: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 161: expression_list_opt ::= $Empty + // Rule 165: assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate // - case 161: { action. consumeEmpty(); break; + case 165: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 163: expression_opt ::= $Empty + // Rule 166: assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate // - case 163: { action. consumeEmpty(); break; + case 166: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 166: constant_expression_opt ::= $Empty + // Rule 167: assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate // - case 166: { action. consumeEmpty(); break; + case 167: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 175: statement ::= ERROR_TOKEN + // Rule 168: assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate // - case 175: { action. consumeStatementProblem(); break; + case 168: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 176: labeled_statement ::= identifier : statement + // Rule 169: assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate // - case 176: { action. consumeStatementLabeled(); break; + case 169: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 177: labeled_statement ::= case constant_expression : statement + // Rule 170: assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate // - case 177: { action. consumeStatementCase(); break; + case 170: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 178: labeled_statement ::= default : statement + // Rule 171: assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate // - case 178: { action. consumeStatementDefault(); break; + case 171: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 179: expression_statement ::= expression ; + // Rule 172: assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate // - case 179: { action. consumeStatementExpression(); break; + case 172: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 180: expression_statement ::= ; + // Rule 173: assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate // - case 180: { action. consumeStatementNull(); break; + case 173: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 181: compound_statement ::= { statement_seq } + // Rule 174: throw_expression ::= throw // - case 181: { action. consumeStatementCompoundStatement(true); break; + case 174: { action. consumeExpressionThrow(false); break; } // - // Rule 182: compound_statement ::= { } + // Rule 175: throw_expression ::= throw assignment_expression // - case 182: { action. consumeStatementCompoundStatement(false); break; + case 175: { action. consumeExpressionThrow(true); break; } // - // Rule 185: selection_statement ::= if ( condition ) statement + // Rule 178: assignment_expression ::= logical_or_expression = assignment_expression // - case 185: { action. consumeStatementIf(false); break; + case 178: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 186: selection_statement ::= if ( condition ) statement else statement + // Rule 179: assignment_expression ::= logical_or_expression *= assignment_expression // - case 186: { action. consumeStatementIf(true); break; + case 179: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 187: selection_statement ::= switch ( condition ) statement + // Rule 180: assignment_expression ::= logical_or_expression /= assignment_expression // - case 187: { action. consumeStatementSwitch(); break; + case 180: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 189: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 181: assignment_expression ::= logical_or_expression %= assignment_expression // - case 189: { action. consumeConditionDeclaration(); break; + case 181: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 191: condition_opt ::= $Empty + // Rule 182: assignment_expression ::= logical_or_expression += assignment_expression // - case 191: { action. consumeEmpty(); break; + case 182: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 192: iteration_statement ::= while ( condition ) statement + // Rule 183: assignment_expression ::= logical_or_expression -= assignment_expression // - case 192: { action. consumeStatementWhileLoop(); break; + case 183: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 193: iteration_statement ::= do statement while ( expression ) ; + // Rule 184: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 193: { action. consumeStatementDoLoop(true); break; + case 184: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 194: iteration_statement ::= do statement + // Rule 185: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 194: { action. consumeStatementDoLoop(false); break; + case 185: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 186: assignment_expression ::= logical_or_expression &= assignment_expression // - case 195: { action. consumeStatementForLoop(); break; + case 186: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 197: for_init_statement ::= simple_declaration_with_declspec + // Rule 187: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 197: { action. consumeStatementDeclaration(); break; + case 187: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 198: jump_statement ::= break ; + // Rule 188: assignment_expression ::= logical_or_expression |= assignment_expression // - case 198: { action. consumeStatementBreak(); break; + case 188: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 199: jump_statement ::= continue ; + // Rule 190: expression_list ::= expression_list_actual // - case 199: { action. consumeStatementContinue(); break; + case 190: { action. consumeExpressionList(); break; } // - // Rule 200: jump_statement ::= return expression ; + // Rule 194: expression_list_opt ::= $Empty // - case 200: { action. consumeStatementReturn(true); break; + case 194: { action. consumeEmpty(); break; } // - // Rule 201: jump_statement ::= return ; + // Rule 196: expression_opt ::= $Empty // - case 201: { action. consumeStatementReturn(false); break; + case 196: { action. consumeEmpty(); break; } // - // Rule 202: jump_statement ::= goto identifier_token ; + // Rule 199: constant_expression_opt ::= $Empty // - case 202: { action. consumeStatementGoto(); break; + case 199: { action. consumeEmpty(); break; } // - // Rule 203: declaration_statement ::= block_declaration + // Rule 208: statement ::= ERROR_TOKEN // - case 203: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 208: { action. consumeStatementProblem(); break; } // - // Rule 204: declaration_statement ::= function_definition + // Rule 209: labeled_statement ::= identifier : statement // - case 204: { action. consumeStatementDeclaration(); break; + case 209: { action. consumeStatementLabeled(); break; } // - // Rule 212: declaration ::= ERROR_TOKEN + // Rule 210: labeled_statement ::= case constant_expression : statement // - case 212: { action. consumeDeclarationProblem(); break; + case 210: { action. consumeStatementCase(); break; } // - // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 211: labeled_statement ::= default : statement // - case 222: { action. consumeDeclarationSimple(true); break; + case 211: { action. consumeStatementDefault(); break; } // - // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 212: expression_statement ::= expression ; // - case 223: { action. consumeDeclarationSimple(true); break; + case 212: { action. consumeStatementExpression(); break; } // - // Rule 224: declaration_specifiers ::= simple_declaration_specifiers + // Rule 213: expression_statement ::= ; // - case 224: { action. consumeDeclarationSpecifiersSimple(); break; + case 213: { action. consumeStatementNull(); break; } // - // Rule 225: declaration_specifiers ::= class_declaration_specifiers + // Rule 214: compound_statement ::= { statement_seq } // - case 225: { action. consumeDeclarationSpecifiersComposite(); break; + case 214: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 226: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 215: compound_statement ::= { } // - case 226: { action. consumeDeclarationSpecifiersComposite(); break; + case 215: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 227: declaration_specifiers ::= enum_declaration_specifiers + // Rule 218: selection_statement ::= if ( condition ) statement // - case 227: { action. consumeDeclarationSpecifiersComposite(); break; + case 218: { action. consumeStatementIf(false); break; } // - // Rule 228: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 219: selection_statement ::= if ( condition ) statement else statement // - case 228: { action. consumeDeclarationSpecifiersTypeName(); break; + case 219: { action. consumeStatementIf(true); break; } // - // Rule 230: declaration_specifiers_opt ::= $Empty + // Rule 220: selection_statement ::= switch ( condition ) statement // - case 230: { action. consumeEmpty(); break; + case 220: { action. consumeStatementSwitch(); break; } // - // Rule 234: no_type_declaration_specifier ::= friend + // Rule 222: condition ::= type_specifier_seq declarator = assignment_expression // - case 234: { action. consumeToken(); break; + case 222: { action. consumeConditionDeclaration(); break; } // - // Rule 235: no_type_declaration_specifier ::= typedef + // Rule 224: condition_opt ::= $Empty // - case 235: { action. consumeToken(); break; + case 224: { action. consumeEmpty(); break; } // - // Rule 255: storage_class_specifier ::= auto + // Rule 225: iteration_statement ::= while ( condition ) statement // - case 255: { action. consumeToken(); break; + case 225: { action. consumeStatementWhileLoop(); break; } // - // Rule 256: storage_class_specifier ::= register + // Rule 226: iteration_statement ::= do statement while ( expression ) ; // - case 256: { action. consumeToken(); break; + case 226: { action. consumeStatementDoLoop(true); break; } // - // Rule 257: storage_class_specifier ::= static + // Rule 227: iteration_statement ::= do statement // - case 257: { action. consumeToken(); break; + case 227: { action. consumeStatementDoLoop(false); break; } // - // Rule 258: storage_class_specifier ::= extern + // Rule 228: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 258: { action. consumeToken(); break; + case 228: { action. consumeStatementForLoop(); break; } // - // Rule 259: storage_class_specifier ::= mutable + // Rule 230: for_init_statement ::= simple_declaration_with_declspec // - case 259: { action. consumeToken(); break; + case 230: { action. consumeStatementDeclaration(); break; } // - // Rule 260: function_specifier ::= inline + // Rule 231: jump_statement ::= break ; // - case 260: { action. consumeToken(); break; + case 231: { action. consumeStatementBreak(); break; } // - // Rule 261: function_specifier ::= virtual + // Rule 232: jump_statement ::= continue ; // - case 261: { action. consumeToken(); break; + case 232: { action. consumeStatementContinue(); break; } // - // Rule 262: function_specifier ::= explicit + // Rule 233: jump_statement ::= return expression ; // - case 262: { action. consumeToken(); break; + case 233: { action. consumeStatementReturn(true); break; } // - // Rule 263: simple_type_specifier ::= simple_type_specifier_token + // Rule 234: jump_statement ::= return ; // - case 263: { action. consumeToken(); break; + case 234: { action. consumeStatementReturn(false); break; } // - // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 235: jump_statement ::= goto identifier_token ; // - case 277: { action. consumeQualifiedId(false); break; + case 235: { action. consumeStatementGoto(); break; } // - // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 236: declaration_statement ::= block_declaration // - case 278: { action. consumeQualifiedId(false); break; + case 236: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 237: declaration_statement ::= function_definition // - case 279: { action. consumeQualifiedId(false); break; + case 237: { action. consumeStatementDeclaration(); break; } // - // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 245: declaration ::= ERROR_TOKEN // - case 280: { action. consumeQualifiedId(true); break; + case 245: { action. consumeDeclarationProblem(); break; } // - // Rule 282: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 255: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 282: { action. consumeTypeSpecifierElaborated(false); break; + case 255: { action. consumeDeclarationSimple(true); break; } // - // Rule 283: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 256: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 283: { action. consumeTypeSpecifierElaborated(true); break; + case 256: { action. consumeDeclarationSimple(true); break; } // - // Rule 284: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 257: declaration_specifiers ::= simple_declaration_specifiers // - case 284: { action. consumeTypeSpecifierElaborated(false); break; + case 257: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 288: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 258: declaration_specifiers ::= class_declaration_specifiers // - case 288: { action. consumeTypeSpecifierEnumeration(false); break; + case 258: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 289: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 259: declaration_specifiers ::= elaborated_declaration_specifiers // - case 289: { action. consumeTypeSpecifierEnumeration(true); break; + case 259: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 295: enumerator_definition ::= identifier_token + // Rule 260: declaration_specifiers ::= enum_declaration_specifiers // - case 295: { action. consumeEnumerator(false); break; + case 260: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 296: enumerator_definition ::= identifier_token = constant_expression + // Rule 261: declaration_specifiers ::= type_name_declaration_specifiers // - case 296: { action. consumeEnumerator(true); break; + case 261: { action. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 298: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } + // Rule 263: declaration_specifiers_opt ::= $Empty // - case 298: { action. consumeNamespaceDefinition(true); break; + case 263: { action. consumeEmpty(); break; } // - // Rule 299: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } + // Rule 267: no_type_declaration_specifier ::= friend // - case 299: { action. consumeNamespaceDefinition(false); break; + case 267: { action. consumeToken(); break; } // - // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 268: no_type_declaration_specifier ::= typedef // - case 301: { action. consumeNamespaceAliasDefinition(); break; + case 268: { action. consumeToken(); break; } // - // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 288: storage_class_specifier ::= auto // - case 302: { action. consumeUsingDeclaration(); break; + case 288: { action. consumeToken(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 289: storage_class_specifier ::= register // - case 303: { action. consumePlaceHolder(); break; + case 289: { action. consumeToken(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 290: storage_class_specifier ::= static // - case 304: { action. consumeEmpty(); break; + case 290: { action. consumeToken(); break; } // - // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 291: storage_class_specifier ::= extern // - case 305: { action. consumeUsingDirective(); break; + case 291: { action. consumeToken(); break; } // - // Rule 306: asm_definition ::= asm ( stringlit ) ; + // Rule 292: storage_class_specifier ::= mutable // - case 306: { action. consumeDeclarationASM(); break; + case 292: { action. consumeToken(); break; } // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 293: function_specifier ::= inline // - case 307: { action. consumeLinkageSpecification(); break; + case 293: { action. consumeToken(); break; } // - // Rule 308: linkage_specification ::= extern stringlit declaration + // Rule 294: function_specifier ::= virtual // - case 308: { action. consumeLinkageSpecification(); break; + case 294: { action. consumeToken(); break; } // - // Rule 314: init_declarator ::= complete_declarator initializer + // Rule 295: function_specifier ::= explicit // - case 314: { action. consumeDeclaratorWithInitializer(true); break; + case 295: { action. consumeToken(); break; } // - // Rule 317: declarator ::= ptr_operator_seq direct_declarator + // Rule 296: simple_type_specifier ::= simple_type_specifier_token // - case 317: { action. consumeDeclaratorWithPointer(true); break; + case 296: { action. consumeToken(); break; } // - // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 310: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 319: { action. consumeDeclaratorWithPointer(true); break; + case 310: { action. consumeQualifiedId(false); break; } // - // Rule 322: basic_direct_declarator ::= declarator_id_name + // Rule 311: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 322: { action. consumeDirectDeclaratorIdentifier(); break; + case 311: { action. consumeQualifiedId(false); break; } // - // Rule 323: basic_direct_declarator ::= ( declarator ) + // Rule 312: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 323: { action. consumeDirectDeclaratorBracketed(); break; + case 312: { action. consumeQualifiedId(false); break; } // - // Rule 324: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 313: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 324: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 313: { action. consumeQualifiedId(true); break; } // - // Rule 325: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 315: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 325: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 315: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 326: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 316: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 326: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 316: { action. consumeTypeSpecifierElaborated(true); break; } // - // Rule 327: array_modifier ::= [ constant_expression ] + // Rule 317: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 327: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 317: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 328: array_modifier ::= [ ] + // Rule 321: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 328: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 321: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 329: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 322: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 329: { action. consumePointer(); break; + case 322: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 330: ptr_operator ::= pointer_hook & pointer_hook + // Rule 328: enumerator_definition ::= identifier_token // - case 330: { action. consumeReferenceOperator(); break; + case 328: { action. consumeEnumerator(false); break; } // - // Rule 331: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 329: enumerator_definition ::= identifier_token = constant_expression // - case 331: { action. consumePointerToMember(); break; + case 329: { action. consumeEnumerator(true); break; } // - // Rule 338: cv_qualifier ::= const + // Rule 331: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } // - case 338: { action. consumeToken(); break; + case 331: { action. consumeNamespaceDefinition(true); break; } // - // Rule 339: cv_qualifier ::= volatile + // Rule 332: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } // - case 339: { action. consumeToken(); break; + case 332: { action. consumeNamespaceDefinition(false); break; } // - // Rule 341: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 334: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 341: { action. consumeQualifiedId(false); break; + case 334: { action. consumeNamespaceAliasDefinition(); break; } // - // Rule 342: type_id ::= type_specifier_seq + // Rule 335: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 342: { action. consumeTypeId(false); break; + case 335: { action. consumeUsingDeclaration(); break; } // - // Rule 343: type_id ::= type_specifier_seq abstract_declarator + // Rule 336: typename_opt ::= typename // - case 343: { action. consumeTypeId(true); break; + case 336: { action. consumePlaceHolder(); break; } // - // Rule 346: abstract_declarator ::= ptr_operator_seq + // Rule 337: typename_opt ::= $Empty // - case 346: { action. consumeDeclaratorWithPointer(false); break; + case 337: { action. consumeEmpty(); break; } // - // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 338: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 347: { action. consumeDeclaratorWithPointer(true); break; + case 338: { action. consumeUsingDirective(); break; } // - // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 339: asm_definition ::= asm ( stringlit ) ; // - case 351: { action. consumeDirectDeclaratorBracketed(); break; + case 339: { action. consumeDeclarationASM(); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( ) + // Rule 340: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 352: { action. consumeAbstractDeclaratorEmpty(); break; + case 340: { action. consumeLinkageSpecification(); break; } // - // Rule 353: array_direct_abstract_declarator ::= array_modifier + // Rule 341: linkage_specification ::= extern stringlit declaration // - case 353: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 341: { action. consumeLinkageSpecification(); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 347: init_declarator ::= complete_declarator initializer // - case 354: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 347: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 350: declarator ::= ptr_operator_seq direct_declarator // - case 355: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 350: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 352: function_declarator ::= ptr_operator_seq direct_declarator // - case 356: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 352: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 355: basic_direct_declarator ::= declarator_id_name // - case 357: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; + case 355: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 356: basic_direct_declarator ::= ( declarator ) // - case 358: { action. consumePlaceHolder(); break; + case 356: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 357: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 359: { action. consumeEmpty(); break; + case 357: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 358: array_direct_declarator ::= array_direct_declarator array_modifier // - case 360: { action. consumePlaceHolder(); break; + case 358: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 366: abstract_declarator_opt ::= $Empty + // Rule 359: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 366: { action. consumeEmpty(); break; + case 359: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 360: array_modifier ::= [ constant_expression ] // - case 367: { action. consumeParameterDeclaration(); break; + case 360: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers + // Rule 361: array_modifier ::= [ ] // - case 368: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 361: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 362: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 370: { action. consumeDeclaratorWithInitializer(true); break; + case 362: { action. consumePointer(); break; } // - // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 363: ptr_operator ::= pointer_hook & pointer_hook // - case 372: { action. consumeDeclaratorWithInitializer(true); break; + case 363: { action. consumeReferenceOperator(); break; } // - // Rule 373: parameter_init_declarator ::= = parameter_initializer + // Rule 364: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 373: { action. consumeDeclaratorWithInitializer(false); break; + case 364: { action. consumePointerToMember(); break; } // - // Rule 374: parameter_initializer ::= assignment_expression + // Rule 371: cv_qualifier ::= const // - case 374: { action. consumeInitializer(); break; + case 371: { action. consumeToken(); break; } // - // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 372: cv_qualifier ::= volatile // - case 375: { action. consumeFunctionDefinition(false); break; + case 372: { action. consumeToken(); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 374: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 376: { action. consumeFunctionDefinition(true); break; + case 374: { action. consumeQualifiedId(false); break; } // - // Rule 379: initializer ::= ( expression_list ) + // Rule 375: type_id ::= type_specifier_seq // - case 379: { action. consumeInitializerConstructor(); break; + case 375: { action. consumeTypeId(false); break; } // - // Rule 380: initializer_clause ::= assignment_expression + // Rule 376: type_id ::= type_specifier_seq abstract_declarator // - case 380: { action. consumeInitializer(); break; + case 376: { action. consumeTypeId(true); break; } // - // Rule 381: initializer_clause ::= initializer_list + // Rule 379: abstract_declarator ::= ptr_operator_seq // - case 381: { action. consumeInitializer(); break; + case 379: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 382: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // Rule 380: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 382: { action. consumeInitializerList(); break; + case 380: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 383: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // Rule 384: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 383: { action. consumeInitializerList(); break; + case 384: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 384: initializer_list ::= { } + // Rule 385: basic_direct_abstract_declarator ::= ( ) // - case 384: { action. consumeInitializerList(); break; + case 385: { action. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 385: start_initializer_list ::= $Empty + // Rule 386: array_direct_abstract_declarator ::= array_modifier // - case 385: { action. initializerListStart(); break; + case 386: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 386: end_initializer_list ::= $Empty + // Rule 387: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 386: { action. initializerListEnd(); break; + case 387: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 391: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 388: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 391: { action. consumeClassSpecifier(); break; + case 388: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 392: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // Rule 389: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 392: { action. consumeClassHead(false); break; + case 389: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 393: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // Rule 390: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 393: { action. consumeClassHead(false); break; + case 390: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 394: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // Rule 391: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 394: { action. consumeClassHead(true); break; + case 391: { action. consumePlaceHolder(); break; } // - // Rule 395: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // Rule 392: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 395: { action. consumeClassHead(true); break; + case 392: { action. consumeEmpty(); break; } // - // Rule 399: identifier_name_opt ::= $Empty + // Rule 393: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 393: { action. consumePlaceHolder(); break; + } + + // + // Rule 399: abstract_declarator_opt ::= $Empty // case 399: { action. consumeEmpty(); break; + } + + // + // Rule 400: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 400: { action. consumeParameterDeclaration(); break; + } + + // + // Rule 401: parameter_declaration ::= declaration_specifiers + // + case 401: { action. consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // Rule 403: parameter_init_declarator ::= declarator = parameter_initializer + // + case 403: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 405: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 405: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 406: parameter_init_declarator ::= = parameter_initializer + // + case 406: { action. consumeDeclaratorWithInitializer(false); break; + } + + // + // Rule 407: parameter_initializer ::= assignment_expression + // + case 407: { action. consumeInitializer(); break; + } + + // + // Rule 408: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // + case 408: { action. consumeFunctionDefinition(false); break; + } + + // + // Rule 409: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // + case 409: { action. consumeFunctionDefinition(true); break; + } + + // + // Rule 412: initializer ::= ( expression_list ) + // + case 412: { action. consumeInitializerConstructor(); break; + } + + // + // Rule 413: initializer_clause ::= assignment_expression + // + case 413: { action. consumeInitializer(); break; + } + + // + // Rule 414: initializer_clause ::= initializer_list + // + case 414: { action. consumeInitializer(); break; + } + + // + // Rule 415: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // + case 415: { action. consumeInitializerList(); break; + } + + // + // Rule 416: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // + case 416: { action. consumeInitializerList(); break; + } + + // + // Rule 417: initializer_list ::= { } + // + case 417: { action. consumeInitializerList(); break; + } + + // + // Rule 418: start_initializer_list ::= $Empty + // + case 418: { action. initializerListStart(); break; + } + + // + // Rule 419: end_initializer_list ::= $Empty + // + case 419: { action. initializerListEnd(); break; + } + + // + // Rule 424: class_specifier ::= class_head { member_declaration_list_opt } + // + case 424: { action. consumeClassSpecifier(); break; + } + + // + // Rule 425: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // + case 425: { action. consumeClassHead(false); break; + } + + // + // Rule 426: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // + case 426: { action. consumeClassHead(false); break; + } + + // + // Rule 427: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // + case 427: { action. consumeClassHead(true); break; + } + + // + // Rule 428: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // + case 428: { action. consumeClassHead(true); break; + } + + // + // Rule 432: identifier_name_opt ::= $Empty + // + case 432: { action. consumeEmpty(); break; } // - // Rule 403: visibility_label ::= access_specifier_keyword : + // Rule 436: visibility_label ::= access_specifier_keyword : // - case 403: { action. consumeVisibilityLabel(); break; + case 436: { action. consumeVisibilityLabel(); break; } // - // Rule 404: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 437: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 404: { action. consumeDeclarationSimple(true); break; + case 437: { action. consumeDeclarationSimple(true); break; } // - // Rule 405: member_declaration ::= declaration_specifiers_opt ; + // Rule 438: member_declaration ::= declaration_specifiers_opt ; // - case 405: { action. consumeDeclarationSimple(false); break; + case 438: { action. consumeDeclarationSimple(false); break; } // - // Rule 408: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 441: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 408: { action. consumeMemberDeclarationQualifiedId(); break; + case 441: { action. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 414: member_declaration ::= ERROR_TOKEN + // Rule 447: member_declaration ::= ERROR_TOKEN // - case 414: { action. consumeDeclarationProblem(); break; + case 447: { action. consumeDeclarationProblem(); break; } // - // Rule 423: member_declarator ::= declarator constant_initializer + // Rule 456: member_declarator ::= declarator constant_initializer // - case 423: { action. consumeMemberDeclaratorWithInitializer(); break; + case 456: { action. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 424: member_declarator ::= bit_field_declarator : constant_expression + // Rule 457: member_declarator ::= bit_field_declarator : constant_expression // - case 424: { action. consumeBitField(true); break; + case 457: { action. consumeBitField(true); break; } // - // Rule 425: member_declarator ::= : constant_expression + // Rule 458: member_declarator ::= : constant_expression // - case 425: { action. consumeBitField(false); break; + case 458: { action. consumeBitField(false); break; } // - // Rule 426: bit_field_declarator ::= identifier_name + // Rule 459: bit_field_declarator ::= identifier_name // - case 426: { action. consumeDirectDeclaratorIdentifier(); break; + case 459: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 427: constant_initializer ::= = constant_expression + // Rule 460: constant_initializer ::= = constant_expression // - case 427: { action. consumeInitializer(); break; + case 460: { action. consumeInitializer(); break; } // - // Rule 433: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 466: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 433: { action. consumeBaseSpecifier(false, false); break; + case 466: { action. consumeBaseSpecifier(false, false); break; } // - // Rule 434: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 467: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 434: { action. consumeBaseSpecifier(true, true); break; + case 467: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 435: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 468: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 435: { action. consumeBaseSpecifier(true, true); break; + case 468: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 436: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 469: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 436: { action. consumeBaseSpecifier(true, false); break; + case 469: { action. consumeBaseSpecifier(true, false); break; } // - // Rule 437: access_specifier_keyword ::= private + // Rule 470: access_specifier_keyword ::= private // - case 437: { action. consumeToken(); break; + case 470: { action. consumeToken(); break; } // - // Rule 438: access_specifier_keyword ::= protected + // Rule 471: access_specifier_keyword ::= protected // - case 438: { action. consumeToken(); break; + case 471: { action. consumeToken(); break; } // - // Rule 439: access_specifier_keyword ::= public + // Rule 472: access_specifier_keyword ::= public // - case 439: { action. consumeToken(); break; + case 472: { action. consumeToken(); break; } // - // Rule 441: access_specifier_keyword_opt ::= $Empty + // Rule 474: access_specifier_keyword_opt ::= $Empty // - case 441: { action. consumeEmpty(); break; + case 474: { action. consumeEmpty(); break; } // - // Rule 443: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 476: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 443: { action. consumeTemplateId(); break; + case 476: { action. consumeTemplateId(); break; } // - // Rule 444: conversion_function_id ::= operator conversion_type_id + // Rule 477: conversion_function_id ::= operator conversion_type_id // - case 444: { action. consumeConversionName(); break; + case 477: { action. consumeConversionName(); break; } // - // Rule 445: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 478: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 445: { action. consumeTypeId(true); break; + case 478: { action. consumeTypeId(true); break; } // - // Rule 446: conversion_type_id ::= type_specifier_seq + // Rule 479: conversion_type_id ::= type_specifier_seq // - case 446: { action. consumeTypeId(false); break; + case 479: { action. consumeTypeId(false); break; } // - // Rule 447: conversion_declarator ::= ptr_operator_seq + // Rule 480: conversion_declarator ::= ptr_operator_seq // - case 447: { action. consumeDeclaratorWithPointer(false); break; + case 480: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 453: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 486: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 453: { action. consumeConstructorChainInitializer(); break; + case 486: { action. consumeConstructorChainInitializer(); break; } // - // Rule 454: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 487: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 454: { action. consumeQualifiedId(false); break; + case 487: { action. consumeQualifiedId(false); break; } // - // Rule 457: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 490: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 457: { action. consumeTemplateId(); break; + case 490: { action. consumeTemplateId(); break; } // - // Rule 458: operator_id_name ::= operator overloadable_operator + // Rule 491: operator_id_name ::= operator overloadable_operator // - case 458: { action. consumeOperatorName(); break; + case 491: { action. consumeOperatorName(); break; } // - // Rule 501: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 534: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 501: { action. consumeTemplateDeclaration(); break; + case 534: { action. consumeTemplateDeclaration(); break; } // - // Rule 502: export_opt ::= export + // Rule 535: export_opt ::= export // - case 502: { action. consumePlaceHolder(); break; + case 535: { action. consumePlaceHolder(); break; } // - // Rule 503: export_opt ::= $Empty + // Rule 536: export_opt ::= $Empty // - case 503: { action. consumeEmpty(); break; + case 536: { action. consumeEmpty(); break; } // - // Rule 507: template_parameter ::= parameter_declaration + // Rule 540: template_parameter ::= parameter_declaration // - case 507: { action. consumeTemplateParamterDeclaration(); break; + case 540: { action. consumeTemplateParamterDeclaration(); break; } // - // Rule 508: type_parameter ::= class identifier_name_opt + // Rule 541: type_parameter ::= class identifier_name_opt // - case 508: { action. consumeSimpleTypeTemplateParameter(false); break; + case 541: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 509: type_parameter ::= class identifier_name_opt = type_id + // Rule 542: type_parameter ::= class identifier_name_opt = type_id // - case 509: { action. consumeSimpleTypeTemplateParameter(true); break; + case 542: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 510: type_parameter ::= typename identifier_name_opt + // Rule 543: type_parameter ::= typename identifier_name_opt // - case 510: { action. consumeSimpleTypeTemplateParameter(false); break; + case 543: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 511: type_parameter ::= typename identifier_name_opt = type_id + // Rule 544: type_parameter ::= typename identifier_name_opt = type_id // - case 511: { action. consumeSimpleTypeTemplateParameter(true); break; + case 544: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 512: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 545: type_parameter ::= template < template_parameter_list > class identifier_name_opt // - case 512: { action. consumeTemplatedTypeTemplateParameter(false); break; + case 545: { action. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 513: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 546: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 513: { action. consumeTemplatedTypeTemplateParameter(true); break; + case 546: { action. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 514: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 547: template_id_name ::= identifier_name < template_argument_list_opt > // - case 514: { action. consumeTemplateId(); break; + case 547: { action. consumeTemplateId(); break; } // - // Rule 519: template_argument ::= assignment_expression + // Rule 554: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 519: { action. consumeTemplateArgumentExpression(); break; + case 554: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 520: template_argument ::= type_id + // Rule 555: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: // - case 520: { action. consumeTemplateArgumentTypeId(); break; + case 555: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 521: explicit_instantiation ::= template declaration + // Rule 556: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 521: { action. consumeTemplateExplicitInstantiation(); break; + case 556: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 522: explicit_specialization ::= template < > declaration + // Rule 557: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: // - case 522: { action. consumeTemplateExplicitSpecialization(); break; + case 557: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 523: try_block ::= try compound_statement handler_seq + // Rule 558: class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate // - case 523: { action. consumeStatementTryBlock(true); break; + case 558: { action. consumeNameWithTemplateKeyword(); break; } // - // Rule 524: try_block ::= try compound_statement + // Rule 560: nested_name_specifier_opt_inTemplate ::= $Empty // - case 524: { action. consumeStatementTryBlock(false); break; + case 560: { action. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 527: handler ::= catch ( exception_declaration ) compound_statement + // Rule 563: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name // - case 527: { action. consumeStatementCatchHandler(false); break; + case 563: { action. consumeQualifiedId(false); break; } // - // Rule 528: handler ::= catch ( ... ) compound_statement + // Rule 564: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 528: { action. consumeStatementCatchHandler(true); break; + case 564: { action. consumeQualifiedId(true); break; } // - // Rule 529: exception_declaration ::= type_specifier_seq declarator + // Rule 569: declaration_specifiers_inTemplate ::= simple_declaration_specifiers // - case 529: { action. consumeDeclarationSimple(true); break; + case 569: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 530: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 570: declaration_specifiers_inTemplate ::= class_declaration_specifiers // - case 530: { action. consumeDeclarationSimple(true); break; + case 570: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 531: exception_declaration ::= type_specifier_seq + // Rule 571: declaration_specifiers_inTemplate ::= elaborated_declaration_specifiers // - case 531: { action. consumeDeclarationSimple(false); break; + case 571: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 533: exception_specification ::= throw ( ) + // Rule 572: declaration_specifiers_inTemplate ::= enum_declaration_specifiers // - case 533: { action. consumePlaceHolder(); break; + case 572: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 539: no_function_declarator_start ::= ERROR_TOKEN + // Rule 573: declaration_specifiers_inTemplate ::= type_name_declaration_specifiers_inTemplate // - case 539: { action. consumeEmpty(); break; + case 573: { action. consumeDeclarationSpecifiersTypeName(); break; + } + + // + // Rule 575: type_id_inTemplate ::= type_specifier_seq_inTemplate + // + case 575: { action. consumeTypeId(false); break; + } + + // + // Rule 576: type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator + // + case 576: { action. consumeTypeId(true); break; + } + + // + // Rule 577: template_argument ::= assignment_expression_inTemplate + // + case 577: { action. consumeTemplateArgumentExpression(); break; + } + + // + // Rule 578: template_argument ::= type_id_inTemplate + // + case 578: { action. consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 579: explicit_instantiation ::= template declaration + // + case 579: { action. consumeTemplateExplicitInstantiation(); break; + } + + // + // Rule 580: explicit_specialization ::= template < > declaration + // + case 580: { action. consumeTemplateExplicitSpecialization(); break; + } + + // + // Rule 581: try_block ::= try compound_statement handler_seq + // + case 581: { action. consumeStatementTryBlock(true); break; + } + + // + // Rule 582: try_block ::= try compound_statement + // + case 582: { action. consumeStatementTryBlock(false); break; + } + + // + // Rule 585: handler ::= catch ( exception_declaration ) compound_statement + // + case 585: { action. consumeStatementCatchHandler(false); break; + } + + // + // Rule 586: handler ::= catch ( ... ) compound_statement + // + case 586: { action. consumeStatementCatchHandler(true); break; + } + + // + // Rule 587: exception_declaration ::= type_specifier_seq declarator + // + case 587: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 588: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 588: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 589: exception_declaration ::= type_specifier_seq + // + case 589: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 591: exception_specification ::= throw ( ) + // + case 591: { action. consumePlaceHolder(); break; + } + + // + // Rule 597: no_function_declarator_start ::= ERROR_TOKEN + // + case 597: { action. consumeEmpty(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java index 6768db3407b..04277692d27 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java @@ -51,487 +51,629 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 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,2,1,3,1, - 0,1,0,1,1,0,1,1,1,1, - 1,1,1,1,1,3,4,3,2,1, - 4,2,1,2,5,7,5,1,4,1, - 0,5,7,2,8,1,1,2,2,3, - 2,3,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2,1, - 0,4,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,3,5,3,3,1,3,3,1,3, + 1,3,1,3,1,3,1,3,1,5, + 1,1,3,3,3,3,3,3,3,3, + 3,3,3,1,2,1,1,3,3,3, + 3,3,3,3,3,3,3,3,1,2, + 1,3,1,0,1,0,1,1,0,1, + 1,1,1,1,1,1,1,1,3,4, + 3,2,1,4,2,1,2,5,7,5, + 1,4,1,0,5,7,2,8,1,1, + 2,2,3,2,3,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, - 2,5,6,5,0,1,0,7,8,0, - 1,3,1,0,1,3,1,7,6,0, - 7,6,1,0,6,5,6,4,1,3, - 1,0,1,2,1,1,3,1,3,1, - 1,1,3,9,2,2,3,2,5,3, - 7,0,1,2,2,1,0,1,1,1, - 3,1,2,1,1,2,3,1,1,1, - 3,2,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, - 1,7,6,3,0,0,1,3,1,1, - 5,6,6,7,7,0,0,1,0,1, - 1,1,2,4,2,2,1,5,1,1, - 1,1,1,1,1,2,1,0,1,3, - 1,1,2,3,2,1,2,2,1,0, - 1,3,3,5,5,4,1,1,1,1, - 0,1,5,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,2,1,0,4,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,3, + 4,4,5,2,5,6,5,0,1,0, + 7,8,0,1,3,1,0,1,3,1, + 7,6,0,7,6,1,0,6,5,6, + 4,1,3,1,0,1,2,1,1,3, + 1,3,1,1,1,3,9,2,2,3, + 2,5,3,7,0,1,2,2,1,0, + 1,1,1,3,1,2,1,1,2,3, + 1,1,1,3,2,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,1,7,6,3,0,0,1, + 3,1,1,5,6,6,7,7,0,0, + 1,0,1,1,1,2,4,2,2,1, + 5,1,1,1,1,1,1,1,2,1, + 0,1,3,1,1,2,3,2,1,2, + 2,1,0,1,3,3,5,5,4,1, + 1,1,1,0,1,5,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,2,2, - 7,1,0,1,3,1,1,2,4,2, - 4,7,9,5,1,3,1,0,1,1, - 2,4,4,2,1,2,5,5,3,3, - 1,4,3,1,0,1,3,1,1,1, - -110,0,0,0,-259,0,0,0,0,0, + 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,3,1, + 0,1,1,3,2,3,2,2,1,0, + 1,1,4,5,2,1,2,2,2,2, + 2,2,2,1,1,2,1,1,2,4, + 4,2,1,2,5,5,3,3,1,4, + 3,1,0,1,3,1,1,1,-110,0, + 0,0,0,-2,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,-73,0,-276,0,0,0,0,0,-13, - -21,0,0,0,0,-116,0,0,0,-2, - 0,0,0,0,0,0,0,0,-131,0, + 0,0,0,0,0,-7,-13,0,-8,0, + 0,0,0,0,0,-11,0,-19,0,0, + -10,0,0,0,0,-14,-448,0,0,0, + 0,-280,0,0,-5,0,0,0,0,0, + 0,0,0,0,0,0,0,-93,-27,0, + 0,0,-245,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,-10,0, - 0,0,-122,0,0,0,0,0,0,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,-117,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -261,0,0,-152,-3,0,-397,0,0,0, + 0,0,0,0,0,0,0,0,0,-28, + -88,0,0,0,0,0,-29,0,0,0, + 0,0,-30,-106,-271,0,0,0,0,0, + -112,0,0,-33,0,0,-34,0,0,0, + -343,0,0,0,0,0,0,0,0,-533, + 0,0,0,0,-440,0,0,0,0,0, + 0,0,0,0,0,0,0,-199,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, - 0,0,0,0,0,0,-7,0,0,0, - 0,0,-249,0,0,0,0,0,-178,0, - -4,-78,-88,0,0,0,0,0,0,0, - -14,-77,0,0,0,0,0,0,0,0, + 0,-25,0,-449,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-41,0,-35, + 0,0,0,-325,0,0,0,0,0,-3, + 0,0,0,-98,0,0,0,0,0,0, + 0,0,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,0,0,0, - 0,0,0,0,-8,0,0,0,0,0, - 0,0,0,0,-239,0,0,0,-11,0, - -19,0,0,0,0,0,0,0,-542,0, - 0,0,-27,0,0,0,0,0,0,0, - 0,-28,-112,0,0,-158,0,0,0,0, - 0,-92,0,0,0,0,0,0,0,0, + 0,0,0,-6,0,0,0,0,0,0, + 0,0,0,0,-20,-237,0,0,0,0, + 0,0,-15,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-94, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-169,0,0,0,0,-21,-486, + 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,0,-35,0,0,0,-219,0,0,0, - 0,-293,0,0,0,0,0,0,-188,0, - 0,0,0,0,-29,0,0,0,-171,0, - 0,0,-30,0,0,0,0,0,0,0, + 0,0,-318,0,-118,-263,0,0,0,0, + 0,0,0,0,-328,0,0,0,-346,0, + -23,0,0,0,0,0,-40,0,-42,0, + -90,0,0,0,0,0,0,0,0,0, + -182,0,0,0,0,-194,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-22, + 0,0,0,0,0,0,0,-521,0,0, + 0,0,-203,0,0,0,0,0,0,-46, + 0,0,0,0,-327,0,0,-319,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-222,0,0,0,-274,0,0, - -50,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-220,0,0,0, + 0,0,0,0,0,-315,0,0,0,-17, + 0,0,0,0,-43,0,0,0,0,0, + 0,0,0,0,0,0,0,-261,0,0, 0,0,0,0,0,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,-31,0,0,0,0,-46,0,0,-33, - -15,0,0,0,0,0,0,0,-277,0, + 0,0,0,0,0,0,0,-44,-600,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-106, - 0,-34,0,0,0,0,0,-475,0,0, - 0,0,-5,0,0,0,0,0,0,0, - 0,0,0,0,0,-350,0,-223,0,0, - 0,-16,0,0,0,0,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,-118,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-231,0,0, - 0,-74,-6,0,0,0,-40,0,0,0, - 0,0,0,0,0,0,0,0,-38,0, - 0,0,-42,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,-83,0,0,0,0,-43,0, - 0,-194,0,0,0,-429,0,0,0,0, - 0,0,0,0,0,-362,0,0,0,0, - 0,-325,0,0,0,-81,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-44,0,0,0,0,0, - 0,0,-45,0,-75,0,-192,0,0,0, - 0,-90,0,0,-366,0,0,0,0,0, + 0,-274,0,0,0,0,0,0,0,0, + 0,0,0,-331,0,0,0,0,0,0, 0,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,-47,0,0, - 0,0,0,0,0,0,0,-367,0,0, - 0,-80,0,0,0,0,0,0,0,0, + -189,0,0,-26,0,0,0,0,0,0, + -37,0,0,0,0,0,-352,0,0,0, + -22,-31,0,0,-152,0,0,0,-473,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-39,-32,0,0,0,0,-16,0, 0,0,0,0,0,0,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,-218,0,0,0,0,0, + -290,0,0,0,0,0,0,-172,0,0, + 0,0,0,-395,0,-51,0,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,-256,0,0,0,-60, - 0,-238,0,0,0,-61,0,0,0,-98, - -70,0,0,0,0,0,0,0,0,0, + 0,-38,0,0,0,0,-45,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-233,0,0,0,0,0,0, - 0,0,0,0,0,-408,0,0,0,0, - 0,0,0,-139,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-47, + 0,0,0,0,0,0,0,0,-59,0, + -60,0,0,-272,0,0,0,0,-122,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,-382,0,0,0, + 0,-61,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-537,0,0,0,0,-512,0, + 0,0,0,-313,0,-91,0,0,-279,0, + 0,0,0,-366,-424,0,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,0,-62,0,-389,0,0,0, - 0,0,0,0,0,0,-140,0,0,0, + 0,-85,0,0,0,0,-73,0,0,0, + 0,-81,0,0,0,0,-505,0,0,0, + 0,-425,0,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,-257, - 0,0,0,0,0,0,0,-99,0,0, - 0,0,0,0,0,-162,0,0,0,-141, + 0,0,0,0,0,0,0,0,0,-230, + 0,-63,0,0,0,0,0,0,0,0, + 0,0,0,-329,0,0,0,0,0,-64, + 0,-36,0,0,0,0,-65,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-224,0,0,0,0,0,0,0, - -154,0,-418,0,0,0,0,0,0,-91, - 0,0,-142,0,0,0,0,0,0,0, + 0,0,0,-577,0,0,0,0,0,0, + 0,0,0,-70,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-63,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -379,-411,0,-74,0,0,0,0,0,0, + 0,0,-75,0,0,0,0,-173,0,0, + -344,0,0,0,0,0,0,-229,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,-357,0,0,0, + 0,0,0,0,0,0,0,0,-66,0, + 0,-508,0,0,0,0,-140,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 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,-541,0, + 0,0,0,-141,0,0,0,0,-370,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-67,0,-68,0,-154,0,0,0,0, + 0,0,-69,0,0,-542,0,0,0,0, + -142,0,0,0,0,-417,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -71,0,-170,0,0,0,0,0,0,0, + 0,0,-349,0,0,0,0,-143,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,-420,0,0,-96,0,-466, + 0,0,0,0,0,0,-97,0,0,-350, + 0,0,0,0,-144,0,0,0,0,-115, + 0,0,0,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,-153,0,0,-368,0,0,0, + 0,-145,0,0,0,0,-576,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-269,-95, + 0,0,0,0,0,0,0,0,-268,0, + -155,0,0,-389,0,0,0,0,-146,0, 0,0,0,-159,0,0,0,0,0,0, - 0,-227,-95,0,0,-143,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-160,0,-161,0, + 0,0,0,0,0,-162,0,-163,0,0, + -398,0,0,0,0,-147,0,0,0,0, + -164,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-299,0,-480,0, - 0,0,0,0,0,-343,0,0,-144,0, + 0,0,0,-165,0,-166,0,-455,0,0, + 0,0,-167,0,-360,0,0,0,0,-107, + -108,0,-148,0,0,0,0,-548,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,0,0,0,0,0,0,-64,0,0, - 0,-145,0,0,0,0,0,0,0,0, + 0,0,-430,0,-284,0,0,0,0,0, + 0,0,0,0,-356,-367,-183,-273,0,-149, + 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,-177,0,-265, + 0,-391,0,0,0,0,0,0,-297,0, + 0,-474,0,0,-184,0,-181,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-316,0,-534,0,-161,0,0,0, - -65,0,0,0,-146,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-399,0,0, - 0,0,0,0,0,-66,0,0,0,-163, - 0,0,0,-67,0,0,0,-147,0,0, + 0,0,0,0,0,0,-178,0,-289,0, + 0,0,0,0,0,-179,0,0,0,0, + -414,-185,0,-248,0,0,0,0,-186,0, 0,0,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,-228,0, - -535,0,0,0,0,0,-68,-190,0,0, - -148,0,0,0,0,0,0,0,0,0, + 0,0,0,-570,0,0,0,0,0,0, + 0,0,0,0,0,0,-79,-113,0,0, + 0,-187,0,-286,0,0,0,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,0,-268,0,0,0,0,0,0, - 0,-243,0,0,0,0,0,0,0,-69, - -198,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,-201,0,0,0, + 0,0,0,-399,0,0,0,0,0,0, + 0,0,0,0,0,-311,0,0,0,0, + -447,0,0,0,0,0,0,-415,-476,0, + 0,0,0,0,0,-250,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,-71,0,-26,0,0,0, - 0,0,-479,0,0,0,-170,0,0,0, + 0,0,0,-190,0,-116,0,0,0,0, + 0,0,0,0,0,0,0,0,-231,-209, + 0,-454,0,-188,-294,0,0,-321,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-251,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,-96,0,-37, - 0,0,0,0,0,-97,-348,0,0,-254, + 0,0,0,0,0,0,0,0,-196,0, + 0,-117,0,0,0,0,0,0,0,0, + 0,0,0,0,-80,-418,0,-197,0,0, + 0,0,0,0,0,-322,0,-504,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,0, + 0,0,0,0,0,0,0,-205,0,0, 0,0,0,0,0,0,0,0,0,0, - -115,0,-107,0,-454,0,0,0,-153,-155, - 0,0,-537,0,0,0,-156,0,0,0, + -82,0,0,0,0,0,0,0,-538,-446, + 0,0,0,0,-434,0,-198,-330,0,0, + 0,0,0,-253,0,0,0,0,-208,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-248,0,-108,0,0,0,0, - 0,-157,-113,0,0,-351,0,0,0,-313, + 0,0,0,-207,0,0,0,0,0,0, + 0,0,0,0,0,0,-84,-355,0,0, + 0,0,0,0,0,-210,0,0,0,-351, + -517,0,0,-211,0,0,0,0,0,-254, + 0,0,0,0,-282,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-212,0,0,-445, + 0,0,0,-457,0,0,0,0,0,0, + 0,0,0,0,0,-213,0,0,0,0, + -86,-214,0,0,0,-482,-423,0,-592,0, + 0,0,0,0,0,-255,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,0,0,0,0,0,-255,0,-183,0, - 0,0,0,0,-361,0,0,0,-184,0, + 0,0,0,-477,0,0,0,-463,0,-296, + 0,0,0,0,0,-489,0,0,-232,-9, + 0,-470,0,0,0,0,-233,-215,0,-408, + 0,0,0,0,0,-435,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,0,0,0,0,0, - 0,0,0,0,0,-519,0,0,0,0, - 0,0,0,-390,0,0,-419,0,0,0, - 0,-374,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-323,-544,0,-216,0, + 0,-4,-291,0,-217,0,0,0,0,0, + 0,0,-234,-373,0,0,0,0,0,0, + -593,-218,0,0,0,0,0,-257,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,0,0, - -392,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-324,0,0,-338,0,0, + -326,0,0,0,-361,0,-219,0,-364,0, + -235,0,0,0,0,-347,0,-394,-401,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-258,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-270,0,0,0,0,0,0,0,-275, - 0,0,0,-428,0,0,0,-393,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-345,-442,0,0,-220,-221,0, + -222,0,-293,0,0,0,-459,-223,0,-365, + 0,0,0,0,0,0,0,0,0,-224, + 0,-225,0,0,0,0,0,0,0,-295, 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,-466,0,0,0, + 0,0,0,0,0,0,-381,0,0,0, + 0,0,0,0,0,0,-226,0,-227,0, + 0,-171,0,0,0,0,-354,0,0,0, + 0,-353,0,0,0,0,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,0,0,0,-272,0,-167, - 0,0,0,0,0,0,0,0,-168,-447, - 0,0,0,-151,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-228,-443, + 0,0,0,0,0,0,-238,-375,-266,-390, + -400,0,-403,0,0,0,-433,0,-405,0, + -484,0,-275,0,0,0,0,0,0,0, + 0,0,-595,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-377,0,0,0, - 0,0,0,0,0,0,-23,0,-174,0, - 0,-175,-138,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-413, + -540,0,-276,0,0,0,0,0,0,-428, + 0,-462,0,0,0,-590,-376,-377,0,-409, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-176,0,-172,0,-136,0,0, - 0,-173,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-277,0, + 0,0,0,0,0,0,-278,0,-300,0, + 0,-419,0,0,0,0,-301,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -179,0,0,0,0,0,0,0,0,0, - -137,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-545,0, + 0,-302,0,-437,0,0,0,0,0,0, + -458,0,0,-303,0,0,0,0,0,-304, + -475,-305,-306,-180,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,-133,0,0,0,0,0,0,0,0, + 0,0,0,0,-307,0,0,-308,0,0, + 0,0,0,0,-309,0,0,0,0,-450, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-376,0,0,0,0,0, - 0,-134,0,0,0,-177,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-490,0,0,0,0,0, - -135,0,0,0,-185,0,0,0,0,0, + 0,0,0,0,0,0,-579,0,0,-310, + 0,-488,0,0,0,0,0,0,-485,0, + 0,-491,0,-492,0,-109,0,-314,-316,-317, + 0,-176,0,0,0,-451,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-186,0,0,0,0,0,-127, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-336,-337,0,-499,0,0, + 0,0,0,0,-339,0,0,-524,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-388,0,0,0,0,-128,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,-129,0,0,0,-245, + 0,0,0,0,0,-378,-341,-348,0,-380, + 0,0,0,0,0,0,-495,0,0,-358, + 0,-359,-502,0,0,0,0,0,-363,0, + -515,-371,-526,0,-372,0,0,0,0,-158, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-130,0,0,0,-187,0,0, + 0,0,0,0,0,0,0,0,-507,0, + -416,0,-562,0,0,-535,0,0,-563,-536, + 0,-374,-383,0,0,-388,-151,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-297,0,0,0, - 0,-409,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-24,0,0,0,-199, - 0,-240,-18,0,0,0,0,-304,0,0, - -365,0,-286,0,0,0,0,0,0,0, - 0,0,0,0,0,-253,-94,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-264,0,-303,0,0,0,0,0,-337, - -292,0,-200,0,0,0,0,0,-341,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-334,-307, - 0,0,0,0,0,0,0,0,0,-201, - 0,0,0,0,0,0,-446,0,0,0, - -202,0,-417,0,0,0,0,0,0,-79, - 0,0,-309,0,0,0,0,0,-290,0, - 0,0,0,0,-298,0,-385,0,-387,0, - 0,0,-203,-310,0,0,0,0,0,0, - -204,0,0,0,0,0,0,0,-132,0, - 0,0,-205,0,0,0,0,0,0,0, + 0,0,0,-421,0,-260,0,0,0,0, + -546,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-305,0,0,0,0, - 0,0,0,0,0,0,0,0,-182,0, - 0,0,0,0,0,0,0,-288,0,0, - -206,0,-328,0,0,0,0,0,0,0, - 0,0,0,0,0,-295,0,0,0,0, - 0,0,0,0,0,0,-230,0,0,-384, - 0,0,-396,0,0,0,0,0,0,0, - -12,0,0,0,0,0,-196,0,0,0, - 0,0,0,0,0,0,0,0,0,-300, - 0,0,-207,0,0,0,0,-445,0,0, - 0,0,-415,0,0,0,-356,0,0,0, - 0,0,0,0,0,0,0,0,-9,-434, - 0,0,0,0,0,0,0,-181,0,-208, - 0,0,0,0,0,0,0,0,-405,-191, - 0,0,-193,0,0,0,0,-209,0,0, - 0,0,0,-498,0,-464,-357,0,0,0, - -532,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,-402,0,-416, - 0,0,0,0,0,0,0,-210,0,-271, + 0,0,-387,0,-342,-431,-573,0,-582,0, + 0,0,-384,0,-392,-396,-567,-397,-410,0, + 0,0,0,-412,-429,-438,-441,-453,0,0, + 0,0,-468,0,0,-422,0,0,-138,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-308,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -123,0,0,0,-211,0,0,0,0,0, + 0,0,0,0,0,0,-369,0,0,0, + -469,0,0,0,0,-247,0,0,0,0, + -461,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-473,0,0,-401,0,-197,-169, - 0,0,0,-212,0,-213,-394,0,0,-93, - 0,-214,-412,-232,0,0,0,0,0,-241, - -450,0,0,0,0,-72,0,0,0,0, - -215,0,0,0,0,0,0,-482,0,-216, - 0,0,0,0,0,0,0,0,0,-493, - 0,-217,0,0,0,0,0,0,0,0, + 0,0,0,-471,0,-472,0,-478,-480,0, + 0,-493,-500,-501,-511,-523,-525,-527,-528,-559, + 0,-560,0,-529,0,0,0,-530,0,0, + 0,-136,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-225,0,-250,0,0,0,-234, - 0,-89,0,0,0,0,-324,-101,0,0, + 0,0,0,0,0,0,0,0,0,-532, + 0,-547,0,-549,0,0,0,-137,0,0, + 0,0,-550,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-495,0,-333,0,0, + 0,0,0,0,-552,-557,-565,-586,0,-481, + 0,0,-246,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-375,0,0,-235,0,-32, - 0,0,0,0,0,0,0,-160,0,0, - 0,0,-236,0,0,0,0,0,0,-237, - 0,0,0,0,0,-404,0,0,0,0, - 0,-510,0,-260,0,0,-85,-165,0,0, 0,0,0,0,0,0,0,0,0,0, - -431,0,0,-262,0,-483,0,0,0,-263, - -282,-283,0,-189,0,0,0,-285,-287,-294, - 0,0,0,-439,0,0,-284,0,0,0, - 0,-301,0,0,0,0,0,-525,0,-302, - 0,0,-521,0,0,0,0,0,0,0, + -561,0,-566,0,0,0,0,-574,-598,-584, + -603,-591,-596,0,0,0,0,0,-494,0, + -133,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-296,0,0,0,-291,0,0,0,-195, - 0,0,0,0,-342,-345,0,0,0,0, - 0,-306,-318,0,0,0,0,-319,0,0, - 0,0,0,-527,0,-314,-82,0,0,-484, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-109,-273,0, - 0,0,-315,-317,0,-226,0,0,0,0, - -326,-102,0,0,0,0,0,-312,0,0, - 0,0,0,-320,0,0,0,0,0,-531, - 0,0,-327,0,0,0,0,-321,0,0, - 0,0,0,0,0,0,0,0,-426,0, - 0,0,0,0,-476,-335,0,0,0,-331, - 0,0,0,0,-339,0,-424,0,0,0, - 0,0,0,0,-340,-347,0,0,0,0, - 0,0,0,0,0,0,0,-352,0,0, + 0,0,-539,0,-242,0,0,0,0,-564, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-536,0,0,0,0,0, - 0,0,0,0,0,0,0,-124,0,0, 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,0,-346,0,0,0, - -363,-355,-330,0,0,0,0,-84,-354,-427, - -86,-543,0,0,0,0,0,0,0,-371, - -370,-437,0,0,0,0,0,0,-364,0, - 0,0,-380,0,0,-379,0,0,-329,0, - 0,0,0,0,-383,0,0,0,0,-395, - 0,0,0,0,0,-410,0,-463,0,0, - 0,0,0,0,0,0,0,-546,0,0, - -403,0,0,-311,0,0,0,0,-423,0, - 0,0,0,0,0,0,0,-411,0,-413, 0,0,0,0,0,0,0,0,0,0, - -509,-400,-414,0,0,0,0,0,-430,-372, - 0,0,0,-433,0,0,0,0,0,0, - 0,0,0,0,0,-420,0,-358,-332,0, - 0,0,0,0,-422,0,0,0,0,0, - 0,0,-125,0,0,0,0,0,0,0, + -569,0,-134,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-518,0,-126,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-135,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -435,0,-369,0,0,0,-442,0,0,0, - 0,0,0,0,0,-457,-529,0,0,0, - 0,0,0,0,0,0,0,0,0,-443, - 0,-436,-398,0,0,0,-453,0,-481,-1, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-465,0,-421,0,0,0,0, - 0,0,0,0,0,0,0,0,-441,-444, - -467,0,0,0,0,0,0,0,0,0, - 0,-378,-119,-449,-468,0,0,0,-477,0, + 0,-18,0,0,0,0,-243,0,0,0, + 0,-571,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-478,0,0,0,-469,-322,0,-504,0, - 0,-470,0,0,0,0,-506,-471,-472,0, - 0,0,0,0,-474,-489,-486,0,0,0, - 0,0,0,0,0,0,0,0,0,-491, - 0,-492,0,0,0,-17,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-488,-511,-501,-513, - -51,0,0,0,0,0,0,0,0,0, + 0,0,0,-575,0,0,-244,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-494,0,0,-499,0,-502, 0,0,0,0,0,0,0,0,0,0, - -503,-52,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-53,0,0,0,0,0, + 0,0,0,0,0,0,-127,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-54,0,0, - 0,-508,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -55,0,0,0,-516,0,0,0,0,0, + 0,0,0,-128,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-56,0,0,0,-526,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-57,0,0,0, - -533,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-58, - 0,0,0,-538,0,0,0,0,0,0, + -129,0,0,0,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,0,0,0,0,-130,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-120,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-121,0, + 0,0,0,0,-239,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-180,0,0,0,0,0,0,0,0, + 0,-240,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-246,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,0,0,-391,0,0, 0,0,0,0,0,0,0,0,0,0, - -456,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-507,-505,-150,-539,-407,0, - 0,0,0,-323,-459,0,0,0,-515,-455, - -373,0,0,0,0,-487,0,0,-524,0, - -528,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-540,0,0,0,0, - -517,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-299,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-425,0,0,0,-522, - -523,-541,-545,0,0,0,0,0,0,-544, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-87,0,0,0,0,0, + 0,0,-467,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-580, + -24,0,0,0,0,0,-554,-534,0,-581, + -119,0,0,0,0,0,-340,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -599,0,0,0,0,0,0,-320,0,0, + -202,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-506,0,0,0,0,0, + 0,-597,0,-602,0,0,0,0,0,-556, + 0,0,0,0,0,-12,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,-265,0,0, 0,0,0,0,0,0,0,0,0,0, - -344,0,0,0,0,0,0,0,0,-349, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-381,0, + -150,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-132,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-362, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-385,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-72,0, + 0,0,-193,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-48, + 0,0,0,0,0,-281,0,0,0,0, + 0,0,0,-259,0,-497,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-503, + -332,0,0,0,0,0,0,0,0,0, + -157,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-543,-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,-49,0,0,0,0,0, - -278,-406,-386,-279,0,0,0,0,0,0, - -432,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,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,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,-531,-89,0, + 0,0,0,0,0,-200,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,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-551, + -333,0,0,0,0,0,-334,0,-78,-192, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-553,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -206,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,0,0,-568,0,0,0,0,0,0, + -335,0,-386,0,0,0,0,0,0,0, + 0,0,0,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,0,0,0,0,0, + 0,0,0,0,0,-583,0,0,0,0, + 0,0,0,0,0,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,0,-393,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-585,0,0, + 0,0,0,0,-588,0,0,0,0,0, + -452,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-456,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-589, + 0,-101,-100,0,0,0,0,0,0,0, + 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,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-594,0,0, + 0,0,0,0,0,0,0,0,0,0, + -124,0,0,0,0,0,0,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,-483,0,0,0,0,0,0, + 0,-601,0,0,0,0,0,0,0,-496, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-604,0,0,0,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,-175,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-125,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,0, + 0,0,0,0,0,0,0,0,0,-156, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-427,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-587, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-285,0,0,0,0,0,0, + 0,-1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-102,0, + 0,0,0,0,-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, + -103,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,-516, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-114,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,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,0,0,0, + 0,0,0,0,0,0,0,-53,0,0, + 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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-55,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-56,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,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,-58,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,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-120,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-121,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-191,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,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,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,-436,-292,0,0,0, + 0,0,0,-298,0,0,0,0,0,0, + 0,0,0,0,0,-465,-312,0,0,0, + 0,0,0,0,0,0,0,0,0,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,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,-444,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,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-402,0,0, + 0,0,0,0,0,0,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,0,0,0,0,0,0, + 0,0,0,0,-519,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-439,0,0, + 0,0,0,0,0,0,0,0,0,0, + 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,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,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,-520,-518, + 0,0,0,0,0,0,0,0,-498,0, + -236,0,0,0,0,0,0,0,0,0, 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,0,0,0,0, - 0,0,0,0,0,0,0,-382,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-221,0,0,0,0,0,0, - 0,-266,0,-242,0,0,0,0,0,0, - 0,0,0,0,0,-368,0,0,0,0, - 0,-104,0,0,0,0,0,0,0,-514, - -448,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-438,0,0,0,0,0, + 0,0,-426,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-451,0,0,0,0,0,0,0, - 0,0,0,0,-452,0,0,0,0,0, - 0,0,0,0,0,-458,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-48,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-262,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-100,0, - 0,0,0,-114,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,-460,0,0,0,0,0,-164, - 0,0,0,0,0,-244,0,0,0,0, - -251,0,0,0,0,0,0,0,0,0, - 0,0,-258,0,0,0,0,0,-485,-496, + 0,0,0,0,0,-572,0,0,0,0, + 0,0,0,-555,0,0,0,0,0,0, + 0,0,0,0,-558,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-497,0, - 0,0,0,0,0,0,0,0,-500,0, - 0,0,0,-247,0,0,0,0,0,0, - 0,0,0,0,0,0,-461,0,-462,0, - 0,0,0,-520,0,0,0,0,0,0, - 0,0,0,0,0,0,-280,0,0,0, - 0,0,0,0,0,0,0,-281,0,0, - -336,0,0,-530,0,0,0,0,0,0, + 0,0,0,0,-578,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -541,7 +683,12 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 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; @@ -551,548 +698,702 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface BaseAction { public final static char baseAction[] = { - 176,4,136,81,81,33,33,67,67,39, - 39,43,43,202,1,1,16,16,16,16, + 191,5,153,93,93,30,30,80,80,39, + 39,42,42,218,1,1,16,16,16,16, 16,16,16,17,17,17,15,11,11,6, - 6,6,6,6,6,2,65,65,5,5, - 12,12,45,45,137,137,138,60,60,44, + 6,6,6,6,6,2,76,76,4,4, + 12,12,44,44,154,154,155,69,69,43, 18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18, - 139,139,139,116,116,19,19,19,19,19, + 156,156,156,133,133,19,19,19,19,19, 19,19,19,19,19,19,19,19,20,20, - 177,177,178,178,179,142,142,143,143,140, - 140,144,141,141,21,21,22,22,24,24, - 24,25,25,25,25,26,26,26,27,27, - 27,28,28,28,28,28,29,29,29,30, - 30,32,32,34,34,36,36,37,37,38, - 38,42,42,41,41,41,41,41,41,41, - 41,41,41,41,41,41,40,31,145,145, - 95,95,180,180,90,203,203,68,68,68, - 68,68,68,68,68,68,69,69,69,66, - 66,57,57,181,181,70,70,70,101,101, - 182,182,71,71,71,71,183,183,72,72, - 72,72,72,73,73,82,82,82,82,82, - 82,82,82,51,51,51,51,51,117,117, - 115,115,52,184,23,23,23,23,23,49, - 49,85,85,85,85,85,152,152,147,147, - 147,147,147,148,148,148,149,149,149,150, - 150,150,151,151,151,86,86,86,86,86, - 87,87,87,13,14,14,14,14,14,14, - 14,14,14,14,14,96,121,121,121,121, - 121,121,119,119,119,153,154,154,120,120, - 185,156,156,155,155,123,123,102,79,79, - 124,54,48,157,157,55,53,84,84,158, - 158,146,146,104,104,105,75,75,159,159, - 63,63,58,58,160,64,64,76,76,61, - 61,61,50,88,88,98,97,97,62,62, - 59,59,56,56,46,99,99,99,91,91, - 91,92,92,93,93,93,94,94,106,106, - 106,108,108,107,107,204,204,89,89,187, - 187,187,187,187,126,47,47,162,186,186, - 127,127,128,128,128,129,164,188,188,35, - 35,118,130,130,130,130,190,110,109,109, - 122,122,122,165,166,166,166,166,166,166, - 166,166,166,166,166,192,192,189,189,191, - 191,167,168,168,168,168,169,193,112,111, - 111,194,194,170,170,170,170,100,100,100, - 195,195,8,8,9,196,196,197,171,161, - 161,172,172,173,174,174,7,7,10,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,77,80,80,175,175,132,132,133,133, - 133,133,133,133,3,134,134,131,131,113, - 113,83,78,74,74,163,163,114,114,199, - 199,199,135,135,125,125,200,200,176,176, - 103,1119,35,2608,2514,2346,3274,27,30,31, - 785,727,26,28,2495,263,25,23,50,1372, - 106,76,77,108,1506,1380,1465,1386,1688,1586, - 1766,1731,56,1817,142,1774,275,1860,1895,143, - 932,49,158,144,406,694,1503,35,799,32, - 1127,3330,27,30,31,785,727,57,28,3029, - 35,799,32,233,4485,27,30,31,785,727, - 26,28,1288,263,25,23,50,1372,106,76, - 77,108,1989,1380,1465,2950,236,231,232,415, - 893,885,34,3029,35,799,32,276,4485,27, - 30,31,785,727,26,28,1288,263,25,23, - 50,1372,106,76,77,108,325,1380,2650,243, - 246,249,252,1184,2309,35,279,1952,35,799, - 32,1216,3330,27,30,31,785,727,56,28, - 70,1617,35,297,1690,1427,1946,2037,2760,1302, - 3357,3538,3541,4335,2254,35,799,32,2646,4485, - 27,30,31,785,727,26,28,1288,263,25, - 23,50,1372,106,76,77,108,344,1380,1465, - 1386,1688,1586,1766,1731,61,1817,1167,1774,3659, - 1860,1895,143,2045,1989,519,144,872,383,2038, - 3378,1332,1332,327,35,281,2653,2653,4820,2677, - 520,1081,2254,35,799,32,2646,4485,27,30, - 31,785,727,26,28,1288,263,25,23,50, - 1372,106,76,77,108,344,1380,1465,1386,1688, - 1586,1766,1731,2910,1817,2497,1774,440,1860,1895, - 143,801,801,519,144,415,35,3272,3378,2503, - 795,924,333,333,1382,1637,60,515,520,2080, - 35,799,32,1220,4831,27,30,31,785,727, - 26,28,2174,1376,513,1990,1776,326,1997,3866, - 826,2653,2254,35,799,32,2646,4485,27,30, - 31,785,727,26,28,1288,263,25,23,50, - 1372,106,76,77,108,344,1380,1465,1386,1688, - 1586,1766,1731,1354,1817,515,1774,737,1860,1895, - 143,314,1332,519,144,795,801,2653,3378,327, - 35,281,3540,2032,4826,2621,1997,334,520,2530, - 35,799,32,1325,4485,27,30,31,785,727, - 26,28,1288,263,25,23,50,1372,106,76, - 77,108,93,1380,1465,1386,1688,1586,1766,1731, - 49,1817,801,1774,752,1860,1895,143,2677,1376, - 380,144,1286,2700,415,35,1844,1801,415,35, - 284,2974,35,799,32,515,4485,27,30,31, - 785,727,26,28,1288,263,25,23,50,1372, - 86,76,77,2280,329,336,1997,2598,35,799, - 32,2646,4485,27,30,31,785,727,26,28, - 1288,263,25,23,50,1372,106,76,77,108, - 344,1380,1465,1386,1688,1586,1766,1731,1234,1817, - 2960,1774,49,1860,1895,143,832,155,519,144, - 69,49,4803,3378,94,1149,387,381,1137,2323, - 35,799,32,520,4485,27,30,31,785,727, - 26,28,1288,263,25,23,50,1372,106,76, - 77,108,1940,1380,1465,1386,1688,1586,1766,1731, - 2144,1817,2622,1774,1149,1860,1895,143,415,3889, - 380,144,1286,1382,35,799,32,741,2891,27, - 30,31,785,727,340,28,2218,1414,135,500, - 516,160,2395,35,799,32,1723,4485,27,30, - 31,785,727,26,28,1288,263,25,23,50, - 1372,106,76,77,108,71,1380,1465,1386,1688, - 1586,1766,1731,2144,1817,404,1774,1149,1860,1895, - 143,751,322,380,144,1286,316,580,415,35, - 885,278,56,1786,35,799,32,1883,1172,41, - 30,31,785,727,160,2391,388,381,1137,2793, - 35,799,32,2627,4485,27,30,31,785,727, - 26,28,1288,263,25,23,50,1372,106,76, - 77,108,1968,1380,1465,1386,1688,1586,1766,1731, - 1508,1817,330,1774,1863,1860,1895,143,2153,2632, - 158,144,1988,35,799,32,2592,4831,27,30, - 31,785,727,59,28,323,415,3356,3079,378, - 381,1137,2793,35,799,32,1883,4485,27,30, - 31,785,727,26,28,1288,263,25,23,50, - 1372,106,76,77,108,2638,1380,1465,1386,1688, - 1586,1766,1731,2646,1817,56,1774,49,1860,1895, - 143,1149,1234,374,144,2793,35,799,32,1594, - 4485,27,30,31,785,727,26,28,1288,263, - 25,23,50,1372,106,76,77,108,3156,1380, - 1465,1386,1688,1586,1766,1731,49,1817,931,1774, - 1390,1860,1895,143,1946,1551,374,144,2793,35, - 799,32,1232,4485,27,30,31,785,727,26, - 28,1288,263,25,23,50,1372,106,76,77, - 108,357,1380,1465,1386,1688,1586,1766,1731,292, - 1817,534,1774,462,1860,1895,143,1727,373,374, - 144,2738,35,799,32,56,4485,27,30,31, - 785,727,26,28,1288,263,25,23,50,1372, - 106,76,77,108,233,1380,1465,1386,1688,1586, - 1766,1731,3276,1817,3218,1774,737,1860,1938,164, - 499,372,415,35,885,3271,1513,245,231,232, - 322,2463,35,799,32,2067,4485,27,30,31, - 785,727,26,28,1288,263,25,23,50,1372, - 106,76,77,108,2215,1380,1465,1386,1688,1586, - 1766,1731,328,1817,370,1774,2069,1860,1895,143, - 4501,1603,142,144,2793,35,799,32,1376,4485, - 27,30,31,785,727,26,28,1288,263,25, - 23,50,1372,106,76,77,108,384,1380,1465, - 1386,1688,1586,1766,1731,64,1817,1883,1774,3644, - 1860,1895,143,335,336,155,144,2793,35,799, - 32,574,4485,27,30,31,785,727,26,28, - 1288,263,25,23,50,1372,106,76,77,108, - 322,1380,1465,1386,1688,1586,1766,1731,49,1817, - 2117,1774,889,1860,1895,143,2154,1602,154,144, - 2793,35,799,32,377,4485,27,30,31,785, - 727,26,28,1288,263,25,23,50,1372,106, - 76,77,108,1966,1380,1465,1386,1688,1586,1766, - 1731,49,1817,1883,1774,867,1860,1895,143,1809, - 1234,153,144,2793,35,799,32,391,4485,27, - 30,31,785,727,26,28,1288,263,25,23, - 50,1372,106,76,77,108,1814,1380,1465,1386, - 1688,1586,1766,1731,49,1817,2117,1774,4624,1860, - 1895,143,1883,1234,152,144,2793,35,799,32, - 377,4485,27,30,31,785,727,26,28,1288, - 263,25,23,50,1372,106,76,77,108,375, - 1380,1465,1386,1688,1586,1766,1731,1883,1817,1883, - 1774,461,1860,1895,143,2278,1883,151,144,2793, - 35,799,32,2192,4485,27,30,31,785,727, - 26,28,1288,263,25,23,50,1372,106,76, - 77,108,322,1380,1465,1386,1688,1586,1766,1731, - 3335,1817,2117,1774,327,1860,1895,143,587,3566, - 150,144,2793,35,799,32,3829,4485,27,30, - 31,785,727,26,28,1288,263,25,23,50, - 1372,106,76,77,108,3790,1380,1465,1386,1688, - 1586,1766,1731,142,1817,1883,1774,155,1860,1895, - 143,1096,3386,149,144,2793,35,799,32,288, - 4485,27,30,31,785,727,26,28,1288,263, - 25,23,50,1372,106,76,77,108,322,1380, - 1465,1386,1688,1586,1766,1731,1233,1817,2117,1774, - 155,1860,1895,143,314,3523,148,144,2793,35, - 799,32,528,4485,27,30,31,785,727,26, - 28,1288,263,25,23,50,1372,106,76,77, - 108,135,1380,1465,1386,1688,1586,1766,1731,49, - 1817,1883,1774,3379,1860,1895,143,1250,1234,147, - 144,2793,35,799,32,289,4485,27,30,31, - 785,727,26,28,1288,263,25,23,50,1372, - 106,76,77,108,2668,1380,1465,1386,1688,1586, - 1766,1731,49,1817,2117,1774,2848,1860,1895,143, - 1450,1234,146,144,2793,35,799,32,527,4485, - 27,30,31,785,727,26,28,1288,263,25, - 23,50,1372,106,76,77,108,382,1380,1465, - 1386,1688,1586,1766,1731,1378,1817,1968,1774,4185, - 1860,1895,143,415,3931,145,144,2793,35,799, - 32,2730,4485,27,30,31,785,727,26,28, - 1288,263,25,23,50,1372,106,76,77,108, - 499,1380,1465,1386,1688,1586,1766,1731,909,1817, - 1968,1774,51,1860,1895,143,589,2490,159,144, - 2793,35,799,32,3037,4485,27,30,31,785, - 727,26,28,1288,263,25,23,50,1372,106, - 76,77,108,379,1380,1465,1386,1688,1586,1766, - 1731,1446,1817,1968,1774,2592,1860,1895,143,1453, - 160,140,144,2912,35,799,32,1810,4485,27, - 30,31,785,727,26,28,1288,263,25,23, - 50,1372,106,76,77,108,4162,1380,1465,1386, - 1688,1586,1766,1731,49,1817,1968,1774,2701,1860, - 1895,143,332,1381,189,144,3029,35,799,32, - 2391,4485,27,30,31,785,727,26,28,1288, - 263,25,23,50,1372,106,76,77,108,24, - 1380,1465,1386,1688,1586,1766,1731,49,1817,2225, - 1774,2627,1860,1938,164,3029,35,799,32,2219, - 4485,27,30,31,785,727,26,28,1288,263, - 25,23,50,1372,106,76,77,108,2677,1380, - 1465,1386,1688,1586,1766,1731,2592,1817,1467,1774, - 356,1860,1938,164,327,35,455,2245,449,3776, - 534,2918,3029,35,799,32,425,4485,27,30, - 31,785,727,26,28,1288,263,25,23,50, - 1372,106,76,77,108,354,1380,1465,1386,1688, - 1586,1766,1731,49,1817,355,1774,2763,1860,1938, - 164,3029,35,799,32,296,4485,27,30,31, - 785,727,26,28,1288,263,25,23,50,1372, - 106,76,77,108,182,1380,1465,1386,1688,1586, - 1766,1731,49,1817,1672,1774,2784,1860,1938,164, - 415,35,885,280,415,35,1052,390,3029,35, - 799,32,3236,4485,27,30,31,785,727,26, - 28,1288,263,25,23,50,1372,106,76,77, - 108,324,1380,1465,1386,1688,1586,1766,1731,433, - 1817,534,1774,2519,1860,1938,164,3084,35,799, - 32,424,4485,27,30,31,785,727,26,28, - 1288,263,25,23,50,1372,106,76,77,108, - 2522,1380,1465,1386,1688,1586,1766,1731,49,1817, - 418,1774,3398,1860,1938,164,448,3656,3665,1174, - 415,35,1052,390,3029,35,799,32,427,4485, - 27,30,31,785,727,26,28,1288,263,25, - 23,50,1372,106,76,77,108,2427,1380,1465, - 1386,1688,1586,1766,1731,454,1817,1697,1774,676, - 3132,742,848,3029,35,799,32,3915,4485,27, - 30,31,785,727,26,28,1288,263,25,23, - 50,1372,106,76,77,108,408,1380,1465,1386, - 1688,1586,1766,1731,1020,1817,1968,3111,3029,35, - 799,32,1968,4485,27,30,31,785,727,26, - 28,1288,263,25,23,50,1372,106,76,77, - 108,1968,1380,1465,1386,1688,1586,1766,1731,69, - 3086,3029,35,799,32,68,4485,27,30,31, - 785,727,26,28,1288,263,25,23,50,1372, - 106,76,77,108,53,1380,1465,1386,1688,1586, - 1766,3092,3029,35,799,32,423,4485,27,30, - 31,785,727,26,28,1288,263,25,23,50, - 1372,106,76,77,108,1506,1380,1465,1386,1688, - 1586,3018,3029,35,799,32,1728,4485,27,30, - 31,785,727,26,28,1288,263,25,23,50, - 1372,106,76,77,108,2665,1380,1465,1386,1688, - 3055,3029,35,799,32,1496,4485,27,30,31, - 785,727,26,28,1288,263,25,23,50,1372, - 106,76,77,108,3303,1380,1465,1386,1688,3084, - 3029,35,799,32,445,4485,27,30,31,785, - 727,26,28,1288,263,25,23,50,1372,106, - 76,77,108,2490,1380,1465,1386,2791,3029,35, - 799,32,2391,4485,27,30,31,785,727,26, - 28,1288,263,25,23,50,1372,106,76,77, - 108,71,1380,1465,1386,2803,3029,35,799,32, - 2246,4485,27,30,31,785,727,26,28,1288, - 263,25,23,50,1372,106,76,77,108,526, - 1380,1465,1386,2851,3029,35,799,32,3229,4485, - 27,30,31,785,727,26,28,1288,263,25, - 23,50,1372,106,76,77,108,737,1380,1465, - 1386,2913,1730,35,799,32,741,3106,27,30, - 31,785,727,340,28,2677,3139,35,1052,390, - 408,3162,1901,415,35,1052,390,2653,1792,238, - 263,737,1947,1720,35,799,32,3569,2891,27, - 30,31,785,727,340,28,1603,1960,35,799, - 32,275,801,40,30,31,785,727,49,1376, - 751,322,236,333,155,316,580,1010,572,3527, - 2070,2392,801,580,1553,2653,1758,315,233,1960, - 35,799,32,334,449,2317,30,31,785,727, - 4400,751,322,1376,331,336,316,580,353,2488, - 49,236,231,232,2927,309,540,685,3413,353, - 1015,2677,276,347,2079,2069,350,843,35,455, - 801,1235,3776,2427,345,2079,2069,350,3632,336, - 3341,2700,3391,2078,243,246,249,252,1184,2249, - 35,885,278,240,263,1381,1216,2461,2940,1960, - 35,799,32,1251,2078,2753,30,31,785,727, - 3721,1707,302,2760,1302,3357,3538,3541,4335,3029, - 35,799,32,1806,4485,27,30,31,785,727, - 26,28,1288,263,25,23,50,1372,106,76, - 77,108,233,1380,1465,2968,1643,35,3539,32, - 741,3106,27,30,31,785,727,340,28,2157, - 2709,2729,96,4634,3436,241,231,232,1249,2694, - 367,1825,2646,1632,35,799,32,4646,2891,27, - 30,31,785,727,340,28,415,3445,885,74, - 88,2663,352,102,392,429,801,2124,35,279, - 1617,3618,297,2421,751,322,352,333,4306,316, - 580,502,35,1052,390,393,429,1988,35,799, - 32,2243,4831,27,30,31,785,727,58,28, - 150,751,322,1969,4400,353,316,580,259,452, - 3656,3665,541,1017,35,398,49,2078,1172,353, - 345,2079,2069,350,2694,1010,863,361,3100,2620, - 2427,229,2200,2646,345,2079,2069,350,1332,156, - 1606,3210,3100,2653,3440,3278,3279,180,3805,322, - 1991,2117,344,1968,2646,204,216,4608,2244,203, - 213,214,215,217,2486,169,1,2078,541,222, - 541,2833,2910,344,168,2327,183,167,170,171, - 172,173,174,419,421,3468,87,4249,801,229, - 757,35,1052,390,1637,156,733,156,2488,333, - 1017,35,398,180,3805,180,3805,1076,1364,2117, - 2124,35,282,204,216,4608,299,203,213,214, - 215,217,3727,169,1646,275,2652,49,395,429, - 196,2977,168,181,184,167,170,171,172,173, - 174,3029,35,799,32,2075,4485,27,30,31, - 785,727,26,28,1288,263,25,23,50,1372, - 106,76,77,108,345,1380,2703,737,541,1968, - 415,35,1052,390,3223,3604,1602,1249,394,429, - 1996,2646,1236,155,2166,526,3280,229,4685,2976, - 1968,415,35,1052,390,156,502,35,1052,390, - 2663,572,52,180,3805,49,72,2117,737,3750, - 1906,204,216,4608,46,203,213,214,215,217, - 431,169,1704,351,541,444,436,458,2024,1376, - 168,49,3918,167,170,171,172,173,174,89, - 1010,684,102,229,1447,3080,1968,4660,197,3080, - 2052,156,502,35,1052,390,3210,49,49,180, - 3805,2661,2646,2117,3639,336,361,204,216,4608, - 1376,203,213,214,215,217,517,169,49,90, - 541,344,3640,3609,3278,3279,168,49,178,167, - 170,171,172,173,174,1234,1010,2270,2158,229, - 415,35,1052,390,3378,4236,336,156,1017,35, - 3154,1543,3248,2278,2329,180,3805,42,2289,2117, - 2318,44,2289,204,216,4608,1234,203,213,214, - 215,217,603,169,2067,275,541,241,415,35, - 1052,390,168,49,176,167,170,171,172,173, - 174,322,1010,934,2667,229,415,35,1052,390, - 2606,2353,2379,156,2211,35,1052,390,1958,2317, - 2159,180,3805,275,2345,2117,97,1968,2646,204, - 216,4608,2383,203,213,214,215,217,689,169, - 2669,435,541,1017,35,398,341,2663,168,49, - 177,167,170,171,172,173,174,98,1010,2580, - 3167,229,2249,35,885,3455,1968,1078,298,156, - 1101,35,1052,390,3248,49,49,180,3805,3802, - 4493,2117,2419,1968,277,204,216,4608,1968,203, - 213,214,215,217,775,169,2387,1246,541,3188, - 415,35,1052,390,168,49,187,167,170,171, - 172,173,174,507,1010,2676,67,229,2065,2227, - 3356,66,2948,2423,2231,156,1101,35,1052,390, - 3000,2417,49,180,3805,434,2646,2117,2227,3356, - 1770,204,216,4608,1968,203,213,214,215,217, - 861,169,4051,2485,541,344,505,506,1968,233, - 168,49,4074,167,170,171,172,173,174,155, - 1010,47,1516,229,4713,2486,2496,65,3378,1149, - 1968,156,248,231,232,2670,3020,1353,2332,180, - 3805,64,3753,2117,353,2521,49,204,216,4608, - 2543,203,213,214,215,217,156,169,2518,345, - 2079,2069,350,3551,201,3920,168,343,192,167, - 170,171,172,173,174,1980,35,799,32,3569, - 2891,27,30,31,785,727,340,28,3029,35, - 799,32,291,4485,27,30,31,785,727,26, - 28,1288,263,25,23,50,1372,106,76,77, - 108,291,2740,502,35,1052,390,1101,35,1052, - 390,1968,49,2363,2040,3383,3087,2646,1377,1826, - 155,1498,947,751,322,4725,541,2883,316,580, - 2554,49,155,2552,3383,3077,2663,4736,49,1968, - 529,353,49,1784,55,229,49,1010,47,1332, - 4239,1010,47,156,2653,2560,345,2079,2069,350, - 2495,180,3805,938,530,2117,2556,2779,2594,204, - 216,4608,54,203,213,214,215,217,1033,169, - 233,1968,541,233,415,35,885,283,168,1968, - 186,167,170,171,172,173,174,432,2526,801, - 2063,229,362,251,231,232,254,231,232,156, - 333,2680,49,2672,101,2646,1196,180,3805,49, - 2392,2117,3804,1985,49,204,216,4608,4250,203, - 213,214,215,217,344,169,2593,3723,1353,415, - 35,885,3550,3753,168,2585,195,167,170,171, - 172,173,174,3029,35,799,32,4259,4485,27, - 30,31,785,727,26,28,1288,263,25,23, - 50,1372,106,76,77,108,2594,2751,3029,35, - 799,32,525,4485,27,30,31,785,727,26, - 28,1288,263,25,23,50,1372,106,76,77, - 108,2630,2783,1365,35,799,32,2691,3106,27, - 30,31,785,727,340,28,2427,1870,35,799, - 32,741,2891,27,30,31,785,727,340,28, - 2692,2485,1968,502,35,1052,390,2671,2883,1968, - 1463,35,799,32,741,2891,27,30,31,785, - 727,340,28,801,2631,306,502,35,1052,390, - 3008,751,322,3436,334,3736,317,580,49,49, - 49,2694,453,4814,3588,751,322,1010,47,353, - 316,580,1567,49,49,2427,2646,1149,3118,2427, - 525,49,315,2204,347,2079,2069,350,751,322, - 1010,47,2427,316,580,229,87,2144,431,2666, - 4311,1149,2678,3696,156,315,2290,1620,2695,2697, - 309,540,685,1861,179,2702,2173,322,199,206, - 216,4608,3580,205,213,214,215,217,160,2981, - 2760,198,173,538,540,685,1473,35,799,32, - 532,3106,27,30,31,785,727,340,28,207, - 209,211,3270,4276,218,208,210,2427,1968,2427, - 1968,3029,35,799,32,3721,4485,27,30,31, - 785,727,26,28,1288,263,25,23,50,1372, - 106,76,77,85,307,2706,801,2959,2711,4492, - 2427,3298,3531,3354,751,322,305,334,202,317, - 580,2771,3029,893,799,1981,590,4485,27,30, - 31,785,727,26,28,1288,263,25,23,50, - 1372,106,76,77,84,3029,35,799,32,200, - 4485,27,30,31,785,727,26,28,1288,263, - 25,23,50,1372,106,76,77,83,3029,35, - 799,32,1179,4485,27,30,31,785,727,26, - 28,1288,263,25,23,50,1372,106,76,77, - 82,3029,35,799,32,2769,4485,27,30,31, - 785,727,26,28,1288,263,25,23,50,1372, - 106,76,77,81,3029,35,799,32,2815,4485, - 27,30,31,785,727,26,28,1288,263,25, - 23,50,1372,106,76,77,80,3029,35,799, - 32,2816,4485,27,30,31,785,727,26,28, - 1288,263,25,23,50,1372,106,76,77,79, - 3029,35,799,32,1500,4485,27,30,31,785, - 727,26,28,1288,263,25,23,50,1372,106, - 76,77,78,2857,35,799,32,5416,4485,27, - 30,31,785,727,26,28,1288,263,25,23, - 50,1372,106,76,77,104,3029,35,799,32, - 5416,4485,27,30,31,785,727,26,28,1288, - 263,25,23,50,1372,106,76,77,110,3029, - 35,799,32,5416,4485,27,30,31,785,727, - 26,28,1288,263,25,23,50,1372,106,76, - 77,109,3029,35,799,32,5416,4485,27,30, - 31,785,727,26,28,1288,263,25,23,50, - 1372,106,76,77,107,3029,35,799,32,5416, - 4485,27,30,31,785,727,26,28,1288,263, - 25,23,50,1372,106,76,77,105,1817,35, - 3539,32,741,2891,27,30,31,785,727,340, - 28,1382,35,799,32,741,2891,27,30,31, - 785,727,340,28,5416,2427,49,49,2450,1828, - 2106,1149,1149,2646,2144,415,35,297,1149,49, - 1915,2144,5416,3737,2646,1149,415,35,297,2420, - 5416,2427,229,3485,5416,5416,751,322,156,156, - 5416,316,580,229,301,160,2427,3120,162,751, - 322,1968,160,2243,316,580,206,216,4608,5416, - 205,213,214,215,217,5416,315,206,216,4608, - 4238,205,213,214,215,217,502,35,1052,390, - 1968,1968,1968,2427,3410,223,207,209,211,3270, - 1968,218,208,210,310,540,685,207,209,211, - 3270,5416,218,208,210,3188,35,1052,390,3559, - 3162,49,5416,1725,1811,4313,3601,3887,239,263, - 1010,47,193,3598,3261,5416,4492,5416,4235,5416, - 5416,5416,5416,5416,5416,3847,3101,4492,5416,49, - 275,5416,5416,2646,5416,420,421,3468,1223,35, - 799,32,2826,2891,27,30,31,785,727,340, - 28,2002,344,5416,5416,2646,5416,233,5416,5416, - 1473,35,799,32,5416,3106,27,30,31,785, - 727,340,28,5416,229,3378,5416,405,4320,5416, - 237,231,232,5416,5416,2364,5416,5416,5416,1654, - 5416,276,5416,2646,5416,5416,3342,322,206,216, - 4608,5416,205,213,214,215,217,5416,5416,5416, - 801,5416,229,244,247,250,253,1184,751,322, - 5416,334,5416,319,580,1216,5416,5416,207,209, - 211,3270,5416,522,208,210,206,216,4608,5416, - 205,213,214,215,217,1216,35,1052,390,5416, - 5416,49,1741,2345,49,1149,2646,2646,1149,5416, - 5416,2089,5416,5416,5416,2646,207,209,211,3270, - 2176,521,208,210,2646,229,2663,5416,5416,5416, - 49,5416,156,5416,229,156,5416,5416,5416,1010, - 2033,3343,5416,229,3348,5416,5416,2658,318,206, - 216,4608,5416,205,213,214,215,217,206,216, - 4608,5416,205,213,214,215,217,206,216,4608, - 5416,205,213,214,215,217,5416,5416,5416,207, - 209,211,3270,5416,219,208,210,5416,207,209, - 211,3270,507,308,208,210,5416,207,209,211, - 3270,5416,501,208,210,1382,35,799,32,741, - 2891,27,30,31,785,727,340,28,1609,35, - 799,32,2632,2891,27,30,31,785,727,340, - 28,5416,5416,5416,1181,504,506,5416,2646,4843, - 5416,5416,1287,5416,1807,5416,2646,4843,2646,2653, - 5416,5416,5416,5416,5416,5416,1807,229,5416,5416, - 2646,2653,49,751,322,229,2646,2663,316,580, - 2553,2144,5416,5416,541,1149,3342,322,3620,2663, - 4028,545,409,4378,5416,344,5416,5416,5416,545, - 409,4378,5416,344,801,2312,35,1052,390,5416, - 5416,156,160,5416,5416,333,801,5416,3378,5416, - 188,410,411,412,3270,5416,4595,333,2466,410, - 411,412,3270,502,35,1052,390,5416,5416,5416, - 49,5416,2652,361,3244,502,35,1052,390,1010, - 47,5416,3244,5416,3723,361,2347,35,1052,390, - 3287,3278,3279,5416,5416,4245,5416,5416,49,5416, - 5416,5416,3287,3278,3279,49,3759,1010,47,541, - 49,190,5416,5416,5416,5416,5416,2658,318,1010, - 47,49,5416,3266,5416,5416,5416,5416,344,49, - 1010,47,5416,541,49,3360,156,5416,541,413, - 415,5416,5416,5416,5416,2026,4256,413,416,5416, - 5416,3378,344,415,35,1052,390,344,5416,5416, - 156,1983,5416,1500,2378,156,4632,5416,2646,2372, - 415,35,1052,390,2026,3378,415,35,1052,390, - 3378,415,35,1052,390,2366,5416,2663,49,5416, - 2963,5416,4261,415,35,1052,390,1010,739,2381, - 49,5416,5416,2646,541,49,5416,5416,5416,5416, - 5416,49,5416,5416,1010,2877,49,5416,5416,5416, - 1010,664,344,344,5416,1010,2033,5416,49,49, - 5416,156,533,541,5416,5416,5416,1010,2775,49, - 188,5416,5416,541,49,3378,4595,5416,2646,5416, - 5416,5416,344,507,5416,536,5416,49,5416,49, - 156,2646,344,2646,49,5416,5416,344,2646,188, - 156,5416,5416,5416,5416,4595,5416,49,5416,188, - 344,1149,344,5416,5416,4595,5416,344,49,5416, - 3378,49,1149,5416,49,1149,504,506,1149,5416, - 3326,3888,5416,3378,5416,3378,5416,5416,156,5416, - 3378,5416,5416,511,5416,509,5416,3404,5416,156, - 537,5416,156,5416,5416,156,5416,5416,3418,5416, - 3890,3205,5416,5416,4312,5416,5416,5416,5416,3846, - 4281,5416,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,5416,5416,5416,5416,3837, - 5416,0,1133,1,0,39,5431,1,0,39, - 5430,1,0,38,629,0,38,5431,0,38, - 5430,0,456,581,0,442,920,0,1002,29, - 0,5431,48,0,5430,48,0,5428,385,0, - 5427,385,0,39,5431,0,39,5430,0,1, - 446,0,460,1252,0,459,1560,0,35,33, - 0,1002,389,0,47,37,0,2576,126,0, - 1,1007,0,1,5690,0,1,5689,0,1, - 5688,0,1,5687,0,1,5686,0,1,5685, - 0,1,5684,0,1,5683,0,1,5682,0, - 1,5681,0,1,5680,0,285,396,0,285, - 290,0,5651,242,0,5650,242,0,5755,242, - 0,5754,242,0,5678,242,0,5677,242,0, - 5676,242,0,5675,242,0,5674,242,0,5673, - 242,0,5672,242,0,5671,242,0,5690,242, - 0,5689,242,0,5688,242,0,5687,242,0, - 5686,242,0,5685,242,0,5684,242,0,5683, - 242,0,5682,242,0,5681,242,0,5680,242, - 0,39,5431,242,0,39,5430,242,0,5454, - 242,0,43,5452,0,43,37,0,1247,91, - 0,32,34,0,39,629,0,332,447,0, - 5422,1,0,5421,1,0,238,1050,0,32, - 390,0,29,389,0,2576,128,0,2576,127, - 0,503,3264,0,5454,1,230,0,39,1, - 230,0,230,418,0,5431,37,0,5430,37, - 0,5452,45,0,37,45,0,5454,1,0, - 39,1,0,1,92,0,5426,407,0,5425, - 407,0,1063,1,0,2939,1,0,629,1, - 0,230,417,0,3384,385,0,5431,2,37, - 0,5430,2,37,0,5431,36,0,5430,36, - 0,1,332,0,8,12,0,332,95,0, - 35,73,0,503,4429,0,1,230,0,280, - 3827,0,230,221,0,1,2923,0,1,3010, - 0,230,220,0,5428,1,0,5424,1,0, - 1,230,3791,0,5425,230,0,3826,230,0, - 3862,230,0,10,12,0,8,10,12,0, - 4005,194,0,185,3542,0 + 192,192,193,193,194,159,159,160,160,157, + 157,161,158,158,21,21,22,22,23,23, + 23,24,24,24,24,25,25,25,26,26, + 26,31,31,31,31,31,33,33,33,34, + 34,35,35,36,36,38,38,40,40,41, + 41,45,45,45,45,45,47,47,47,53, + 53,55,55,61,61,62,62,63,63,64, + 64,65,65,65,65,65,65,65,65,65, + 65,65,65,65,29,29,46,46,46,46, + 46,46,46,46,46,46,46,46,46,37, + 28,162,162,104,104,195,195,103,219,219, + 81,81,81,81,81,81,81,81,81,82, + 82,82,78,78,66,66,196,196,83,83, + 83,115,115,197,197,84,84,84,84,198, + 198,85,85,85,85,85,86,86,94,94, + 94,94,94,94,94,94,56,56,56,56, + 56,134,134,132,132,57,199,27,27,27, + 27,27,50,50,71,71,71,71,71,139, + 139,135,135,135,135,135,136,136,136,137, + 137,137,138,138,138,164,164,164,72,72, + 72,72,72,73,73,73,13,14,14,14, + 14,14,14,14,14,14,14,14,105,140, + 140,140,140,140,140,110,110,110,165,166, + 166,111,111,200,168,168,167,167,141,141, + 116,91,91,142,59,49,169,169,60,58, + 96,96,170,170,163,163,118,118,119,88, + 88,171,171,74,74,67,67,172,75,75, + 79,79,70,70,70,54,97,97,107,106, + 106,51,51,68,68,77,77,52,108,108, + 108,98,98,98,99,99,100,100,100,101, + 101,120,120,120,122,122,121,121,220,220, + 102,102,202,202,202,202,202,144,48,48, + 174,201,201,145,145,146,146,146,147,176, + 203,203,32,32,109,113,113,113,113,205, + 124,123,123,112,112,112,177,178,178,178, + 178,178,178,178,178,178,178,178,207,207, + 204,204,206,206,179,180,180,180,180,181, + 208,126,125,125,209,209,182,182,182,182, + 114,114,114,210,210,8,8,9,211,211, + 212,183,173,173,184,184,185,186,186,7, + 7,10,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,89,92,92,187,187,149, + 149,150,150,150,150,150,150,3,151,151, + 148,148,188,221,222,222,223,223,224,225, + 225,189,190,190,190,190,214,214,214,128, + 128,128,128,128,129,130,130,127,127,95, + 90,87,87,175,175,131,131,215,215,215, + 152,152,143,143,216,216,191,191,117,1119, + 35,2497,2418,4666,1254,27,30,31,629,626, + 26,28,2399,296,25,23,50,1329,106,76, + 77,108,1331,1420,1372,1510,1238,1342,177,1405, + 1492,308,1649,1517,1734,1732,1754,1743,1248,1781, + 176,71,713,707,34,191,1513,1229,35,488, + 266,5158,71,35,3286,1243,35,636,32,4256, + 2742,27,30,31,629,626,373,28,2405,1648, + 269,264,265,3298,35,636,32,4575,2916,27, + 30,31,629,626,26,28,1320,296,25,23, + 50,1329,106,76,77,108,1331,1420,1372,1967, + 1911,1229,35,314,309,5263,358,2199,276,279, + 282,1344,1452,1336,1638,2465,35,312,1944,1292, + 1976,402,646,355,61,359,1969,2629,3153,349, + 627,2568,35,312,2217,2415,2481,2547,4680,285, + 71,3590,193,875,3154,1532,35,636,32,4256, + 4163,27,30,31,629,626,373,28,1229,35, + 314,1837,5414,2621,2267,35,636,32,4575,5370, + 27,30,31,629,626,26,28,1320,296,25, + 23,50,1329,106,76,77,108,1331,1420,1372, + 1967,1504,1452,162,1468,35,3494,32,4256,2742, + 27,30,31,629,626,373,28,1934,55,1944, + 2391,1976,3349,355,2465,35,315,1969,2334,1991, + 329,390,42,2166,2252,1978,2014,2016,161,577, + 592,481,3578,3579,2267,35,636,32,4575,5370, + 27,30,31,629,626,26,28,1320,296,25, + 23,50,1329,106,76,77,108,1331,1420,1372, + 1967,646,355,162,1332,35,636,32,349,627, + 41,30,31,629,626,1377,1229,35,565,1944, + 5904,1976,1582,69,652,533,900,1969,1292,1991, + 1887,548,574,4491,578,1978,2014,2016,161,577, + 1968,35,636,32,417,356,40,30,31,629, + 626,1181,1931,4221,1622,2023,2805,351,3862,69, + 71,35,727,423,764,2267,35,636,32,4575, + 5370,27,30,31,629,626,26,28,1320,296, + 25,23,50,1329,106,76,77,108,1331,1420, + 1372,1967,466,1355,162,1638,71,35,2426,2358, + 1292,548,574,4491,578,71,35,317,638,2463, + 1944,1614,1976,453,454,3489,4729,1389,1969,2922, + 1991,1452,2085,193,367,2023,1978,2014,2016,161, + 577,2537,35,636,32,4575,2176,27,30,31, + 629,626,26,28,1320,296,25,23,50,1329, + 106,76,77,108,1331,1420,1372,1510,1613,1689, + 177,347,1492,69,1649,1517,1734,1732,1292,1743, + 147,1781,176,1213,5062,2431,3352,413,2290,35, + 636,32,4256,4400,27,30,31,629,626,373, + 28,2743,548,574,4491,578,2152,35,330,2509, + 1360,35,636,32,4429,2923,27,30,31,629, + 626,373,28,2157,495,387,2023,438,2597,35, + 636,32,4575,5370,27,30,31,629,626,26, + 28,1320,296,25,23,50,1329,106,76,77, + 108,1331,1420,1372,1967,3349,355,162,2981,1879, + 35,636,32,5897,638,27,30,31,629,626, + 26,28,2025,1944,546,1976,2112,646,355,3485, + 367,1969,1993,1991,350,627,420,414,977,1978, + 2014,2016,161,577,2335,35,636,32,4575,583, + 27,30,31,629,626,26,28,1320,296,25, + 23,50,1329,106,76,77,108,1331,1420,1372, + 1510,2438,1637,177,1377,1492,324,1649,1517,1734, + 1732,1377,1743,478,1781,176,1213,2666,35,563, + 413,69,69,2038,1132,1485,834,925,2075,502, + 35,431,1709,3355,532,549,574,4491,578,2805, + 351,412,2498,69,71,35,727,423,824,2409, + 35,636,32,4575,2754,27,30,31,629,626, + 26,28,1320,296,25,23,50,1329,106,76, + 77,108,1331,1420,1372,1510,308,1409,177,1884, + 1492,1712,1649,1517,1734,1732,2816,1743,147,1781, + 176,1213,4815,1981,657,413,3245,35,636,32, + 4575,900,27,30,31,629,626,26,28,1320, + 296,25,23,50,1329,106,76,77,85,421, + 414,977,2891,35,636,32,4575,2984,27,30, + 31,629,626,26,28,1320,296,25,23,50, + 1329,106,76,77,108,1331,1420,1372,1510,374, + 141,177,3583,1492,652,1649,1517,1734,1732,2590, + 1743,1239,1781,176,71,35,707,311,191,3245, + 35,636,32,4575,1346,27,30,31,629,626, + 26,28,1320,296,25,23,50,1329,106,76, + 77,108,1331,2556,411,414,977,2891,35,636, + 32,4575,1463,27,30,31,629,626,26,28, + 1320,296,25,23,50,1329,106,76,77,108, + 1331,1420,1372,1510,71,3701,177,70,1492,2916, + 1649,1517,1734,1732,2323,1743,1452,1781,176,71, + 35,707,3285,407,2853,2891,35,636,32,4575, + 1975,27,30,31,629,626,26,28,1320,296, + 25,23,50,1329,106,76,77,108,1331,1420, + 1372,1510,1213,439,177,93,1492,155,1649,1517, + 1734,1732,1389,1743,1837,1781,176,71,35,727, + 423,407,2891,35,636,32,4575,227,27,30, + 31,629,626,26,28,1320,296,25,23,50, + 1329,106,76,77,108,1331,1420,1372,1510,487, + 1465,177,2437,1492,1783,1649,1517,1734,1732,494, + 1743,1884,1781,176,71,35,707,313,407,1258, + 244,406,2770,35,636,32,4575,230,27,30, + 31,629,626,26,28,1320,296,25,23,50, + 1329,106,76,77,108,1331,1420,1372,1510,425, + 462,2119,389,1492,2916,1649,1517,1734,1732,2942, + 1743,592,1828,197,2469,35,636,32,4575,405, + 27,30,31,629,626,26,28,1320,296,25, + 23,50,1329,106,76,77,108,1331,1420,1372, + 1510,1638,3214,177,155,1492,1292,1649,1517,1734, + 1732,2736,1743,155,1781,176,362,369,2237,1929, + 175,2492,35,707,311,361,403,1873,155,193, + 2891,35,636,32,4575,1920,27,30,31,629, + 626,26,28,1320,296,25,23,50,1329,106, + 76,77,108,1331,1420,1372,1510,499,363,177, + 1919,1492,1598,1649,1517,1734,1732,1736,1743,323, + 1781,176,71,35,727,423,188,2891,35,636, + 32,4575,2670,27,30,31,629,626,26,28, + 1320,296,25,23,50,1329,106,76,77,108, + 1331,1420,1372,1510,469,3444,177,357,1492,69, + 1649,1517,1734,1732,991,1743,592,1781,176,71, + 35,727,423,187,2891,35,636,32,4575,2327, + 27,30,31,629,626,26,28,1320,296,25, + 23,50,1329,106,76,77,108,1331,1420,1372, + 1510,468,495,177,233,1492,69,1649,1517,1734, + 1732,1490,1743,313,1781,176,71,35,727,423, + 186,2891,35,636,32,4575,2327,27,30,31, + 629,626,26,28,1320,296,25,23,50,1329, + 106,76,77,108,1331,1420,1372,1510,467,2819, + 177,1632,1492,69,1649,1517,1734,1732,6299,1743, + 456,1781,176,71,3486,707,74,185,2891,35, + 636,32,4575,2499,27,30,31,629,626,26, + 28,1320,296,25,23,50,1329,106,76,77, + 108,1331,1420,1372,1510,71,3352,177,316,1492, + 2525,1649,1517,1734,1732,6206,1743,1090,1781,176, + 2492,35,707,3488,184,2891,35,636,32,4575, + 1457,27,30,31,629,626,26,28,1320,296, + 25,23,50,1329,106,76,77,108,1331,1420, + 1372,1510,3242,147,177,2416,1492,4873,1649,1517, + 1734,1732,388,1743,757,1781,176,71,35,707, + 316,183,2891,35,636,32,4575,1613,27,30, + 31,629,626,26,28,1320,296,25,23,50, + 1329,106,76,77,108,1331,1420,1372,1510,69, + 1452,177,2604,1492,1035,1649,1517,1734,1732,1389, + 1743,1467,1781,176,71,35,707,3495,182,2891, + 35,636,32,4575,1931,27,30,31,629,626, + 26,28,1320,296,25,23,50,1329,106,76, + 77,108,1331,1420,1372,1510,325,501,177,660, + 1492,2801,1649,1517,1734,1732,581,1743,753,1781, + 176,71,35,707,564,181,2891,35,636,32, + 4575,319,27,30,31,629,626,26,28,1320, + 296,25,23,50,1329,106,76,77,108,1331, + 1420,1372,1510,360,743,177,1731,1492,2320,1649, + 1517,1734,1732,1356,1743,147,1781,176,583,4935, + 1377,1377,180,2891,35,636,32,4575,2328,27, + 30,31,629,626,26,28,1320,296,25,23, + 50,1329,106,76,77,108,1331,1420,1372,1510, + 5815,24,177,2463,1492,69,1649,1517,1734,1732, + 3475,1743,3056,1781,176,1389,2853,1377,2562,179, + 2891,35,636,32,4575,2324,27,30,31,629, + 626,26,28,1320,296,25,23,50,1329,106, + 76,77,108,1331,1420,1372,1510,69,1344,177, + 1093,1492,1625,1649,1517,1734,1732,2991,1743,1465, + 1781,176,502,35,431,1377,178,2891,35,636, + 32,4575,473,27,30,31,629,626,26,28, + 1320,296,25,23,50,1329,106,76,77,108, + 1331,1420,1372,1510,3154,68,177,2400,1492,69, + 1649,1517,1734,1732,969,1743,241,1781,176,584, + 2119,2853,2497,192,3012,35,636,32,4575,2651, + 27,30,31,629,626,26,28,1320,296,25, + 23,50,1329,106,76,77,108,1331,1420,1372, + 1967,426,462,162,1243,35,636,32,4256,2742, + 27,30,31,629,626,373,28,1257,1331,1944, + 2641,1976,2653,3485,2565,368,369,1969,3239,1991, + 273,296,44,2166,2795,1978,2014,2016,161,173, + 3012,35,636,32,4575,3584,27,30,31,629, + 626,26,28,1320,296,25,23,50,1329,106, + 76,77,108,1331,1420,1372,1967,1452,266,162, + 88,646,355,102,1968,35,636,32,349,627, + 2696,30,31,629,626,1944,2252,1976,274,264, + 265,1389,3710,1969,900,1991,428,462,2853,1389, + 900,1978,2014,2016,161,172,3012,35,636,32, + 4575,3130,27,30,31,629,626,26,28,1320, + 296,25,23,50,1329,106,76,77,108,1331, + 1420,1372,1967,2664,1377,162,1514,35,636,32, + 4811,2664,27,30,31,629,626,57,28,3765, + 1452,1944,2065,1976,2768,1644,5164,410,227,1969, + 5838,1991,273,296,53,410,424,1978,2014,2016, + 161,171,3012,35,636,32,4575,1377,27,30, + 31,629,626,26,28,1320,296,25,23,50, + 1329,106,76,77,108,1331,1420,1372,1967,485, + 266,162,2243,35,636,32,4811,87,27,30, + 31,629,626,56,28,1630,2252,1944,3703,1976, + 274,264,265,427,462,1969,3101,1991,2146,35, + 488,900,5158,1978,2014,2016,161,170,3012,35, + 636,32,4575,51,27,30,31,629,626,26, + 28,1320,296,25,23,50,1329,106,76,77, + 108,1331,1420,1372,1967,408,266,162,1703,35, + 636,32,5897,3343,27,30,31,629,626,59, + 28,1897,2809,1944,2291,1976,278,264,265,1389, + 3130,1969,61,1991,482,657,321,3642,243,1978, + 2014,2016,161,169,3012,35,636,32,4575,1377, + 27,30,31,629,626,26,28,1320,296,25, + 23,50,1329,106,76,77,108,1331,1420,1372, + 1967,2664,266,162,1703,35,636,32,5897,52, + 27,30,31,629,626,58,28,1986,1331,1944, + 2880,1976,281,264,265,3393,1983,1969,60,1991, + 1465,71,35,330,2058,1978,2014,2016,161,168, + 3012,35,636,32,4575,1377,27,30,31,629, + 626,26,28,1320,296,25,23,50,1329,106, + 76,77,108,1331,1420,1372,1967,1886,266,162, + 1968,35,636,32,2252,384,3151,30,31,629, + 626,2119,485,3578,3579,1944,2073,1976,284,264, + 265,2067,2276,1969,2274,1991,1798,1465,71,1389, + 4997,1978,2014,2016,161,167,3012,35,636,32, + 4575,1625,27,30,31,629,626,26,28,1320, + 296,25,23,50,1329,106,76,77,108,1331, + 1420,1372,1967,2299,2847,162,364,369,2252,4480, + 69,2664,266,482,416,2560,2252,3451,2119,2156, + 2652,1944,147,1976,322,4181,5180,2854,589,1969, + 2669,1991,287,264,265,586,2682,1978,2014,2016, + 161,166,3012,35,636,32,4575,377,27,30, + 31,629,626,26,28,1320,296,25,23,50, + 1329,106,76,77,108,1331,1420,1372,1967,437, + 266,162,971,3141,369,441,69,2252,266,845, + 2352,1414,1519,1377,215,847,3862,1944,332,1976, + 278,264,265,3662,243,1969,331,1991,281,264, + 265,1389,1017,1978,2014,2016,161,165,3012,35, + 636,32,4575,90,27,30,31,629,626,26, + 28,1320,296,25,23,50,1329,106,76,77, + 108,1331,1420,1372,1967,69,638,162,1377,89, + 2076,69,102,2664,266,2248,3537,2364,465,69, + 2311,3721,366,1944,2171,1976,1519,340,1792,1389, + 3862,1969,3862,1991,284,264,265,585,2927,1978, + 2014,2016,161,164,3012,35,636,32,4575,1060, + 27,30,31,629,626,26,28,1320,296,25, + 23,50,1329,106,76,77,108,1331,1420,1372, + 1967,3134,266,162,1377,2152,3541,330,2368,1572, + 638,2660,638,1889,35,727,423,1465,2919,1944, + 69,1976,568,264,265,2298,2818,1969,2818,1991, + 491,477,918,491,2990,1978,2014,2016,161,163, + 2891,35,636,32,4575,308,27,30,31,629, + 626,26,28,1320,296,25,23,50,1329,106, + 76,77,108,1331,1420,1372,1510,69,2119,177, + 415,1492,2627,1649,1517,1734,1732,1620,1743,2001, + 1781,176,502,35,2989,2110,140,3072,35,636, + 32,4575,1718,27,30,31,629,626,26,28, + 1320,296,25,23,50,1329,106,76,77,108, + 1331,1420,1372,1967,49,94,162,96,3328,915, + 2852,1637,143,3232,369,724,956,2980,1377,2680, + 69,69,1944,69,1976,2063,5896,1452,5989,69, + 1969,147,1991,746,2490,5242,72,2075,1978,2014, + 2016,161,160,3132,35,636,32,4575,67,27, + 30,31,629,626,26,28,1320,296,25,23, + 50,1329,106,76,77,108,1331,1420,1372,1510, + 69,1465,177,829,1492,4981,1649,1517,1734,1732, + 69,1743,1452,1781,176,2877,3160,1377,1377,222, + 3245,35,636,32,4575,1467,27,30,31,629, + 626,26,28,1320,296,25,23,50,1329,106, + 76,77,108,1331,1420,1372,1510,66,65,843, + 97,1492,2119,1649,1517,1734,1732,1001,1743,1019, + 1828,197,3245,35,636,32,4575,1806,27,30, + 31,629,626,26,28,1320,296,25,23,50, + 1329,106,76,77,108,1331,1420,1372,1510,71, + 35,330,2155,1492,69,1649,1517,1734,1732,5916, + 1743,69,1828,197,2297,98,678,3399,369,2025, + 2442,2682,2636,577,71,35,727,423,3245,35, + 636,32,4575,458,27,30,31,629,626,26, + 28,1320,296,25,23,50,1329,106,76,77, + 108,1331,1420,1372,1510,1642,49,584,1810,1492, + 335,1649,1517,1734,1732,2330,1743,46,1828,197, + 3245,35,636,32,4575,329,27,30,31,629, + 626,26,28,1320,296,25,23,50,1329,106, + 76,77,108,1331,1420,1372,1510,502,35,431, + 1800,1492,69,1649,1517,1734,1732,1399,1743,147, + 1828,197,69,5492,2682,3667,3434,5977,2524,3043, + 2198,4730,71,35,727,423,3245,35,636,32, + 4575,3052,27,30,31,629,626,26,28,1320, + 296,25,23,50,1329,106,76,77,108,1331, + 1420,1372,1510,255,308,1015,1173,1492,69,1649, + 1517,1734,1732,6210,1743,1791,1828,197,3404,35, + 636,32,4575,457,27,30,31,629,626,26, + 28,1320,296,25,23,50,1329,106,76,77, + 108,1331,1420,1372,1510,386,1377,1904,1994,1492, + 1638,1649,1517,1734,1732,1292,1743,147,1828,197, + 2851,5500,3102,69,378,1803,996,383,1018,1216, + 3712,2682,1909,2682,376,2508,64,310,193,460, + 2823,35,636,32,4575,599,27,30,31,629, + 626,26,28,1320,296,25,23,50,1329,106, + 76,77,108,1331,1420,1372,1967,377,189,69, + 339,1798,212,3158,3041,4997,2682,2031,1897,69, + 2682,3665,2662,2848,1544,2987,1377,3245,35,636, + 32,4575,3246,27,30,31,629,626,26,28, + 1320,296,25,23,50,1329,106,76,77,108, + 1331,1420,1372,1510,3506,232,3050,2030,1492,231, + 1649,1517,1734,1732,1377,2979,3351,35,636,32, + 4575,2682,27,30,31,629,626,26,28,1320, + 296,25,23,50,1329,106,76,77,108,1331, + 1420,1372,1967,3006,55,2163,1638,69,4181,3492, + 4181,1292,5400,3161,5118,2500,3105,3126,2162,3254, + 338,1944,4181,1976,3040,2530,3125,2620,3096,1969, + 4197,1991,4197,3127,193,2352,1377,1978,3230,3245, + 35,636,32,4575,377,27,30,31,629,626, + 26,28,1320,296,25,23,50,1329,106,76, + 77,108,1331,1420,1372,1510,54,2431,3352,3479, + 1492,3267,1649,1517,1734,2937,3298,35,636,32, + 4575,1377,27,30,31,629,626,26,28,1320, + 296,25,23,50,1329,106,76,77,108,1331, + 1420,1372,1967,464,2730,395,3162,394,3157,2710, + 3551,101,3307,3320,3360,2728,3426,3429,87,2944, + 2682,1944,2682,1976,2945,3406,3295,3327,2946,1969, + 3498,1991,3245,35,636,32,4575,3188,27,30, + 31,629,626,26,28,1320,296,25,23,50, + 1329,106,76,77,108,1331,1420,1372,1510,235, + 3004,233,2914,1492,3036,1649,1517,2890,3245,35, + 636,32,4575,173,27,30,31,629,626,26, + 28,1320,296,25,23,50,1329,106,76,77, + 108,1331,1420,1372,1510,3432,2990,2682,2682,1492, + 1377,1649,2892,3298,35,636,32,4575,324,27, + 30,31,629,626,26,28,1320,296,25,23, + 50,1329,106,76,77,108,1331,1420,1372,1967, + 3389,3435,4190,2057,1756,3355,334,4242,3185,2682, + 3491,2682,3608,1007,6952,6952,6952,6952,1944,1377, + 1976,3245,35,636,32,4575,3185,27,30,31, + 629,626,26,28,1320,296,25,23,50,1329, + 106,76,77,108,1331,1420,1372,1510,256,3351, + 226,6952,1492,1377,2869,3298,35,636,32,4575, + 2661,27,30,31,629,626,26,28,1320,296, + 25,23,50,1329,106,76,77,108,1331,1420, + 1372,1967,6952,486,6952,6952,6952,6952,6952,6952, + 590,6952,6952,6952,6952,6952,6952,6952,6952,6952, + 1944,1377,3144,3245,35,636,32,4575,6952,27, + 30,31,629,626,26,28,1320,296,25,23, + 50,1329,106,76,77,108,1331,1420,1372,1510, + 6952,4906,6952,6952,2871,3245,35,636,32,4575, + 6952,27,30,31,629,626,26,28,1320,296, + 25,23,50,1329,106,76,77,108,1331,1420, + 1372,1510,71,35,727,423,2878,3298,35,636, + 32,4575,1377,27,30,31,629,626,26,28, + 1320,296,25,23,50,1329,106,76,77,108, + 1331,1420,1372,1967,49,6952,6952,6952,6952,6952, + 6952,6952,4968,6952,1377,724,1447,3298,35,636, + 32,4575,3150,27,30,31,629,626,26,28, + 1320,296,25,23,50,1329,106,76,77,108, + 1331,1420,1372,1967,5030,6952,6952,6952,6952,6952, + 6952,6952,6952,6952,6952,6952,6952,3245,35,636, + 32,4575,3152,27,30,31,629,626,26,28, + 1320,296,25,23,50,1329,106,76,77,108, + 1331,1420,1372,2688,3245,35,636,32,4575,6952, + 27,30,31,629,626,26,28,1320,296,25, + 23,50,1329,106,76,77,108,1331,1420,1372, + 2739,3245,35,636,32,4575,6952,27,30,31, + 629,626,26,28,1320,296,25,23,50,1329, + 106,76,77,108,1331,1420,1372,2745,3245,35, + 636,32,4575,6952,27,30,31,629,626,26, + 28,1320,296,25,23,50,1329,106,76,77, + 108,1331,1420,1372,2762,3245,35,636,32,4575, + 6952,27,30,31,629,626,26,28,1320,296, + 25,23,50,1329,106,76,77,108,1331,1420, + 1372,3099,3245,35,636,32,4575,6952,27,30, + 31,629,626,26,28,1320,296,25,23,50, + 1329,106,76,77,108,1331,1420,1372,3107,3245, + 35,636,32,4575,6952,27,30,31,629,626, + 26,28,1320,296,25,23,50,1329,106,76, + 77,108,1331,1420,1372,3132,3245,35,636,32, + 4575,6952,27,30,31,629,626,26,28,1320, + 296,25,23,50,1329,106,76,77,108,1331, + 1420,1372,2952,1258,35,636,32,4429,2742,27, + 30,31,629,626,373,28,6952,6952,6952,6952, + 1377,3457,35,727,423,4659,6952,69,2921,6952, + 1377,69,599,1292,271,296,1292,1413,35,636, + 32,4256,4853,27,30,31,629,626,373,28, + 2629,1377,6952,308,377,189,189,638,1296,189, + 2761,571,5917,4181,221,3592,4181,234,2350,6952, + 646,355,266,366,6952,1638,6952,349,627,2204, + 1292,3711,3541,6952,1377,262,6952,1292,377,6952, + 2921,348,269,264,265,599,157,35,727,423, + 6051,6952,6952,193,646,355,1404,442,1038,6952, + 189,349,627,1251,5234,6952,386,3477,189,195, + 342,598,820,6952,6952,3483,309,3353,49,213, + 276,279,282,1344,1452,378,1803,996,383,724, + 810,69,3801,6952,6952,3403,1292,443,444,445, + 3250,6952,6952,6952,6952,6952,2217,2415,2481,2547, + 4680,285,6952,6952,6952,1214,3244,6952,229,189, + 6952,6952,3248,3582,6952,6952,6952,6952,2939,3753, + 3245,35,636,32,4575,2621,27,30,31,629, + 626,26,28,1320,296,25,23,50,1329,106, + 76,77,108,1331,1420,2807,3245,35,636,32, + 4575,6952,27,30,31,629,626,26,28,1320, + 296,25,23,50,1329,106,76,77,108,1331, + 1420,2868,6952,6952,6952,446,449,6952,6952,400, + 1220,35,3494,32,4429,2742,27,30,31,629, + 626,373,28,6952,2159,1822,35,636,32,4256, + 6253,27,30,31,629,626,373,28,6952,157, + 35,727,423,2621,6952,6952,6952,4244,5445,6952, + 6952,6952,6952,6952,6952,385,6952,6952,6316,230, + 69,6952,6952,6952,638,599,2190,6952,6952,6952, + 3862,49,6952,385,69,6952,2792,646,355,1292, + 366,4181,724,1195,349,627,6952,377,189,6952, + 259,69,646,355,6952,599,1292,2031,1582,349, + 627,2000,189,4197,386,6952,4730,6051,1214,6952, + 6952,3195,3246,875,6952,6952,6952,262,189,189, + 638,6952,386,378,1803,996,383,3353,2988,213, + 6952,6952,2664,2575,6952,6952,367,2030,237,249, + 745,378,1803,996,383,386,236,246,247,248, + 250,2575,6952,6952,3427,1,202,6952,6952,4181, + 599,6952,6952,6952,380,1803,996,383,201,6952, + 6952,216,200,203,204,205,206,207,540,6952, + 386,377,262,189,591,1915,35,727,423,452, + 454,3489,3353,6952,213,6952,6952,2664,6952,378, + 1803,996,383,237,249,745,3246,6952,6952,576, + 6952,236,246,247,248,250,2690,49,6952,6952, + 6952,202,6952,6952,6952,538,539,6952,724,2218, + 6952,594,6952,201,6952,214,217,200,203,204, + 205,206,207,3245,35,636,32,4575,6952,27, + 30,31,629,626,26,28,1320,296,25,23, + 50,1329,106,76,77,108,1331,2564,345,157, + 35,727,423,599,6952,6952,2004,35,727,423, + 6952,6952,6952,6952,6952,6952,4545,6952,6952,6952, + 3507,35,727,423,4659,262,189,6952,6952,6952, + 6952,49,6952,272,296,3353,6952,213,49,6952, + 2664,6952,724,2108,6952,6952,237,249,745,724, + 2224,6952,308,6952,236,246,247,248,250,6952, + 431,69,6952,6952,202,599,1292,69,3252,1519, + 1519,266,1292,3862,3862,3252,201,6952,6952,3666, + 200,203,204,205,206,207,6952,262,189,189, + 6952,270,264,265,6952,189,6952,3353,3057,213, + 3760,6952,2664,6952,3058,6952,6952,6952,237,249, + 745,6952,6952,6952,6952,6952,236,246,247,248, + 250,6952,517,638,638,309,202,599,6952,277, + 280,283,1344,1452,6952,6952,6952,6952,201,366, + 366,211,200,203,204,205,206,207,6952,262, + 189,759,35,727,423,759,35,727,423,3353, + 286,213,6952,6952,2664,6952,914,4456,6952,6952, + 237,249,745,6952,6952,6952,6952,6952,236,246, + 247,248,250,49,603,6952,6952,49,202,599, + 6952,69,6952,1519,724,2355,1292,3862,724,47, + 201,6952,6952,209,200,203,204,205,206,207, + 6952,262,189,157,35,727,423,6952,6952,189, + 2873,3353,6952,213,814,6952,2664,6952,3326,6952, + 6952,6952,237,249,745,6952,6952,6952,6952,6952, + 236,246,247,248,250,49,689,638,6952,6952, + 202,599,6952,6952,6952,6952,724,47,6952,6952, + 6952,6952,201,366,6952,210,200,203,204,205, + 206,207,6952,262,189,759,35,727,423,6952, + 6952,6952,965,3353,6952,213,69,6952,2664,6952, + 5386,1292,6952,6952,237,249,745,6952,6952,6952, + 6952,6952,236,246,247,248,250,49,775,6952, + 6952,6952,202,599,189,69,6952,6952,724,47, + 1292,2163,6952,2997,201,6952,4181,220,200,203, + 204,205,206,207,6952,262,189,157,35,727, + 423,6952,6952,189,2600,3353,6952,213,4197,6952, + 2664,6952,4211,6952,6952,6952,237,249,745,6952, + 6952,6952,6952,6952,236,246,247,248,250,49, + 861,6952,69,69,202,599,6952,4181,599,6952, + 724,47,6952,6952,6952,6952,201,6952,6952,3713, + 200,203,204,205,206,207,6952,262,189,377, + 377,189,71,35,727,423,920,3353,6952,213, + 2125,6952,2664,6952,6952,6952,6952,6952,237,249, + 745,6952,6952,394,3246,3246,236,246,247,248, + 250,6952,6952,6952,49,6952,202,6952,6952,6952, + 6952,3670,3295,3327,6952,724,1171,6952,201,2172, + 2077,225,200,203,204,205,206,207,1391,35, + 636,32,4256,4853,27,30,31,629,626,373, + 28,3245,35,636,32,4575,6952,27,30,31, + 629,626,26,28,1320,296,25,23,50,1329, + 106,76,77,108,2597,6952,6952,6952,157,35, + 727,423,6952,6952,157,35,727,423,6952,6952, + 6952,6952,947,6952,6952,6952,6952,599,6952,6952, + 2765,35,727,423,6952,646,355,6952,6952,6952, + 49,6952,349,627,6952,6952,49,386,6952,262, + 189,724,47,6952,6952,6952,587,724,47,3353, + 6952,213,49,6952,2664,6952,378,1803,996,383, + 237,249,745,724,47,6952,588,1457,236,246, + 247,248,250,1652,1033,6952,6952,6952,202,599, + 6952,6952,157,35,727,423,6952,6952,6952,2561, + 201,6952,6952,219,200,203,204,205,206,207, + 6952,262,189,71,35,727,423,6952,6952,6952, + 6952,3353,6952,213,49,6952,2664,6952,6952,6952, + 6952,6952,237,249,745,724,47,6952,6952,6952, + 236,246,247,248,250,49,6952,6952,6952,6952, + 202,6952,6952,6952,6952,6952,724,715,6952,6952, + 6952,1699,201,6952,6952,228,200,203,204,205, + 206,207,3245,35,636,32,4575,6952,27,30, + 31,629,626,26,28,1320,296,25,23,50, + 1329,106,76,77,108,2616,3245,35,636,32, + 4575,6952,27,30,31,629,626,26,28,1320, + 296,25,23,50,1329,106,76,77,108,2622, + 3556,35,552,6952,6952,6952,6952,6952,6952,6952, + 6952,6952,6952,271,296,6952,2101,35,636,32, + 4429,6952,27,30,31,629,626,373,28,6952, + 2357,35,636,32,4256,2742,27,30,31,629, + 626,373,28,6952,71,35,727,423,6952,6952, + 6952,266,1745,35,636,32,4256,2742,27,30, + 31,629,626,373,28,6952,6952,6952,6952,69, + 638,269,264,265,4181,1378,49,6952,6952,3862, + 4181,6952,6952,646,355,6952,367,724,731,6952, + 350,627,6952,6952,6952,386,377,646,355,6952, + 6952,69,4197,6952,349,627,4181,6952,6952,276, + 279,282,1344,1452,380,1803,996,383,348,646, + 355,3246,157,35,727,423,349,627,377,638, + 2795,35,727,423,6952,2349,2679,2687,2753,6221, + 348,6952,6952,6952,6952,366,2179,342,598,820, + 6952,6952,6952,3246,49,69,6952,6952,6952,6952, + 599,6952,49,6952,6952,724,47,6952,6952,596, + 598,820,4456,724,47,6952,6952,394,2222,6952, + 6952,6952,377,189,6952,6952,6952,6952,561,562, + 566,1746,2031,3709,6952,2798,3295,3327,6952,3129, + 3582,6952,6952,6952,6952,6952,6952,3246,6952,3245, + 713,636,1850,4575,2811,27,30,31,629,626, + 26,28,1320,296,25,23,50,1329,106,76, + 77,84,2377,6952,6952,6952,6952,6952,3245,35, + 636,32,4575,604,27,30,31,629,626,26, + 28,1320,296,25,23,50,1329,106,76,77, + 83,3245,35,636,32,4575,6952,27,30,31, + 629,626,26,28,1320,296,25,23,50,1329, + 106,76,77,82,3245,35,636,32,4575,6952, + 27,30,31,629,626,26,28,1320,296,25, + 23,50,1329,106,76,77,81,3245,35,636, + 32,4575,6952,27,30,31,629,626,26,28, + 1320,296,25,23,50,1329,106,76,77,80, + 3245,35,636,32,4575,6952,27,30,31,629, + 626,26,28,1320,296,25,23,50,1329,106, + 76,77,79,3245,35,636,32,4575,6952,27, + 30,31,629,626,26,28,1320,296,25,23, + 50,1329,106,76,77,78,2951,35,636,32, + 4575,6952,27,30,31,629,626,26,28,1320, + 296,25,23,50,1329,106,76,77,104,3245, + 35,636,32,4575,6952,27,30,31,629,626, + 26,28,1320,296,25,23,50,1329,106,76, + 77,110,3245,35,636,32,4575,6952,27,30, + 31,629,626,26,28,1320,296,25,23,50, + 1329,106,76,77,109,3245,35,636,32,4575, + 6952,27,30,31,629,626,26,28,1320,296, + 25,23,50,1329,106,76,77,107,3245,35, + 636,32,4575,6952,27,30,31,629,626,26, + 28,1320,296,25,23,50,1329,106,76,77, + 105,3192,35,636,32,4575,6952,27,30,31, + 629,626,26,28,1320,296,25,23,50,1329, + 86,76,77,1243,35,636,32,4256,2742,27, + 30,31,629,626,373,28,1578,71,35,727, + 423,4181,6952,6952,71,35,727,423,6952,6952, + 6952,6952,6952,6952,6952,6952,1845,71,35,727, + 423,4181,6952,262,6952,6952,6952,6952,6952,49, + 6952,6952,69,6952,6952,6952,49,4181,6952,6952, + 724,2218,6952,262,239,249,745,724,1187,49, + 646,355,238,246,247,248,250,349,627,377, + 724,2548,6952,6952,239,249,745,6952,6952,6952, + 6952,348,238,246,247,248,250,1934,6952,6952, + 6952,6952,4181,6952,3246,240,242,244,3250,2792, + 251,241,243,69,4181,6952,6952,6952,4181,6952, + 343,598,820,6952,262,240,242,244,3250,2354, + 251,241,243,6952,6952,6952,4197,6952,6952,6952, + 377,6952,6952,6952,6952,239,249,745,2668,6952, + 6136,6952,6952,238,246,247,248,250,2023,6952, + 6952,6952,6952,4181,6952,3246,6952,6952,2676,6952, + 6136,1360,35,636,32,4429,6952,27,30,31, + 629,626,373,28,6952,262,240,242,244,3250, + 2864,251,241,243,6952,6952,6952,6952,6952,6952, + 6952,6952,6952,6952,6952,69,239,249,745,6952, + 4181,540,6952,6952,238,246,247,248,250,6952, + 6952,6952,6952,6952,6952,638,6952,6952,1667,2737, + 6952,6136,377,4181,6952,6952,6952,6952,646,355, + 6952,367,6952,6952,6952,352,627,240,242,244, + 3250,6952,580,241,243,262,1756,3246,537,539, + 6952,4181,6952,6952,6952,6952,6952,6952,6952,6952, + 6952,6952,6952,6952,6952,6952,239,249,745,6952, + 6952,6952,544,262,238,246,247,248,250,6952, + 6952,6952,6952,6952,6952,6952,3574,6952,6952,6952, + 6952,6952,6952,6952,239,249,745,6952,6952,6952, + 6952,6952,238,246,247,248,250,240,242,244, + 3250,6952,579,241,243,6952,2112,6952,6952,69, + 2793,4181,6952,6952,4181,4181,6952,6952,6952,2201, + 6952,3605,35,552,4181,240,242,244,3250,6952, + 252,241,243,262,272,296,377,4197,6952,6952, + 6952,6952,6952,6952,6952,6952,262,6952,6952,6952, + 6952,6952,6952,1378,239,249,745,3862,4181,6952, + 6952,3246,238,246,247,248,250,239,249,745, + 6952,6952,266,6952,6952,238,246,247,248,250, + 4197,6952,6952,6952,6952,6952,542,6952,6952,6952, + 6952,6952,270,264,265,240,242,244,3250,1179, + 341,241,243,5917,4181,6952,6952,638,240,242, + 244,3250,540,534,241,243,3042,6952,6952,6952, + 6952,599,6952,366,69,6952,262,6952,6952,599, + 277,280,283,1344,1452,69,6952,6952,6952,6952, + 599,6952,6952,377,189,6952,6952,1404,442,1038, + 5386,377,189,221,6952,394,6952,6952,6952,537, + 539,221,377,189,6952,69,6952,6952,2204,6952, + 4181,6952,221,2798,3295,3327,2204,6952,6952,6952, + 6952,6952,6952,6952,6952,6952,6952,2204,443,444, + 445,3250,377,6952,6952,6952,6952,3632,6952,6952, + 6952,6952,6952,6952,6952,6952,6952,6952,6952,561, + 562,567,6952,3248,6952,6952,6952,3246,6952,6952, + 6952,6952,6952,6952,6952,6952,6952,6952,6952,6952, + 6952,223,6952,6952,6952,6952,6952,6952,6952,3872, + 6952,6952,595,6952,6952,6952,6952,6952,6952,6952, + 3904,6952,6952,6952,6952,6952,6952,6952,6952,6952, + 6952,6952,6952,6952,6952,6952,6952,6952,6952,6952, + 6952,6952,6952,6952,6952,6952,446,448,6952,6952, + 6952,6952,6952,6952,6952,6952,6952,6952,6952,6952, + 6952,6952,6952,6952,6952,6952,6952,6952,6952,6952, + 6952,6952,6952,2286,6952,6952,4218,6952,6952,6952, + 6952,6952,6952,3668,6952,0,864,1,0,39, + 6967,1,0,39,6966,1,0,38,641,0, + 38,6967,0,38,6966,0,489,919,0,475, + 1191,0,1192,29,0,6967,48,0,6966,48, + 0,6964,418,0,6963,418,0,39,6967,0, + 39,6966,0,1,479,0,493,981,0,492, + 1406,0,35,33,0,1192,422,0,47,37, + 0,4001,126,0,1,1030,0,1,7259,0, + 1,7258,0,1,7257,0,1,7256,0,1, + 7255,0,1,7254,0,1,7253,0,1,7252, + 0,1,7251,0,1,7250,0,1,7249,0, + 318,429,0,318,323,0,7220,275,0,7219, + 275,0,7324,275,0,7323,275,0,7247,275, + 0,7246,275,0,7245,275,0,7244,275,0, + 7243,275,0,7242,275,0,7241,275,0,7240, + 275,0,7259,275,0,7258,275,0,7257,275, + 0,7256,275,0,7255,275,0,7254,275,0, + 7253,275,0,7252,275,0,7251,275,0,7250, + 275,0,7249,275,0,39,6967,275,0,39, + 6966,275,0,6990,275,0,43,6988,0,43, + 37,0,1023,91,0,32,34,0,39,641, + 0,1,5861,0,1,1266,0,1,5608,0, + 1,5631,0,1,5654,0,1,5677,0,1, + 5700,0,1,5723,0,2680,1,0,5579,1, + 0,1,6974,0,1,6973,0,1,6972,0, + 1,6971,0,1,6970,0,1,6969,0,1, + 6968,0,1,808,0,1,979,0,1,1065, + 0,1,1108,0,1,1297,0,1,3360,0, + 39,1,0,365,480,0,6958,1,0,6957, + 1,0,271,714,0,32,423,0,29,422, + 0,4001,128,0,4001,127,0,6967,275,0, + 6966,275,0,536,3249,0,6990,1,263,0, + 39,1,263,0,263,451,0,6967,37,0, + 6966,37,0,6988,45,0,37,45,0,6990, + 1,0,1,92,0,6962,440,0,6961,440, + 0,655,1,0,641,1,0,263,450,0, + 3402,418,0,6967,2,37,0,6966,2,37, + 0,6967,36,0,6966,36,0,1,365,0, + 8,12,0,365,95,0,35,73,0,536, + 6108,0,1,263,0,313,1581,0,263,254, + 0,1,1199,0,1,2122,0,263,253,0, + 6964,1,0,6960,1,0,1,263,3587,0, + 6961,263,0,3588,263,0,3643,263,0,10, + 12,0,8,10,12,0,3708,227,0,218, + 5172,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1106,349 +1407,391 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 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,0,49, - 50,51,52,53,54,0,56,57,58,59, - 60,61,62,0,64,65,66,67,0,6, - 0,71,4,3,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,55,56,3,58,59, + 0,61,62,63,4,65,66,67,0,69, + 0,1,2,73,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,0,49,50,51,52,53, - 54,0,56,57,58,59,60,61,62,0, - 64,65,66,67,0,92,93,71,4,0, + 44,45,46,47,48,49,50,51,52,53, + 0,55,56,3,58,59,0,61,62,63, + 4,65,66,67,0,69,0,1,2,73, 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, - 0,49,50,51,52,53,54,68,56,57, - 58,59,60,61,62,0,64,65,66,67, - 0,1,2,71,4,10,74,75,76,77, + 48,49,50,51,52,53,0,55,56,0, + 58,59,0,61,62,63,7,65,66,67, + 0,69,0,0,4,73,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,0,49,50,51, - 52,53,54,0,56,57,58,59,60,61, - 62,0,64,65,66,67,0,1,2,8, - 4,0,74,75,76,77,78,79,80,81, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,55,56,0,58,59,0,61, + 62,63,0,65,66,67,94,69,0,86, + 87,3,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,71,49,50,51,52,53,54,68, - 56,57,58,59,60,61,62,0,64,65, - 66,67,99,6,0,1,2,0,74,75, + 46,47,48,49,50,51,52,53,70,55, + 56,0,58,59,3,61,62,63,96,65, + 66,67,94,69,92,93,101,102,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,0,49, - 50,51,52,53,54,68,56,57,58,59, - 60,61,62,0,64,65,66,67,0,92, - 93,0,1,2,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,55,56,3,58,59, + 0,61,62,63,0,65,66,67,0,69, + 0,0,1,2,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,0,49,50,51,52,53, - 54,0,56,57,58,59,60,61,62,0, - 64,65,66,67,0,6,0,89,0,91, + 44,45,46,47,48,49,50,51,52,53, + 0,55,56,3,58,59,0,61,62,63, + 0,65,66,67,94,69,86,87,0,95, 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, - 0,49,50,51,52,53,54,69,56,57, - 58,59,60,61,62,0,64,65,66,67, - 99,92,93,87,88,0,74,75,76,77, + 48,49,50,51,52,53,0,55,56,0, + 58,59,6,61,62,63,7,65,66,67, + 94,69,92,93,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,0,49,50,51, - 52,53,54,68,56,57,58,59,60,61, - 62,0,64,65,66,67,0,1,2,23, - 24,5,74,75,76,77,78,79,80,81, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,55,56,0,58,59,3,61, + 62,63,0,65,66,67,0,69,0,1, + 2,5,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,0,49,50,51,52,53,54,0, - 56,57,58,59,60,61,62,0,64,65, - 66,67,0,1,2,0,4,0,74,75, + 46,47,48,49,50,51,52,53,0,55, + 56,3,58,59,0,61,62,63,96,65, + 66,67,0,69,0,3,0,95,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,0,49, - 50,51,52,53,54,68,56,57,58,59, - 60,61,62,0,64,65,66,67,0,6, - 0,0,9,3,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,55,56,0,58,59, + 0,61,62,63,7,65,66,67,0,69, + 86,87,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,63,49,50,51,52,53, - 54,0,56,57,58,59,60,61,62,101, - 64,65,66,67,0,107,0,1,2,0, + 44,45,46,47,48,49,50,51,52,53, + 0,55,56,3,58,59,0,61,62,63, + 96,65,66,67,0,69,0,3,0,0, 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, - 0,49,50,51,52,53,54,68,56,57, - 58,59,60,61,62,0,64,65,66,67, - 0,1,2,89,9,91,74,75,76,77, + 48,49,50,51,52,53,0,55,56,0, + 58,59,0,61,62,63,4,65,66,67, + 0,69,86,87,86,87,74,75,76,77, 78,79,80,81,82,83,84,85,0,1, - 2,3,4,5,6,7,0,9,10,11, + 2,3,4,5,6,7,8,121,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,63,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,0,49,50,51, - 52,53,54,0,56,57,58,4,0,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,0,1,2,40,0, - 40,55,0,1,2,3,4,5,48,7, - 8,0,0,0,0,0,56,57,58,59, - 60,8,62,0,9,0,120,25,0,0, - 0,71,72,22,23,24,8,26,27,28, - 29,30,31,32,33,34,86,22,23,24, - 0,26,27,28,29,30,31,32,33,34, - 65,66,63,103,104,105,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,68,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,55,56,3,58,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,0,1,2,0,4,39,3,0, + 1,2,3,4,5,6,7,8,0,1, + 2,53,4,55,56,57,58,0,0,61, + 62,63,0,1,2,3,4,0,6,71, + 8,73,5,0,7,0,0,0,1,2, + 3,4,5,6,7,8,88,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, - 34,73,0,89,0,91,40,3,96,97, - 6,0,8,9,48,4,0,6,90,89, - 9,91,56,57,58,59,60,98,62,25, - 0,118,0,0,1,2,4,71,72,35, - 36,37,38,0,0,1,2,3,4,5, - 6,7,86,9,22,0,0,0,3,55, - 0,0,1,2,3,4,5,63,7,103, - 104,105,68,69,70,71,72,73,22,23, - 24,48,26,27,28,29,30,31,32,33, - 34,87,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,0,63,48,3, - 106,107,108,109,110,111,112,113,114,115, - 116,117,118,119,120,0,0,70,3,0, - 4,6,0,8,9,103,104,105,6,96, - 97,0,0,1,2,3,4,5,6,7, - 25,9,0,1,2,3,4,5,101,7, - 35,36,37,38,107,108,109,110,111,112, - 113,114,115,116,117,0,70,0,3,0, - 55,55,0,1,2,0,4,5,63,7, - 5,0,0,68,69,70,71,72,73,22, - 23,24,60,26,27,28,29,30,31,32, - 33,34,87,88,89,90,91,92,93,94, - 95,96,97,98,99,100,101,35,36,100, - 48,106,107,108,109,110,111,112,113,114, - 115,116,117,118,119,120,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, + 71,54,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,91, + 0,0,1,2,39,0,98,6,3,8, + 5,0,7,0,9,0,1,2,53,4, + 55,56,57,58,0,0,61,62,63,0, + 1,2,3,4,10,6,71,8,73,34, + 35,36,37,120,39,0,0,0,1,2, + 0,4,5,88,7,9,9,57,0,54, + 0,1,2,3,4,60,6,9,8,64, + 57,60,57,68,0,70,71,72,73,114, + 115,116,0,1,2,3,4,5,6,7, + 8,86,87,68,89,90,91,92,93,94, + 95,96,97,98,99,100,101,102,103,104, + 105,106,107,108,109,110,111,112,72,72, + 60,0,117,118,119,120,0,69,54,3, + 9,5,0,7,0,9,0,0,1,2, + 3,4,60,6,97,8,0,1,2,3, + 4,5,70,7,0,1,2,23,24,5, + 34,35,36,37,0,39,34,35,22,23, 24,25,26,27,28,29,30,31,32,33, - 34,0,0,1,2,0,40,5,0,1, - 2,3,4,5,48,7,0,1,2,0, - 121,0,56,57,58,59,60,8,62,0, - 64,0,1,2,3,4,5,71,7,8, - 35,36,0,1,2,3,4,5,6,7, - 48,9,86,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,69,0, - 1,2,73,40,63,6,0,1,2,98, - 4,48,6,0,73,9,0,0,55,56, - 57,58,59,60,72,62,0,64,0,0, - 1,2,3,4,5,6,7,0,9,0, - 1,2,3,4,5,6,7,48,9,86, - 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,0,1,2,0,4, - 40,6,63,0,9,0,1,2,48,70, - 5,0,7,87,88,68,56,57,58,59, - 60,0,62,100,64,0,0,1,2,0, - 4,71,6,0,8,9,0,1,2,3, - 4,5,39,7,0,0,86,0,1,2, + 54,0,0,0,1,2,60,4,0,6, + 64,8,4,5,68,7,70,71,72,73, + 64,0,1,2,3,4,60,6,71,8, + 64,57,86,87,68,89,90,91,92,93, + 94,95,96,97,98,99,100,101,102,103, + 104,105,106,107,108,109,110,111,112,118, + 57,0,60,117,118,119,120,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,0,1,2,74,4,40,55,0, - 1,2,3,4,5,48,7,8,69,73, - 55,68,0,56,57,58,59,60,72,62, - 8,64,87,88,25,0,90,72,71,4, - 0,1,2,3,4,0,6,94,95,9, - 48,87,88,86,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,67, - 55,0,1,2,40,4,5,0,7,0, - 1,2,48,63,5,0,7,0,0,4, - 56,57,58,59,60,8,62,72,64,0, - 1,2,3,4,5,71,7,0,1,2, - 0,4,5,3,7,0,1,2,0,48, - 86,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,0,0,1,2, - 73,40,63,48,0,1,2,90,4,48, - 6,0,0,9,3,87,88,56,57,58, - 59,60,0,62,0,64,0,3,0,0, - 1,2,8,4,0,6,8,0,9,0, - 1,2,0,4,5,48,7,86,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,0,1,2,0,63,40,55, - 68,69,68,69,0,67,48,73,72,103, - 104,105,68,0,56,57,58,59,60,72, - 62,8,64,0,1,2,0,0,0,3, - 3,8,4,0,8,0,1,2,94,95, - 0,48,0,0,86,0,1,2,3,4, + 33,0,0,0,1,2,39,4,5,0, + 7,0,1,2,0,4,5,3,7,0, + 53,0,55,56,57,58,0,0,61,62, + 63,0,65,0,1,2,9,0,7,6, + 73,22,23,24,25,26,27,28,29,30, + 31,32,33,92,93,88,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, + 57,70,0,1,2,39,4,60,6,72, + 8,0,1,2,95,4,5,0,7,53, + 54,55,56,57,58,113,9,61,62,63, + 0,65,101,102,103,104,105,106,107,108, + 109,110,111,112,0,1,2,3,4,5, + 6,7,8,0,88,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, - 0,1,2,48,0,40,73,0,0,63, - 67,3,8,48,0,8,0,1,2,73, - 0,56,57,58,59,60,63,62,8,64, - 68,69,25,0,0,0,1,2,0,1, - 2,0,8,0,1,2,3,4,5,6, - 7,86,9,10,11,12,13,14,15,16, - 17,18,19,20,21,65,66,0,35,36, - 3,63,0,69,0,71,69,63,35,36, - 37,38,39,48,41,42,43,44,45,46, - 47,71,49,50,51,52,53,54,0,1, - 2,0,1,2,61,71,0,0,65,66, - 3,68,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,0,0,0,1,2,0, - 1,2,0,8,10,3,48,35,36,37, - 38,39,0,41,42,43,44,45,46,47, - 25,49,50,51,52,53,54,0,0,0, - 0,3,0,61,40,69,0,10,8,67, - 0,0,48,71,0,1,2,3,4,5, + 25,26,27,28,29,30,31,32,33,72, + 0,0,1,2,39,4,5,0,7,0, + 70,4,0,86,87,0,62,54,53,0, + 55,56,57,58,0,0,61,62,63,22, + 65,0,1,2,3,4,0,6,73,8, + 9,101,102,103,104,105,106,107,108,109, + 110,111,112,88,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,0,40,0,0, - 0,3,0,0,4,48,0,8,0,35, - 36,37,38,39,8,41,42,43,44,45, - 46,47,22,49,50,51,52,53,54,0, - 68,25,90,73,63,61,70,8,0,69, - 0,67,0,1,2,3,4,5,6,7, - 10,9,10,11,12,13,14,15,16,17, - 18,19,20,21,0,0,70,0,0,0, - 3,69,73,8,0,0,0,35,36,37, - 38,39,0,41,42,43,44,45,46,47, - 25,49,50,51,52,53,54,0,0,59, - 0,0,73,61,4,0,0,65,66,0, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,0,1, + 2,60,4,39,6,0,8,97,0,1, + 2,86,87,72,6,96,0,53,0,55, + 56,57,58,0,95,61,62,63,0,65, + 0,114,115,116,0,1,2,73,22,23, + 24,25,26,27,28,29,30,31,32,33, + 0,0,88,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,0,1,2, + 60,68,39,6,0,8,91,0,70,5, + 66,67,0,98,54,0,53,5,55,56, + 57,58,0,0,61,62,63,4,65,0, + 0,9,3,0,1,2,73,22,23,24, + 25,26,27,28,29,30,31,32,33,89, + 90,88,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,0,0,0,60, + 68,39,5,64,0,73,0,68,4,66, + 67,71,0,99,100,53,0,55,56,57, + 58,99,100,61,62,63,22,65,22,23, + 24,25,26,27,28,29,30,31,32,33, + 0,1,2,3,4,5,6,7,8,53, + 88,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,0,1,2,0,4, + 39,0,1,2,0,0,99,100,0,0, + 60,0,0,91,53,4,55,56,57,58, + 98,9,61,62,63,0,65,22,23,24, + 25,26,27,28,29,30,31,32,33,0, + 1,2,3,4,5,0,7,0,0,88, + 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,72,60,0,1,2,39, + 86,87,0,1,2,9,4,0,6,60, + 8,0,54,53,57,55,56,57,58,97, + 9,61,62,63,0,65,0,1,2,3, + 4,5,6,7,8,0,10,11,12,13, + 14,15,16,17,18,19,20,21,88,0, + 1,2,3,4,0,6,0,8,9,57, + 34,35,36,37,38,69,40,41,42,43, + 44,45,46,47,48,49,50,51,52,0, + 0,74,0,0,73,59,0,0,39,0, + 64,9,66,67,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,0,1,2,3, + 4,39,6,0,8,9,91,0,34,35, + 36,37,38,98,40,41,42,43,44,45, + 46,47,48,49,50,51,52,64,92,93, + 0,1,2,59,68,39,0,34,35,0, + 71,34,35,69,0,1,2,73,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 0,1,2,114,115,116,0,0,1,2, + 113,0,34,35,36,37,38,57,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,57,0,64,0,1,2,59,0,1, + 2,3,4,5,6,7,8,69,10,11, + 12,13,14,15,16,17,18,19,20,21, + 54,0,1,2,57,54,0,0,0,0, + 64,3,34,35,36,37,38,0,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,57,60,0,0,89,90,59,0,0, + 89,90,3,9,66,67,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,60,60, + 64,0,1,2,0,1,2,0,1,2, + 34,35,36,37,38,68,40,41,42,43, + 44,45,46,47,48,49,50,51,52,0, + 0,0,3,69,71,59,0,1,2,3, + 4,5,6,7,8,69,10,11,12,13, + 14,15,16,17,18,19,20,21,57,0, + 0,57,3,3,57,36,37,0,0,9, + 34,35,36,37,38,0,40,41,42,43, + 44,45,46,47,48,49,50,51,52,60, + 0,0,0,0,3,59,5,6,7,0, + 0,0,66,67,0,0,1,2,0,9, + 9,0,1,2,3,4,5,9,7,0, + 60,0,54,4,0,34,35,36,37,54, + 9,40,72,22,23,24,25,26,27,28, + 29,30,31,32,33,54,117,39,119,0, + 0,60,3,54,64,64,64,66,67,68, + 39,70,57,64,89,90,0,0,68,0, + 3,60,72,54,73,64,68,86,87,68, + 89,90,91,92,93,94,95,96,89,90, + 99,100,101,0,103,104,105,106,107,108, + 109,110,111,112,0,1,2,0,117,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, - 21,55,0,0,70,0,3,55,63,0, - 8,72,3,69,35,36,37,38,39,48, - 41,42,43,44,45,46,47,25,49,50, - 51,52,53,54,0,0,0,3,70,72, - 61,0,0,0,39,70,67,0,1,2, - 3,4,5,6,7,0,9,10,11,12, + 21,0,0,64,0,1,2,68,0,1, + 2,10,10,34,35,36,37,38,0,40, + 41,42,43,44,45,46,47,48,49,50, + 51,52,0,1,2,3,4,5,6,7, + 8,64,10,11,12,13,14,15,16,17, + 18,19,20,21,53,53,0,0,57,57, + 0,0,0,0,0,9,34,35,36,37, + 38,10,40,41,42,43,44,45,46,47, + 48,49,50,51,52,22,23,24,25,26, + 27,28,29,30,31,32,33,118,66,67, + 0,1,2,3,4,5,6,7,8,0, + 10,11,12,13,14,15,16,17,18,19, + 20,21,61,0,64,0,0,70,0,73, + 0,0,0,71,34,35,36,37,38,9, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,0,0,0,3,3,3,59, + 0,1,2,3,4,5,6,7,8,39, + 10,11,12,13,14,15,16,17,18,19, + 20,21,54,0,59,54,54,64,0,0, + 0,68,64,0,34,35,36,37,38,0, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,0,0,0,3,89,90,0, + 60,0,1,2,3,4,5,6,7,8, + 0,10,11,12,13,14,15,16,17,18, + 19,20,21,54,54,0,0,54,3,0, + 0,0,0,64,4,34,35,36,37,38, + 9,40,41,42,43,44,45,46,47,48, + 49,50,51,52,75,0,0,0,89,90, + 59,0,1,2,3,4,5,6,7,8, + 39,10,11,12,13,14,15,16,17,18, + 19,20,21,54,54,0,54,0,0,0, + 0,0,97,4,0,34,35,36,37,38, + 71,40,41,42,43,44,45,46,47,48, + 49,50,51,52,0,0,0,0,0,0, + 59,0,1,2,3,4,5,6,7,8, + 0,10,11,12,13,14,15,16,17,18, + 19,20,21,54,54,54,0,0,54,0, + 0,0,38,68,38,34,35,36,37,38, + 0,40,41,42,43,44,45,46,47,48, + 49,50,51,52,0,0,0,3,0,0, + 59,0,1,2,3,4,5,6,7,8, + 71,10,11,12,13,14,15,16,17,18, + 19,20,21,0,0,54,0,0,0,0, + 0,0,97,38,68,34,35,36,37,38, + 70,40,41,42,43,44,45,46,47,48, + 49,50,51,52,0,1,2,3,4,5, + 6,7,8,0,10,11,12,13,14,15, + 16,17,18,19,20,21,0,0,54,0, + 113,0,113,0,0,0,0,0,34,35, + 36,37,38,70,40,41,42,43,44,45, + 46,47,48,49,50,51,52,0,1,2, + 3,4,5,6,7,8,0,10,11,12, 13,14,15,16,17,18,19,20,21,0, - 0,0,3,0,5,6,0,4,9,0, - 0,0,35,36,37,38,39,0,41,42, - 43,44,45,46,47,0,49,50,51,52, - 53,54,61,48,35,36,37,38,61,0, - 41,69,65,66,0,0,0,0,0,0, - 0,0,0,3,55,55,55,0,55,0, - 3,55,63,0,65,66,55,68,69,70, - 0,0,55,0,0,102,0,3,69,3, - 55,0,72,0,3,0,87,88,89,0, - 0,92,93,94,95,96,97,98,99,100, - 101,55,55,55,55,106,55,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,0, - 70,70,3,0,55,72,102,102,0,90, - 0,3,35,36,37,38,39,72,41,42, - 43,44,45,46,47,75,49,50,51,52, - 53,54,0,1,2,3,4,5,6,7, - 0,9,10,11,12,13,14,15,16,17, - 18,19,20,21,0,0,0,0,0,0, - 0,0,0,0,0,0,0,35,36,37, - 38,39,0,41,42,43,44,45,46,47, - 70,49,50,51,52,53,54,0,0,0, - 0,0,0,61,0,118,0,1,2,3, - 4,5,6,7,39,9,10,11,12,13, - 14,15,16,17,18,19,20,21,0,0, - 0,0,0,0,70,70,0,0,0,0, - 0,35,36,37,38,39,0,41,42,43, - 44,45,46,47,0,49,50,51,52,53, - 54,0,1,2,3,4,5,6,7,63, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,102,0,0,0,0,0, - 0,0,0,0,0,0,35,36,37,38, - 39,0,41,42,43,44,45,46,47,0, - 49,50,51,52,53,54,0,0,0,0, - 0,0,61,0,1,2,3,4,5,6, - 7,0,9,10,11,12,13,14,15,16, - 17,18,19,20,21,0,0,0,0,0, - 0,0,0,0,0,0,0,0,35,36, - 37,38,39,0,41,42,43,44,45,46, - 47,0,49,50,51,52,53,54,0,1, - 2,3,4,5,6,7,0,9,10,11, - 12,13,14,15,16,17,18,19,20,21, + 0,0,0,0,71,0,0,0,0,0, + 0,34,35,36,37,38,70,40,41,42, + 43,44,45,46,47,48,49,50,51,52, + 0,1,2,3,4,5,6,7,8,0, + 10,11,12,13,14,15,16,17,18,19, + 20,21,0,0,68,0,0,0,0,0, + 0,0,0,0,34,35,36,37,38,70, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,0,1,2,3,4,5,6, + 7,8,0,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,0,70, + 0,0,0,0,0,9,3,34,35,36, + 37,38,9,40,41,42,43,44,45,46, + 47,48,49,50,51,52,0,1,2,0, + 4,0,0,0,0,0,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 0,0,0,60,0,0,71,64,72,71, + 9,68,71,0,70,72,0,1,2,53, + 4,55,56,0,58,0,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 0,0,0,0,0,0,0,0,0,9, + 0,0,0,0,0,0,1,2,0,53, + 70,55,56,72,58,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,35,36,37,38,39,0,41, - 42,43,44,45,46,47,0,49,50,51, - 52,53,54,0,1,2,3,4,5,6, - 7,0,9,10,11,12,13,14,15,16, - 17,18,19,20,21,0,0,0,0,0, - 0,0,0,0,0,0,0,0,35,36, - 37,38,39,0,41,42,43,44,45,46, - 47,0,49,50,51,52,53,54,0,1, - 2,0,4,0,0,0,0,0,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,0,26,27,28,29,30,31, - 32,33,34,0,0,0,0,0,40,0, - 0,0,0,0,0,0,0,0,1,2, - 0,4,0,0,56,57,58,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,0,26,27,28,29,30,31,32, - 33,34,0,0,0,0,0,40,0,1, - 2,3,4,5,6,7,8,9,0,0, - 0,0,0,56,57,58,0,0,0,0, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,55,3,0, - 0,0,0,55,0,0,0,0,0,0, - 68,63,0,0,0,0,0,0,0,0, - 0,73,0,1,2,3,4,5,6,7, - 8,9,37,38,0,0,94,95,0,0, + 0,0,0,0,0,1,2,0,53,0, + 55,56,72,58,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,0,0, + 0,0,1,2,3,4,5,6,7,8, + 9,0,0,0,0,0,0,53,0,55, + 56,0,58,22,23,24,25,26,27,28, + 29,30,31,32,33,0,0,70,0,0, + 39,0,0,22,23,24,25,26,27,28, + 29,30,31,32,33,54,0,0,0,0, + 0,60,0,1,2,3,4,5,6,7, + 8,9,0,72,0,0,0,0,0,0, 0,0,0,0,22,23,24,25,26,27, - 28,29,30,31,32,33,34,0,63,0, - 0,0,0,0,0,0,0,0,0,0, - 0,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,63,26,27,28,29, - 30,31,32,33,34,73,0,0,0,0, - 0,106,0,0,0,0,0,0,0,0, - 0,0,0,0,119,0,0,0,0,0, + 28,29,30,31,32,33,0,0,0,0, + 0,39,22,23,24,25,26,27,28,29, + 30,31,32,33,0,0,0,0,0,0, + 0,0,60,0,0,0,0,0,0,0, + 0,0,0,0,72,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,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,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0 + 0,0,0,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; @@ -1456,346 +1799,386 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TermAction { public final static char termAction[] = {0, - 5416,5390,5366,5366,5366,5366,5366,5366,5400,5366, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5394,1,1,1,1, + 6952,6926,6902,6902,6902,6902,6902,6902,6902,6936, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,332,1,1,1,1903, - 5591,1,2777,115,3575,1,1,5427,5416,3698, - 5416,5423,3090,4779,1639,3845,3822,2247,3809,3774, - 3074,3839,1058,3838,3435,3832,10,5403,5403,5403, - 5403,5403,5403,5403,5403,5403,5403,5403,5403,5403, - 5403,5403,5403,5403,5403,5403,5403,5403,5403,5403, - 5403,5403,5403,5403,5403,5403,5403,5403,5403,5403, - 5403,5403,5403,5403,5403,5403,5403,5403,5403,5403, - 5403,5403,5403,5403,397,5403,5403,5403,5403,5403, - 5403,386,5403,5403,5403,5403,5403,5403,5403,300, - 5403,5403,5403,5403,39,3673,3498,5403,5454,5416, - 5403,5403,5403,5403,5403,5403,5403,5403,5403,5403, - 5403,5403,8,5406,5406,5406,5406,5406,5406,5406, - 5406,5406,5406,5406,5406,5406,5406,5406,5406,5406, - 5406,5406,5406,5406,5406,5406,5406,5406,5406,5406, - 5406,5406,5406,5406,5406,5406,5406,5406,5406,5406, - 5406,5406,5406,5406,5406,5406,5406,5406,5406,5406, - 5416,5406,5406,5406,5406,5406,5406,5873,5406,5406, - 5406,5406,5406,5406,5406,304,5406,5406,5406,5406, - 290,5159,5159,5406,285,5719,5406,5406,5406,5406, - 5406,5406,5406,5406,5406,5406,5406,5406,5416,5390, - 5366,5366,5366,5366,5366,5366,5397,5366,1,1, + 1,1,1,1,1,1,1,1,1,6930, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5394,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5416,1,1,1, - 1,1,1,135,1,1,1,1903,5591,1, - 2777,5416,3575,1,1,5427,5416,5096,5093,5424, - 5454,5416,1639,3845,3822,2247,3809,3774,3074,3839, - 1058,3838,3435,3832,5416,5390,5366,5366,5366,5366, - 5366,5366,5397,5366,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5394, + 1,1,1,1,6952,1,1,5033,1,1, + 6952,1394,7160,2980,668,3497,1,1,1,6963, + 6952,6966,6967,6959,2489,3630,3400,3298,3396,3586, + 4658,3598,740,3594,4188,3589,10,6939,6939,6939, + 6939,6939,6939,6939,6939,6939,6939,6939,6939,6939, + 6939,6939,6939,6939,6939,6939,6939,6939,6939,6939, + 6939,6939,6939,6939,6939,6939,6939,6939,6939,6939, + 6939,6939,6939,6939,6939,6939,6939,6939,6939,6939, + 6939,6939,6939,6939,6939,6939,6939,6939,6939,6939, + 6952,6939,6939,714,6939,6939,39,6939,6939,6939, + 6990,6939,6939,6939,365,6939,6952,6548,6545,6939, + 6939,6939,6939,6939,6939,6939,6939,6939,6939,6939, + 6939,6939,8,6942,6942,6942,6942,6942,6942,6942, + 6942,6942,6942,6942,6942,6942,6942,6942,6942,6942, + 6942,6942,6942,6942,6942,6942,6942,6942,6942,6942, + 6942,6942,6942,6942,6942,6942,6942,6942,6942,6942, + 6942,6942,6942,6942,6942,6942,6942,6942,6942,6942, + 6942,6942,6942,6942,6942,6942,430,6942,6942,131, + 6942,6942,133,6942,6942,6942,3721,6942,6942,6942, + 6952,6942,419,121,2078,6942,6942,6942,6942,6942, + 6942,6942,6942,6942,6942,6942,6942,6942,6952,6926, + 6902,6902,6902,6902,6902,6902,6902,6933,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5423,1,1,1,1,1,1,5859, - 1,1,1,1903,5591,1,2777,117,3575,1, - 1,5427,2368,3698,5416,5430,5431,5416,1639,3845, - 3822,2247,3809,3774,3074,3839,1058,3838,3435,3832, - 5416,5390,5366,5366,5366,5366,5366,5366,5397,5366, + 1,1,1,1,1,1,1,6930,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5394,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5416,1, - 1,1,1,1,1,5930,1,1,1,1903, - 5591,1,2777,5416,3575,1,1,5427,111,3673, - 3498,5416,5084,5081,1639,3845,3822,2247,3809,3774, - 3074,3839,1058,3838,3435,3832,5416,5390,5366,5366, - 5366,5366,5366,5366,5397,5366,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5394,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5416,1,1,1,1,1, - 1,136,1,1,1,1903,5591,1,2777,116, - 3575,1,1,5427,5416,3698,121,4116,157,4139, - 1639,3845,3822,2247,3809,3774,3074,3839,1058,3838, - 3435,3832,5416,5390,5366,5366,5366,5366,5366,5366, - 5397,5366,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5394,1,1, + 1,1,137,1,1,139,1,1,153,1394, + 7160,2980,129,3497,1,1,3638,6963,346,4340, + 4366,883,2489,3630,3400,3298,3396,3586,4658,3598, + 740,3594,4188,3589,6952,6926,6902,6902,6902,6902, + 6902,6902,6902,6933,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5416,1,1,1,1,1,1,1907,1,1, - 1,1903,5591,1,2777,5416,3575,1,1,5427, - 2368,3673,3498,599,2799,5416,1639,3845,3822,2247, - 3809,3774,3074,3839,1058,3838,3435,3832,5416,5390, - 5366,5366,5366,5366,5366,5366,5397,5366,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5394,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,337,1,1,1, - 1,1,1,3160,1,1,1,1903,5591,1, - 2777,5416,3575,1,1,5427,5416,5430,5431,5754, - 5755,2866,1639,3845,3822,2247,3809,3774,3074,3839, - 1058,3838,3435,3832,5416,5390,5366,5366,5366,5366, - 5366,5366,5397,5366,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5394, + 1,1,1,6930,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1219,1, + 1,91,1,1,6712,1394,7160,2980,3509,3497, + 1,1,3673,6963,3835,3803,3407,4301,2489,3630, + 3400,3298,3396,3586,4658,3598,740,3594,4188,3589, + 6952,6926,6902,6902,6902,6902,6902,6902,6902,6933, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5416,1,1,1,1,1,1,5416, - 1,1,1,1903,5591,1,2777,5416,3575,1, - 1,5427,5416,5096,5093,5416,5454,5416,1639,3845, - 3822,2247,3809,3774,3074,3839,1058,3838,3435,3832, - 5416,5390,5366,5366,5366,5366,5366,5366,5397,5366, + 1,1,1,1,1,1,1,1,1,6930, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5394,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,139,1, - 1,1,1,1,1,3208,1,1,1,1903, - 5591,1,2777,5416,3575,1,1,5427,5416,1245, - 5416,321,1132,1050,1639,3845,3822,2247,3809,3774, - 3074,3839,1058,3838,3435,3832,5416,5390,5366,5366, - 5366,5366,5366,5366,5397,5366,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5394,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1341,1,1,1,1,1, - 1,5416,1,1,1,1903,5591,1,2777,2294, - 3575,1,1,5427,114,4237,399,5430,5431,5416, - 1639,3845,3822,2247,3809,3774,3074,3839,1058,3838, - 3435,3832,5416,3791,1,1,1,1,1,1, - 3826,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5425,1,1, + 1,1,1,1,271,1,1,6802,1,1, + 134,1394,7160,2980,135,3497,1,1,333,6963, + 141,432,6966,6967,2489,3630,3400,3298,3396,3586, + 4658,3598,740,3594,4188,3589,6952,6926,6902,6902, + 6902,6902,6902,6902,6902,6933,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 320,1,1,1,1,1,1,3223,1,1, - 1,1903,5591,1,2777,131,3575,1,1,5427, - 48,5084,5081,4116,2432,4139,1639,3845,3822,2247, - 3809,3774,3074,3839,1058,3838,3435,3832,39,5096, - 5093,4755,1133,3932,4001,2939,5416,4024,879,5682, - 5680,5689,5688,5684,5685,5683,5686,5687,5690,5681, - 5677,5754,5755,1341,5671,5678,5674,5650,5676,5675, - 5672,5673,5651,3978,3955,4070,4047,5435,5816,3891, - 1153,1243,5437,1189,941,1235,456,5438,5436,1105, - 5432,5433,5434,5416,3247,5817,5818,3094,5416,1391, - 5416,5288,5288,230,5284,230,230,230,5292,230, + 1,1,1,1,1,6930,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,230,1,1,1,1, - 1,1,1,1,1,5416,5430,5431,3303,460, - 1,5072,1,5059,5055,5322,5052,5328,5281,5325, - 5426,225,129,5416,113,132,1,1,1,681, - 5830,5420,2692,5416,2432,226,5051,5425,1,133, - 112,418,230,5677,5754,5755,364,5671,5678,5674, - 5650,5676,5675,5672,5673,5651,5918,5677,5754,5755, - 5416,5671,5678,5674,5650,5676,5675,5672,5673,5651, - 4093,823,5102,5853,5854,5855,5416,5288,5288,230, - 5284,230,230,230,5331,230,1,1,1,1, + 1,1,1,5993,1,1,154,1394,7160,2980, + 149,3497,1,1,3638,6963,4340,4366,125,3602, + 2489,3630,3400,3298,3396,3586,4658,3598,740,3594, + 4188,3589,6952,6926,6902,6902,6902,6902,6902,6902, + 6902,6933,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,230,1,1,1,1,1,1,1,1, - 1,364,5416,4116,33,4139,1,5108,2491,2462, - 5108,39,5108,5108,5281,5454,5416,332,364,4116, - 332,4139,1,1,1,681,5830,2401,2692,5108, - 5416,5419,39,37,5114,5114,5454,417,230,5108, - 5108,5108,5108,130,346,5096,5093,2853,1133,629, - 332,2939,5918,332,687,91,227,139,5248,5108, - 37,1,5059,5055,1063,5052,629,5108,2939,5853, - 5854,5855,5108,5108,5108,5108,5108,5108,5677,5754, - 5755,5452,5671,5678,5674,5650,5676,5675,5672,5673, - 5651,5108,5108,5108,5108,5108,5108,5108,5108,5108, - 5108,5108,5108,5108,5108,5108,313,1341,5452,1011, - 5108,5108,5108,5108,5108,5108,5108,5108,5108,5108, - 5108,5108,5108,5108,5108,5416,398,1864,5251,137, - 389,5251,5416,5251,5251,5853,5854,5855,1345,2491, - 2462,5416,5416,5059,5055,1063,5052,629,1,2939, - 5251,1,332,5096,5093,1063,1133,629,2294,2939, - 5251,5251,5251,5251,4237,1821,1778,1735,1692,1649, - 1606,1563,1520,1477,1434,238,1082,228,5266,185, - 5251,1002,5416,5096,5093,5416,1133,5254,5251,2939, - 2866,5416,118,5251,5251,5251,5251,5251,5251,5677, - 5754,5755,5955,5671,5678,5674,5650,5676,5675,5672, - 5673,5651,5251,5251,5251,5251,5251,5251,5251,5251, - 5251,5251,5251,5251,5251,5251,5251,3051,633,2333, - 1192,5251,5251,5251,5251,5251,5251,5251,5251,5251, - 5251,5251,5251,5251,5251,5251,5416,5366,5366,230, - 5366,230,230,230,5372,230,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,230,1,1,8782,1,1,1,1,1, - 1,134,37,5114,5114,120,1,5114,1,5059, - 5055,5322,5052,5328,5363,5325,300,5430,5431,5416, - 5413,5416,1,1,1,2880,5628,5422,2777,5416, - 3575,1,5059,5055,2853,5052,629,221,2939,5260, - 3051,633,5416,5059,5055,1063,5052,629,5351,2939, - 3322,5351,5918,5416,5366,5366,230,5366,230,230, - 230,230,230,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,230,1, - 1,8782,1,1,1,1,1,1,4914,37, - 5114,5114,5421,1,1341,332,446,1,1,2401, - 1,5363,5099,138,5263,5099,125,5416,3292,1, - 1,1,2880,5628,2036,2777,5416,3575,5416,368, - 5059,5055,2853,5052,629,1,2939,5416,1,312, - 5059,5055,1063,5052,629,5351,2939,5452,5351,5918, - 5416,5366,5366,230,5366,230,230,230,5381,230, + 1,6930,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,6952,1,1,151, + 1,1,1793,1394,7160,2980,3755,3497,1,1, + 3673,6963,3907,3867,4340,4366,2489,3630,3400,3298, + 3396,3586,4658,3598,740,3594,4188,3589,6952,6926, + 6902,6902,6902,6902,6902,6902,6902,6933,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,230,1,1,8782,1, - 1,1,1,1,1,447,39,39,5416,5454, - 1,5257,1341,5416,5257,38,5069,5066,5363,1212, - 5063,1,2939,599,2799,3230,1,1,1,2880, - 5628,5416,2777,2333,3575,124,1,5310,5310,517, - 5307,220,332,126,364,332,1,5059,5055,1063, - 5052,629,1426,2939,123,29,5918,5416,5366,5366, - 230,5366,230,230,230,5372,230,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,8782,1,1,1,1, - 1,1,396,5156,5156,3456,285,1,2604,1, - 5059,5055,1063,5052,629,5363,2939,312,967,364, - 1002,5117,5416,1,1,1,2880,5628,2036,2777, - 5428,3575,599,2799,312,48,364,426,221,5431, - 346,39,39,2839,5454,5416,332,2548,2520,332, - 285,599,2799,5918,5416,5366,5366,230,5366,230, - 230,230,5372,230,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,230, - 1,1,8782,1,1,1,1,1,1,5427, - 5431,5416,5096,5093,1,1133,5254,359,2939,5416, - 5430,5431,5363,1341,629,397,2939,5416,122,390, - 1,1,1,2880,5628,5422,2777,1950,3575,1, - 5059,5055,2853,5052,629,221,2939,5416,5096,5093, - 1,1133,629,4894,2939,43,5245,5245,5416,2897, - 5918,5416,5366,5366,230,5366,230,230,230,230, - 230,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,230,1,1,8782, - 1,1,1,1,1,1,441,5416,8666,8666, - 5421,1,1341,5242,92,1,1,5774,1,5363, - 5313,5416,5416,5313,4491,599,2799,1,1,1, - 2880,5628,5416,2777,1,3575,5416,2839,1,95, - 39,39,342,5454,128,5357,5384,430,5357,5416, - 5096,5093,5416,1133,629,5452,2939,5918,5416,5366, - 5366,230,5366,230,230,230,230,230,1,1, + 1,1,1,1,1,1,1,6930,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,230,1,1,8782,1,1,1, - 1,1,1,5416,5298,5295,5416,1341,1,2604, - 4510,3284,342,342,5416,5427,5363,342,5819,5853, - 5854,5855,5275,1,1,1,1,2880,5628,3658, - 2777,161,3575,5416,5430,5431,1,5416,5416,2839, - 4494,5428,564,5416,5260,45,5304,5304,2548,2520, - 5416,5452,5416,459,5918,5416,5366,5366,230,5366, - 230,230,230,230,230,1,1,1,1,1, + 1,1,157,1,1,6952,1,1,4481,1394, + 7160,2980,155,3497,1,1,6952,6963,48,6548, + 6545,1608,2489,3630,3400,3298,3396,3586,4658,3598, + 740,3594,4188,3589,6952,6926,6902,6902,6902,6902, + 6902,6902,6902,6933,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 230,1,1,8782,1,1,1,1,1,1, - 5416,5084,5081,5301,5416,1,161,5416,348,1341, - 5427,1852,5424,5363,349,5426,294,5430,5431,5263, - 8,1,1,1,2880,5628,5105,2777,5354,3575, - 3982,3284,5425,119,1,37,5114,5114,36,5348, - 5345,5416,5387,1,5059,5055,4755,5052,3932,4001, - 2939,5918,4024,5120,5147,5153,5126,5129,5141,5138, - 5144,5135,5132,5123,5150,4093,823,5416,3051,633, - 4927,1341,5416,1019,5416,5423,4208,1341,3978,3955, - 4070,4047,5435,2769,3891,1153,1243,5437,1189,941, - 1235,5354,5438,5436,1105,5432,5433,5434,5416,5341, - 5337,5416,8580,7852,1391,5423,363,5416,39,39, - 4938,518,39,5096,5093,4755,1133,3932,4001,2939, - 5334,4024,1007,5682,5680,5689,5688,5684,5685,5683, - 5686,5687,5690,5681,1,407,5416,8580,7852,293, - 1206,1206,5416,5316,5375,3827,5452,3978,3955,4070, - 4047,5435,1,3891,1153,1243,5437,1189,941,1235, - 5319,5438,5436,1105,5432,5433,5434,1,5416,5416, - 1,4244,5416,1391,5378,3533,295,5375,5422,5090, - 287,100,3633,5423,39,5096,5093,4755,1133,3932, - 4001,2939,5087,4024,1007,5682,5680,5689,5688,5684, - 5685,5683,5686,5687,5690,5681,371,5378,5416,1, - 39,3532,293,5416,5454,3633,5416,531,5416,3978, - 3955,4070,4047,5435,5426,3891,1153,1243,5437,1189, - 941,1235,3429,5438,5436,1105,5432,5433,5434,1, - 4391,5425,5776,5421,4941,1391,2075,163,5416,5702, - 304,5090,141,5096,5093,4755,1133,3932,4001,2939, - 5719,4024,1007,5682,5680,5689,5688,5684,5685,5683, - 5686,5687,5690,5681,369,1,1255,103,5416,450, - 4251,8306,531,5426,428,99,442,3978,3955,4070, - 4047,5435,29,3891,1153,1243,5437,1189,941,1235, - 5425,5438,5436,1105,5432,5433,5434,5416,422,3093, - 5416,47,163,1391,2455,35,5416,39,39,39, - 5096,5093,4755,1133,3932,4001,2939,5087,4024,1007, - 5682,5680,5689,5688,5684,5685,5683,5686,5687,5690, - 5681,5075,1,280,1298,5416,5369,5078,2122,5416, - 191,2114,3586,3447,3978,3955,4070,4047,5435,1128, - 3891,1153,1243,5437,1189,941,1235,191,5438,5436, - 1105,5432,5433,5434,5416,5416,5416,4661,2208,2161, - 1391,535,451,5416,3752,3552,5090,1,5059,5055, - 4755,5052,3932,4001,2939,5416,4024,5120,5147,5153, - 5126,5129,5141,5138,5144,5135,5132,5123,5150,1, - 5416,389,1897,48,5887,5881,5416,5430,5885,311, - 5416,5416,3978,3955,4070,4047,5435,5416,3891,1153, - 1243,5437,1189,941,1235,5416,5438,5436,1105,5432, - 5433,5434,3757,3300,5879,5880,5910,5911,1391,5416, - 5888,2747,39,39,376,524,5416,397,5416,73, - 5416,5416,5416,4849,5890,1002,5111,5416,5430,1, - 4850,3168,998,5416,813,822,3392,5891,5912,5889, - 510,508,4369,5416,5416,3860,5416,4879,4221,2974, - 4652,5416,3130,5416,4889,5416,5901,5900,5913,2, - 194,5882,5883,5906,5907,5904,5905,5884,5886,5908, - 5909,3292,1002,3336,5360,5914,3789,5894,5895,5896, - 5892,5893,5902,5903,5898,5897,5899,39,5096,5093, - 4755,1133,3932,4001,2939,5420,4024,1007,5682,5680, - 5689,5688,5684,5685,5683,5686,5687,5690,5681,5416, - 4907,4909,3631,5416,37,3186,3860,1,5416,4310, - 5416,4944,3978,3955,4070,4047,5435,3242,3891,1153, - 1243,5437,1189,941,1235,5410,5438,5436,1105,5432, - 5433,5434,39,5096,5093,4755,1133,3932,4001,2939, - 5416,4024,1007,5682,5680,5689,5688,5684,5685,5683, - 5686,5687,5690,5681,5416,512,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,1,5416,3978,3955,4070, - 4047,5435,523,3891,1153,1243,5437,1189,941,1235, - 3552,5438,5436,1105,5432,5433,5434,5416,5416,5416, - 5416,5416,5416,1391,5416,5419,39,5096,5093,4755, - 1133,3932,4001,2939,3563,4024,1007,5682,5680,5689, - 5688,5684,5685,5683,5686,5687,5690,5681,5416,5416, - 5416,5416,5416,5416,1993,809,5416,5416,5416,5416, - 5416,3978,3955,4070,4047,5435,5416,3891,1153,1243, - 5437,1189,941,1235,5416,5438,5436,1105,5432,5433, - 5434,39,5096,5093,4755,1133,3932,4001,2939,1818, - 4024,1007,5682,5680,5689,5688,5684,5685,5683,5686, - 5687,5690,5681,5416,3860,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,5416,3978,3955,4070,4047, - 5435,5416,3891,1153,1243,5437,1189,941,1235,5416, - 5438,5436,1105,5432,5433,5434,5416,5416,5416,5416, - 5416,5416,1391,39,5096,5093,4784,1133,3932,4001, - 2939,5416,4024,1007,5682,5680,5689,5688,5684,5685, - 5683,5686,5687,5690,5681,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,5416,5416,5416,3978,3955, - 4070,4047,5435,5416,3891,1153,1243,5437,1189,941, - 1235,5416,5438,5436,1105,5432,5433,5434,39,5096, - 5093,4755,1133,3932,4001,2939,5416,4024,1007,5682, - 5680,5689,5688,5684,5685,5683,5686,5687,5690,5681, - 5416,5416,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5416,5416,3978,3955,4070,4047,5435,5416,3891, - 1153,1243,5437,1189,941,1235,5416,5438,5436,1105, - 5432,5433,5434,39,5096,5093,4755,1133,3932,4001, - 2939,5416,4024,1007,5682,5680,5689,5688,5684,5685, - 5683,5686,5687,5690,5681,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,5416,5416,5416,3978,3955, - 4070,4047,5435,5416,3891,1153,1243,5437,1189,941, - 1235,5416,5438,5436,1105,5432,5433,5434,5416,5096, - 5093,5416,5454,5416,5416,5416,5416,5416,743,5682, - 5680,5689,5688,5684,5685,5683,5686,5687,5690,5681, - 5677,5754,5755,5416,5671,5678,5674,5650,5676,5675, - 5672,5673,5651,5416,5416,5416,5416,5416,5816,5416, - 5416,5416,5416,5416,5416,5416,5416,242,5235,5231, - 5416,5239,5416,5416,3247,5817,5818,743,5222,5228, - 5201,5204,5216,5213,5219,5210,5207,5198,5225,5177, - 5171,5168,5416,5195,5174,5186,5165,5180,5183,5192, - 5189,5162,127,5416,5416,5416,5416,5816,29,389, - 389,5272,389,389,5272,389,5272,5272,5416,5416, - 5416,5416,5416,3247,5817,5818,5416,5416,5416,5416, - 389,389,389,5272,389,389,389,389,389,389, - 389,389,389,5416,5416,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,75,5416,2604,1113,5416, - 5416,5416,5416,5078,5416,5416,5416,5416,5416,5416, - 5278,5272,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5272,32,390,390,5269,390,390,5269,390, - 5269,5269,5478,5479,5416,5416,2548,2520,5416,5416, - 5416,5416,5416,5416,390,390,390,5269,390,390, - 390,390,390,390,390,390,390,5416,3803,5416, - 224,5416,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5682,5680,5689,5688,5684,5685,5683,5686,5687, - 5690,5681,5677,5754,5755,5269,5671,5678,5674,5650, - 5676,5675,5672,5673,5651,5269,5416,5416,5416,5416, - 5416,586,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,667 + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,6930,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,6952,1, + 1,4721,1,1,6952,1394,7160,2980,3546,3497, + 1,1,6952,6963,124,4727,123,673,2489,3630, + 3400,3298,3396,3586,4658,3598,740,3594,4188,3589, + 6952,6926,6902,6902,6902,6902,6902,6902,6902,6933, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,6930, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,138,1,1,132,1,1, + 6952,1394,7160,2980,3721,3497,1,1,6952,6963, + 4340,4366,4340,4366,2489,3630,3400,3298,3396,3586, + 4658,3598,740,3594,4188,3589,6952,6926,6902,6902, + 6902,6902,6902,6902,6902,6933,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,6930,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 6952,1,1,4851,1,1,218,1394,7160,2980, + 3509,3497,1,1,6952,6963,122,1581,145,6952, + 2489,3630,3400,3298,3396,3586,4658,3598,740,3594, + 4188,3589,6952,3587,1,1,1,1,1,1, + 1,3588,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6961,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,6952,1,1,190, + 1,1,430,1394,7160,2980,423,3497,1,1, + 6952,6963,4340,4366,4340,4366,2489,3630,3400,3298, + 3396,3586,4658,3598,740,3594,4188,3589,39,6560, + 6557,4450,864,5654,5579,5677,2680,6949,758,7251, + 7249,7258,7257,7253,7254,7252,7255,7256,7259,7250, + 7246,7323,7324,7240,7247,7243,7219,7245,7244,7241, + 7242,7220,5631,5608,5723,5700,6971,2127,1266,979, + 1297,6973,1065,5861,1108,6974,6972,808,6968,6969, + 6970,7385,6952,1442,7386,3330,7387,1554,6952,6830, + 6830,263,6826,263,263,263,263,6834,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,323,6623,6623,6952,318,263,3040,6952, + 6523,6519,655,6516,6887,641,6887,2680,6952,6560, + 6557,1,6990,1,1,6823,1,489,111,1056, + 7399,953,1,6523,6519,655,6516,6952,641,263, + 2680,451,1593,6952,1584,6952,257,345,6523,6519, + 655,6516,6887,641,6887,2680,7487,7251,7249,7258, + 7257,7253,7254,7252,7255,7256,7259,7250,7246,7323, + 7324,7240,7247,7243,7219,7245,7244,7241,7242,7220, + 3060,6536,7422,7423,7424,6952,6830,6830,263,6826, + 263,263,263,263,6867,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5769, + 37,38,6533,6530,263,33,5792,6527,6572,2680, + 6572,354,6572,47,6572,429,6620,6620,1,318, + 1,1,6823,1,337,550,1056,7399,953,365, + 6560,6557,655,864,7288,641,263,2680,450,6572, + 6572,6572,6572,6515,6572,6952,6952,1,6790,6790, + 6952,6849,365,7487,365,6958,397,6988,6952,6572, + 1,6523,6519,4415,6516,6572,641,6964,2680,6572, + 1334,1512,318,6572,475,6572,6572,6572,6572,7422, + 7423,7424,401,6523,6519,4415,6516,1,641,1, + 2680,6572,6572,1078,6572,6572,6572,6572,6572,6572, + 6572,6572,6572,6572,6572,6572,6572,6572,6572,6572, + 6572,6572,6572,6572,6572,6572,6572,6572,6957,397, + 1512,6952,6572,6572,6572,6572,6952,6963,6539,6715, + 6956,6715,118,6715,370,6715,6952,1,6523,6519, + 655,6516,1512,641,397,2680,37,6967,6967,6967, + 6967,6967,1367,6967,37,6578,6578,7323,7324,365, + 6715,6715,6715,6715,6952,6715,4633,1339,6967,6967, + 6967,6967,6967,6967,6967,6967,6967,6967,6967,6967, + 6715,6952,353,6952,6560,6557,6715,864,39,6718, + 6715,2680,6990,365,6715,365,6715,6715,6715,6715, + 7442,1,6523,6519,6861,6516,6967,6864,3060,6745, + 6967,6988,6715,6715,6967,6715,6715,6715,6715,6715, + 6715,6715,6715,6715,6715,6715,6715,6715,6715,6715, + 6715,6715,6715,6715,6715,6715,6715,6715,6715,6955, + 2468,130,1512,6715,6715,6715,6715,6952,6902,6902, + 263,6902,263,263,263,263,6908,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,10736,1,1,1,1,1, + 1,6952,6952,479,1,1,263,1,6563,136, + 6563,480,39,39,103,6990,6793,3476,6793,258, + 1,139,1,1,6899,1,6952,1,2865,7197, + 2980,152,3497,37,6578,6578,194,493,3755,6578, + 254,7246,7323,7324,7240,7247,7243,7219,7245,7244, + 7241,7242,7220,3835,3803,7487,6952,6902,6902,263, + 6902,263,263,263,263,263,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,10736,1,1,1,1,1,1, + 1840,2080,6952,6560,6557,263,864,6566,641,194, + 2680,92,1,1,3602,1,6852,6952,6852,1, + 3340,1,1,6899,1,3634,6958,2865,7197,2980, + 159,3497,3407,4301,2033,1986,1939,1892,1845,1798, + 1751,1704,1657,1610,6952,6523,6519,655,6516,1, + 641,1,2680,29,7487,6952,6902,6902,263,6902, + 263,263,263,263,6917,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,10736,1,1,1,1,1,1,6957, + 392,95,39,39,263,6990,6893,39,6893,158, + 2834,6990,6952,4340,4366,144,7549,6542,1,156, + 1,1,6899,1,6952,6952,2865,7197,2980,2018, + 3497,1,6523,6519,4415,6516,6952,641,253,2680, + 6796,3446,4464,2768,2702,2636,2570,2504,2438,2372, + 2306,2240,2174,7487,6952,6902,6902,263,6902,263, + 263,263,263,6908,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,10736,1,1,1,1,1,1,6952,6560, + 6557,1512,864,263,641,114,2680,7343,6952,6966, + 6967,4340,4366,6799,1793,3546,259,1,6952,1, + 1,6899,1,396,673,2865,7197,2980,328,3497, + 492,7422,7423,7424,6952,6966,6967,254,7246,7323, + 7324,7240,7247,7243,7219,7245,7244,7241,7242,7220, + 146,6952,7487,6952,6902,6902,263,6902,263,263, + 263,263,6908,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 10736,1,1,1,1,1,1,6952,6966,6967, + 6569,3473,263,641,115,2680,5769,6952,3102,5346, + 5746,721,117,5792,4109,260,1,5346,1,1, + 6899,1,6952,6952,2865,7197,2980,1264,3497,1, + 6952,6960,4433,6952,6548,6545,254,7246,7323,7324, + 7240,7247,7243,7219,7245,7244,7241,7242,7220,4082, + 4055,7487,6952,6902,6902,263,6902,263,263,263, + 263,263,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,10736, + 1,1,1,1,1,1,6952,116,6952,1512, + 1144,263,5346,575,39,6959,261,575,6990,5746, + 721,2900,113,5322,5131,1,6952,1,1,6899, + 1,5322,5131,2865,7197,2980,3001,3497,7246,7323, + 7324,7240,7247,7243,7219,7245,7244,7241,7242,7220, + 379,6560,6557,4415,864,365,641,365,2680,3227, + 7487,6952,6902,6902,263,6902,263,263,263,263, + 263,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,10736,1, + 1,1,1,1,1,6952,6560,6557,6952,6990, + 263,333,6966,6967,142,570,5322,5131,6952,6952, + 1512,6952,1,5769,1,2495,1,1,6899,1, + 5792,397,2865,7197,2980,382,3497,7246,7323,7324, + 7240,7247,7243,7219,7245,7244,7241,7242,7220,379, + 39,39,4433,6990,365,6952,365,6952,6952,7487, + 6952,6902,6902,263,6902,263,263,263,263,263, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,10736,1,1, + 1,1,1,1,397,1512,6952,6966,6967,263, + 4340,4366,6952,6560,6557,6964,864,1,6718,1512, + 2680,6952,1192,1,3342,1,1,6899,1,397, + 6960,2865,7197,2980,6952,3497,1,6523,6519,3360, + 864,5654,5579,5677,2680,112,6584,6611,6617,6590, + 6593,6605,6602,6608,6599,6596,6587,6614,7487,1, + 6523,6519,6861,6516,6952,6864,150,6745,6962,2534, + 5631,5608,5723,5700,6971,6963,1266,979,1297,6973, + 1065,5861,1108,6974,6972,808,6968,6969,6970,474, + 6952,2999,440,6952,6959,1554,320,409,6961,6952, + 551,6855,39,39,39,6560,6557,4450,864,5654, + 5579,5677,2680,6870,1030,7251,7249,7258,7257,7253, + 7254,7252,7255,7256,7259,7250,1,6523,6519,655, + 6516,6858,641,120,2680,345,5769,119,5631,5608, + 5723,5700,6971,5792,1266,979,1297,6973,1065,5861, + 1108,6974,6972,808,6968,6969,6970,7428,3907,3867, + 37,6578,6578,1554,7271,345,6952,4633,1339,6952, + 2947,4633,1339,6554,43,6709,6709,6959,39,6560, + 6557,4450,864,5654,5579,5677,2680,6551,1030,7251, + 7249,7258,7257,7253,7254,7252,7255,7256,7259,7250, + 327,6966,6967,7422,7423,7424,126,6952,10765,10765, + 3634,148,5631,5608,5723,5700,6971,6988,1266,979, + 1297,6973,1065,5861,1108,6974,6972,808,6968,6969, + 6970,6706,100,7499,6952,6840,6837,1554,174,6560, + 6557,4450,864,5654,5579,5677,2680,6554,1030,7251, + 7249,7258,7257,7253,7254,7252,7255,7256,7259,7250, + 4028,36,6884,6881,6988,4109,6952,6952,381,99, + 6581,2065,5631,5608,5723,5700,6971,326,1266,979, + 1297,6973,1065,5861,1108,6974,6972,808,6968,6969, + 6970,6988,4946,6952,1,3974,3947,1554,6952,313, + 4082,4055,6905,6920,39,39,39,6560,6557,4450, + 864,5654,5579,5677,2680,6551,1030,7251,7249,7258, + 7257,7253,7254,7252,7255,7256,7259,7250,1512,3158, + 3003,45,6846,6846,37,6578,6578,6952,6877,6873, + 5631,5608,5723,5700,6971,10349,1266,979,1297,6973, + 1065,5861,1108,6974,6972,808,6968,6969,6970,75, + 6952,6952,955,6963,7388,1554,1,6523,6519,3360, + 864,5654,5579,5677,2680,6554,6584,6611,6617,6590, + 6593,6605,6602,6608,6599,6596,6587,6614,6843,6952, + 1,1601,3503,4433,6988,7014,7015,6952,422,6796, + 5631,5608,5723,5700,6971,147,1266,979,1297,6973, + 1065,5861,1108,6974,6972,808,6968,6969,6970,4191, + 6952,1,6952,6952,1174,1554,7450,7456,7454,128, + 6952,8,39,39,6952,6952,10222,9027,6952,6958, + 6890,37,6966,6966,6966,6966,6966,6962,6966,431, + 1512,6952,6575,422,6952,7448,7449,7479,7480,4109, + 6962,7457,6799,6966,6966,6966,6966,6966,6966,6966, + 6966,6966,6966,6966,6966,7459,2336,6961,2402,6952, + 6952,792,4235,4028,3043,7460,3089,669,700,7481, + 6961,7458,6988,6811,4082,4055,6952,6952,6365,6952, + 4544,6966,6957,1192,6890,6966,794,7470,7469,6966, + 7475,7476,7482,7473,7474,7453,7455,7477,3974,3947, + 7451,7452,7478,6952,7463,7464,7465,7461,7462,7471, + 7472,7467,7466,7468,6952,10650,10591,6952,7483,39, + 6560,6557,4450,864,5654,5579,5677,2680,6956,1030, + 7251,7249,7258,7257,7253,7254,7252,7255,7256,7259, + 7250,1,1,6219,6952,10650,10591,4466,326,1825, + 1825,6911,6911,5631,5608,5723,5700,6971,6952,1266, + 979,1297,6973,1065,5861,1108,6974,6972,808,6968, + 6969,6970,1,6523,6519,6787,6516,6733,6748,6736, + 6745,3097,6584,6611,6617,6590,6593,6605,6602,6608, + 6599,6596,6587,6614,6914,6914,1,404,3576,3576, + 6952,337,463,571,6952,6923,6730,6727,6742,6739, + 6760,7288,6724,6775,6784,6754,6778,6721,6781,6751, + 6757,6772,6769,6766,6763,7246,7323,7324,7240,7247, + 7243,7219,7245,7244,7241,7242,7220,6955,6790,6790, + 39,6560,6557,4450,864,5654,5579,5677,2680,6952, + 1030,7251,7249,7258,7257,7253,7254,7252,7255,7256, + 7259,7250,2682,6952,6038,593,6952,1415,127,6959, + 1,6952,6952,3391,5631,5608,5723,5700,6971,6962, + 1266,979,1297,6973,1065,5861,1108,6974,6972,808, + 6968,6969,6970,6952,6952,6952,4187,6324,4250,1554, + 39,6560,6557,4450,864,5654,5579,5677,2680,6961, + 1030,7251,7249,7258,7257,7253,7254,7252,7255,7256, + 7259,7250,4028,6952,3585,5032,5439,3703,6952,6952, + 6952,4466,6814,6952,5631,5608,5723,5700,6971,227, + 1266,979,1297,6973,1065,5861,1108,6974,6972,808, + 6968,6969,6970,6952,6952,1,6335,3974,3947,6952, + 2267,39,6560,6557,3360,864,5654,5579,5677,2680, + 6952,1030,7251,7249,7258,7257,7253,7254,7252,7255, + 7256,7259,7250,4109,5471,6952,6952,5932,3487,29, + 48,1,6952,4136,6967,5631,5608,5723,5700,6971, + 224,1266,979,1297,6973,1065,5861,1108,6974,6972, + 808,6968,6969,6970,6946,6952,6952,6952,4082,4055, + 1554,39,6560,6557,3360,864,5654,5579,5677,2680, + 224,1030,7251,7249,7258,7257,7253,7254,7252,7255, + 7256,7259,7250,1192,6967,461,3340,6952,6952,48, + 430,6952,7345,6966,73,5631,5608,5723,5700,6971, + 459,1266,979,1297,6973,1065,5861,1108,6974,6972, + 808,6968,6969,6970,6952,1,6952,6952,6952,483, + 1554,39,6560,6557,4450,864,5654,5579,5677,2680, + 6952,1030,7251,7249,7258,7257,7253,7254,7252,7255, + 7256,7259,7250,6966,1192,2993,484,582,6896,581, + 402,6952,1830,2626,3719,5631,5608,5723,5700,6971, + 6952,1266,979,1297,6973,1065,5861,1108,6974,6972, + 808,6968,6969,6970,6952,1,6952,4975,6952,6952, + 1554,39,6560,6557,5525,864,5654,5579,5677,2680, + 647,1030,7251,7249,7258,7257,7253,7254,7252,7255, + 7256,7259,7250,455,2,3288,6952,6952,6952,6952, + 6952,6952,4180,3496,2428,5631,5608,5723,5700,6971, + 1462,1266,979,1297,6973,1065,5861,1108,6974,6972, + 808,6968,6969,6970,39,6560,6557,4450,864,5654, + 5579,5677,2680,6952,1030,7251,7249,7258,7257,7253, + 7254,7252,7255,7256,7259,7250,35,6952,37,6952, + 1,6952,3634,6952,6952,6952,6952,6952,5631,5608, + 5723,5700,6971,3256,1266,979,1297,6973,1065,5861, + 1108,6974,6972,808,6968,6969,6970,39,6560,6557, + 3360,864,5654,5579,5677,2680,344,1030,7251,7249, + 7258,7257,7253,7254,7252,7255,7256,7259,7250,543, + 6952,6952,6952,6952,3200,6952,6952,6952,6952,6952, + 6952,5631,5608,5723,5700,6971,3337,1266,979,1297, + 6973,1065,5861,1108,6974,6972,808,6968,6969,6970, + 39,6560,6557,3360,864,5654,5579,5677,2680,541, + 1030,7251,7249,7258,7257,7253,7254,7252,7255,7256, + 7259,7250,6952,6952,5883,6952,6952,6952,6952,6952, + 6952,6952,6952,6952,5631,5608,5723,5700,6971,6085, + 1266,979,1297,6973,1065,5861,1108,6974,6972,808, + 6968,6969,6970,39,6560,6557,4450,864,5654,5579, + 5677,2680,6952,1030,7251,7249,7258,7257,7253,7254, + 7252,7255,7256,7259,7250,6952,1,6952,6952,6209, + 6952,6952,6952,1,6952,6958,4433,5631,5608,5723, + 5700,6971,375,1266,979,1297,6973,1065,5861,1108, + 6974,6972,808,6968,6969,6970,6952,6560,6557,6952, + 6990,6952,6952,6952,6952,6952,701,7251,7249,7258, + 7257,7253,7254,7252,7255,7256,7259,7250,7246,7323, + 7324,7240,7247,7243,7219,7245,7244,7241,7242,7220, + 6952,1,6952,1512,6952,6952,4720,375,6957,4782, + 589,375,4844,6952,3337,375,275,6699,6695,7385, + 6703,1442,7386,6952,7387,6952,701,6686,6692,6665, + 6668,6680,6677,6683,6674,6671,6662,6689,6641,6635, + 6632,6659,6638,6650,6629,6644,6647,6656,6653,6626, + 1,6952,6952,6952,6952,6952,6952,6952,6952,196, + 6952,6952,6952,6952,6952,6952,6966,6967,6952,7385, + 3013,1442,7386,589,7387,876,7251,7249,7258,7257, + 7253,7254,7252,7255,7256,7259,7250,7246,7323,7324, + 7240,7247,7243,7219,7245,7244,7241,7242,7220,6952, + 6952,6952,6952,6952,6952,6952,6952,6952,6952,6952, + 6952,6952,6952,6952,275,6820,6817,545,7385,6952, + 1442,7386,196,7387,876,6686,6692,6665,6668,6680, + 6677,6683,6674,6671,6662,6689,6641,6635,6632,6659, + 6638,6650,6629,6644,6647,6656,6653,6626,6952,6952, + 6952,29,422,422,6808,422,6808,422,6808,422, + 6808,6952,6952,6952,6952,6952,6952,7385,6952,1442, + 7386,572,7387,422,422,422,422,422,422,422, + 422,422,422,422,422,6952,6952,1109,6952,6952, + 6808,6952,6952,7246,7323,7324,7240,7247,7243,7219, + 7245,7244,7241,7242,7220,6542,6952,6952,6952,6952, + 6952,6808,32,423,423,6805,423,6805,423,6805, + 423,6805,6952,6808,6952,6952,6952,6952,6952,6952, + 573,6952,6952,6952,423,423,423,423,423,423, + 423,423,423,423,423,423,6952,6952,6952,6952, + 6952,6805,7246,7323,7324,7240,7247,7243,7219,7245, + 7244,7241,7242,7220,6952,6952,6952,6952,6952,6952, + 6952,6952,6805,6952,569,6952,6952,6952,6952,6952, + 6952,6952,6952,6952,6805,7251,7249,7258,7257,7253, + 7254,7252,7255,7256,7259,7250,7246,7323,7324,7240, + 7247,7243,7219,7245,7244,7241,7242,7220 }; }; public final static char termAction[] = TermAction.termAction; @@ -1803,61 +2186,67 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asb { public final static char asb[] = {0, - 415,80,14,1015,569,167,277,277,677,575, - 277,575,7,7,536,130,569,575,376,126, - 21,21,274,717,266,126,277,277,868,277, - 21,575,1019,954,818,226,126,536,4,893, - 423,868,868,868,868,1017,423,520,169,537, - 537,537,537,537,537,537,537,537,279,285, - 290,287,294,292,299,297,301,300,302,327, - 303,575,377,272,270,21,21,1015,943,954, - 893,954,218,954,772,954,938,1017,575,266, - 266,21,749,573,266,318,485,4,130,520, - 717,717,717,717,575,174,126,126,117,520, - 896,716,818,520,279,817,817,174,536,537, - 537,537,537,537,537,537,537,537,537,537, - 537,537,537,537,537,537,537,537,536,536, - 536,536,536,536,536,536,536,536,536,536, - 537,749,377,270,770,769,770,274,430,220, - 474,221,1017,575,575,475,770,1019,575,536, - 130,126,126,770,770,770,770,475,126,537, - 1015,632,622,621,578,961,961,1017,169,266, - 716,536,126,572,574,572,126,266,287,287, - 285,285,285,292,292,292,292,290,290,297, - 294,294,300,299,301,1031,302,270,270,520, - 430,575,892,425,756,475,893,479,575,475, - 575,749,3,423,423,423,423,575,575,117, - 126,634,636,575,818,537,717,283,82,126, - 575,574,818,536,270,269,4,575,430,1031, - 221,868,477,73,1021,430,892,757,892,892, - 475,479,479,575,575,1,129,536,536,536, - 536,423,423,126,626,614,625,636,475,573, - 126,283,1015,1019,575,573,270,818,893,893, - 770,868,572,891,1023,423,892,892,892,892, - 575,479,3,824,3,1,1,126,126,126, - 126,174,174,762,536,623,623,630,1015,829, - 126,575,283,284,283,536,82,78,279,1019, - 573,778,893,380,446,573,892,892,569,323, - 537,1031,16,862,636,892,892,878,3,4, - 537,575,126,126,762,536,536,634,614,762, - 996,283,174,537,266,78,324,778,778,216, - 1033,368,423,221,1071,446,573,892,893,1017, - 1023,537,537,636,870,744,879,575,4,764, - 762,284,126,266,4,778,778,379,368,216, - 874,1017,769,868,671,671,324,893,500,870, - 575,423,126,878,575,1017,1017,575,764,764, - 4,380,778,324,323,126,1017,575,446,380, - 446,768,768,886,501,1017,575,174,888,575, - 575,575,423,764,778,569,324,575,575,446, - 717,717,886,500,1031,537,1031,324,499,423, - 423,423,501,423,575,335,324,324,575,893, - 126,888,575,575,637,4,575,324,769,492, - 423,492,501,1031,501,520,520,518,499,520, - 324,324,19,498,890,125,324,669,829,501, - 126,569,126,518,368,423,126,886,890,717, - 671,126,126,1009,501,19,501,324,368,536, - 501,498,768,893,893,1011,536,499,174,324, - 126,572,501,126,324,501 + 436,1,10,716,536,177,558,558,650,542, + 558,542,3,3,503,140,536,542,348,234, + 68,68,555,95,296,234,558,558,856,558, + 68,542,720,939,788,256,234,503,647,806, + 1046,856,856,856,856,718,1046,487,179,504, + 504,504,504,504,504,504,504,504,560,566, + 571,568,575,573,580,578,582,581,583,299, + 584,542,349,553,551,68,68,716,928,939, + 806,939,242,939,250,939,923,718,542,296, + 296,68,17,540,296,599,446,647,140,487, + 95,95,95,95,542,24,234,234,225,487, + 1006,94,788,487,560,787,787,24,503,504, + 504,504,504,504,504,504,504,504,504,504, + 504,504,504,504,504,504,504,504,503,503, + 503,503,503,503,503,503,503,503,503,503, + 504,17,349,551,1004,96,712,487,981,979, + 986,984,988,987,989,990,1003,1004,555,351, + 244,237,245,718,542,542,790,1004,720,542, + 503,140,234,234,1004,1004,1004,1004,790,234, + 504,716,884,874,873,608,946,946,718,179, + 296,94,503,234,539,541,539,234,296,568, + 568,566,566,566,573,573,573,573,571,571, + 578,575,575,581,580,582,137,583,551,551, + 689,700,700,700,700,684,718,737,504,504, + 504,504,504,504,504,504,504,503,503,503, + 503,503,503,503,503,503,503,503,503,504, + 487,351,542,805,545,742,790,806,453,542, + 790,542,17,646,1046,1046,1046,1046,542,542, + 225,234,886,888,542,788,504,95,564,190, + 234,542,541,788,503,551,550,542,504,979, + 979,979,984,981,981,987,986,988,137,989, + 647,542,351,137,245,856,792,1087,127,351, + 805,743,805,805,790,453,453,542,542,644, + 139,503,503,503,503,1046,1046,234,878,866, + 877,888,790,540,234,564,716,720,542,540, + 551,790,732,503,788,806,806,1004,856,539, + 804,129,1046,805,805,805,805,542,453,646, + 796,646,644,644,234,234,234,234,24,24, + 722,503,875,875,882,716,817,234,542,564, + 565,564,503,190,444,560,720,542,540,748, + 806,401,367,540,805,805,536,604,504,137, + 12,850,888,805,805,809,646,647,504,542, + 234,234,722,503,503,886,866,722,619,564, + 24,504,296,444,605,748,748,66,1048,340, + 1046,245,1086,367,540,805,806,718,129,504, + 504,888,858,395,810,542,647,724,722,565, + 234,296,647,748,748,400,340,66,862,718, + 1003,856,184,184,605,806,467,858,542,1046, + 234,809,542,718,718,542,724,724,647,401, + 748,605,604,234,718,542,367,401,367,1002, + 1002,794,468,718,542,24,801,542,542,542, + 1046,724,748,536,605,542,542,367,95,95, + 794,467,137,504,137,605,466,1046,1046,1046, + 468,1046,542,307,605,605,542,806,234,801, + 542,542,889,647,542,605,1003,459,1046,459, + 468,137,468,487,487,485,466,487,605,605, + 15,465,803,233,605,125,817,468,234,536, + 234,485,340,1046,234,794,803,95,184,234, + 234,632,468,15,468,605,340,503,468,465, + 1002,806,806,1038,503,466,24,605,234,539, + 468,234,605,468 }; }; public final static char asb[] = Asb.asb; @@ -1865,114 +2254,116 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asr { public final static byte asr[] = {0, - 25,120,69,8,71,0,74,68,72,90, - 73,67,63,120,3,8,69,25,70,0, - 26,11,12,40,23,42,65,13,43,56, - 27,28,44,14,29,30,15,16,31,66, - 32,45,17,18,46,33,47,57,49,61, - 50,34,51,58,19,22,20,24,21,52, - 53,54,39,3,37,38,9,6,35,36, - 41,68,7,1,2,4,10,5,0,120, - 0,91,89,35,36,92,93,87,88,55, - 94,95,96,97,98,99,100,101,107,72, - 90,70,108,109,110,111,112,113,114,115, - 116,117,118,71,25,120,68,1,2,9, - 6,4,3,63,69,73,8,0,71,61, - 37,38,9,6,35,36,41,46,3,4, - 52,53,54,39,50,44,49,12,21,11, - 17,15,16,18,19,14,13,20,10,43, - 47,45,42,51,67,8,7,5,1,2, - 66,65,0,8,73,11,12,42,65,13, - 43,44,14,15,16,66,7,45,17,18, - 46,47,49,61,50,51,10,19,20,21, - 52,53,54,1,2,3,37,38,9,6, - 35,36,5,41,4,39,0,48,4,72, - 1,2,67,8,0,65,66,3,10,43, - 47,45,42,51,12,21,11,17,15,16, - 18,19,14,13,20,52,53,54,39,50, - 44,49,5,7,4,37,38,9,6,35, - 36,41,46,1,2,118,8,0,61,23, - 24,7,5,1,2,4,74,67,119,106, - 37,38,63,3,91,89,6,92,93,35, - 36,88,87,55,94,95,96,97,9,98, - 99,100,68,90,73,120,70,108,109,110, - 111,112,113,114,115,116,117,72,118,71, - 101,107,69,25,8,0,68,72,90,69, - 118,73,71,120,11,12,42,65,13,43, - 44,14,15,16,66,45,17,18,46,47, - 49,61,50,51,10,19,20,21,52,53, - 54,39,37,38,35,36,41,8,25,5, - 7,1,2,4,3,9,6,0,67,40, - 23,13,56,27,14,29,30,15,16,31, - 32,17,18,33,57,34,10,58,19,22, - 20,24,21,12,11,26,8,25,62,59, - 64,86,28,48,9,6,5,7,60,1, - 2,4,3,0,4,8,72,67,0,86, - 59,7,103,104,105,62,8,3,9,6, - 5,72,71,25,60,26,11,12,40,23, - 13,56,27,28,14,29,30,15,16,31, - 32,17,18,33,57,34,10,58,19,22, - 20,24,21,4,1,2,48,0,1,2, - 8,69,71,0,8,72,118,73,25,69, - 0,86,103,104,105,48,72,102,121,71, - 60,74,62,59,64,76,78,84,82,75, - 80,81,83,85,67,77,79,25,8,26, - 40,23,56,27,28,29,30,31,32,33, - 57,34,58,22,24,61,65,66,10,43, - 47,45,42,51,12,21,11,17,15,16, - 18,19,14,13,20,52,53,54,39,50, - 44,49,37,38,35,36,41,46,9,6, - 3,4,7,5,1,2,0,26,11,12, - 23,13,27,28,14,29,30,15,16,31, - 7,32,17,18,33,34,19,22,20,24, - 21,1,2,8,63,9,6,5,4,73, - 25,3,0,9,6,7,5,4,1,2, - 3,63,68,70,69,8,73,90,0,5, - 7,3,63,6,9,90,26,11,12,23, - 13,56,27,28,14,29,30,15,16,31, - 32,17,18,33,57,34,10,58,19,22, - 20,24,21,1,2,4,73,8,40,0, - 68,70,69,1,2,0,66,65,35,36, - 6,92,93,98,9,99,5,41,70,55, - 68,111,112,108,109,110,116,115,117,88, - 87,113,114,96,97,94,95,100,101,37, - 38,69,89,106,63,3,10,56,40,57, + 120,0,74,64,71,97,72,69,60,120, + 3,9,68,39,70,0,8,5,6,1, + 2,57,0,9,72,11,12,41,66,13, + 42,43,14,15,16,67,8,44,17,18, + 45,46,47,59,48,49,10,19,20,21, + 50,51,52,1,2,3,36,37,7,5, + 34,35,6,40,4,38,0,41,66,42, + 43,67,8,44,45,46,47,59,48,49, + 50,51,52,38,36,37,7,5,34,35, + 6,40,64,3,4,10,1,2,55,56, 58,12,21,11,17,15,16,18,19,14, - 13,20,26,32,33,28,31,30,27,23, - 24,29,34,1,2,4,22,0,7,6, - 5,1,2,48,0,4,8,72,67,55, - 0,23,24,61,8,90,73,70,69,68, - 0,4,8,67,1,2,0,64,26,11, - 12,40,23,13,56,27,86,28,14,29, - 30,15,16,31,59,32,17,18,33,57, - 34,10,58,19,62,22,20,24,21,8, - 3,9,6,71,25,60,4,7,5,48, - 1,2,0,8,69,71,70,0,26,11, - 12,40,23,13,56,27,28,14,29,30, - 15,16,31,32,17,18,33,57,34,10, - 58,19,22,20,24,21,1,2,4,90, - 0,72,8,63,70,69,25,55,0,8, - 67,69,0,8,67,70,0,22,1,2, - 4,103,104,105,0,102,0,23,24,61, - 74,72,67,8,0,65,66,37,38,9, - 6,35,36,5,41,46,3,4,7,52, - 53,54,39,50,44,49,12,21,11,17, - 15,16,18,19,14,13,20,10,43,47, - 45,42,51,63,1,2,0,10,56,40, - 57,58,12,21,11,17,15,16,18,19, - 14,13,20,74,72,90,118,71,67,120, - 119,91,106,89,37,38,35,36,92,93, - 87,88,55,68,94,95,96,97,98,99, - 100,101,107,70,108,109,110,111,112,113, - 114,115,116,117,69,26,23,27,28,29, - 30,31,32,33,34,22,24,25,8,73, - 3,63,7,5,9,6,1,2,4,0, - 25,8,3,7,5,9,6,4,1,2, - 72,0,40,23,13,56,27,14,29,30, - 15,16,31,32,17,18,33,57,34,58, - 19,22,20,24,21,12,11,26,8,3, - 9,6,25,62,64,86,28,60,55,48, - 7,1,2,5,4,10,59,0 + 13,20,25,31,32,27,30,29,22,26, + 23,24,28,33,53,0,39,9,3,8, + 6,7,5,4,1,2,71,0,73,59, + 36,37,7,5,34,35,40,45,3,4, + 50,51,52,38,48,43,47,12,21,11, + 17,15,16,18,19,14,13,20,10,42, + 46,44,41,49,69,9,8,6,1,2, + 67,66,0,64,70,68,1,2,0,98, + 91,34,35,99,100,86,87,54,89,90, + 92,93,94,95,96,101,102,71,97,70, + 103,104,105,106,107,108,109,110,111,112, + 118,73,39,120,64,1,2,7,5,4, + 3,60,68,72,9,0,57,1,2,4, + 0,57,4,71,1,2,69,9,0,4, + 9,69,1,2,0,66,67,3,10,42, + 46,44,41,49,12,21,11,17,15,16, + 18,19,14,13,20,50,51,52,38,48, + 43,47,6,8,4,36,37,7,5,34, + 35,40,45,1,2,118,9,0,64,71, + 97,68,118,72,73,120,11,12,41,66, + 13,42,43,14,15,16,67,44,17,18, + 45,46,47,59,48,49,10,19,20,21, + 50,51,52,38,36,37,34,35,40,9, + 39,6,8,1,2,4,3,7,5,0, + 88,61,8,114,115,116,63,9,3,7, + 5,6,71,73,39,62,25,11,12,53, + 23,13,55,26,27,14,28,29,15,16, + 30,31,17,18,32,56,57,33,10,58, + 19,20,24,21,1,2,4,22,0,69, + 53,23,13,55,26,14,28,29,15,16, + 30,31,17,18,32,56,33,10,58,19, + 22,20,24,21,12,11,25,9,39,63, + 61,65,88,27,57,7,5,8,3,62, + 1,2,4,6,0,9,71,118,72,39, + 68,0,1,2,9,68,73,0,88,114, + 115,116,57,71,113,121,73,62,74,63, + 61,65,76,78,84,82,75,80,81,83, + 85,69,77,79,39,9,25,53,23,55, + 26,27,28,29,30,31,32,56,33,58, + 22,24,59,66,67,10,42,46,44,41, + 49,12,21,11,17,15,16,18,19,14, + 13,20,50,51,52,38,48,43,47,36, + 37,34,35,40,45,7,5,3,4,8, + 6,1,2,0,4,9,71,69,0,59, + 23,24,8,6,1,2,4,74,69,119, + 117,36,37,60,3,98,91,5,99,100, + 34,35,87,86,54,89,90,92,93,7, + 94,95,96,64,97,72,120,70,103,104, + 105,106,107,108,109,110,111,112,71,118, + 73,101,102,68,39,9,0,11,12,13, + 14,15,16,17,18,19,20,21,25,23, + 26,27,28,29,30,31,32,33,22,24, + 39,9,72,8,1,2,60,3,7,5, + 6,4,0,39,120,68,9,73,0,67, + 66,34,35,99,100,94,95,6,40,70, + 54,106,107,103,104,105,111,110,112,87, + 86,108,109,92,93,89,90,96,101,36, + 37,91,117,10,55,53,56,58,12,21, + 11,17,15,16,18,19,14,13,20,25, + 31,32,27,30,29,22,26,23,24,28, + 33,64,68,3,60,7,5,1,2,4, + 0,23,24,59,9,64,97,70,68,72, + 0,72,9,87,86,0,54,64,89,90, + 0,4,9,71,69,54,0,65,25,11, + 12,53,23,13,55,26,88,27,14,28, + 29,15,16,30,61,31,17,18,32,56, + 33,10,58,19,63,22,20,24,21,9, + 3,7,5,73,39,62,4,8,6,1, + 2,57,0,113,0,9,68,73,70,0, + 23,24,59,74,71,69,9,0,22,1, + 2,4,114,115,116,0,25,11,12,53, + 23,13,55,26,27,14,28,29,15,16, + 30,31,17,18,32,56,33,10,58,19, + 22,20,24,21,1,2,4,97,0,71, + 9,60,70,68,39,54,0,9,69,68, + 0,9,69,70,0,7,5,8,6,4, + 1,2,3,60,64,70,68,9,72,97, + 0,6,8,3,60,5,7,97,25,11, + 12,53,23,13,55,26,27,14,28,29, + 15,16,30,31,17,18,32,56,33,10, + 58,19,22,20,24,21,1,2,4,72, + 9,0,10,55,53,56,58,12,21,11, + 17,15,16,18,19,14,13,20,74,71, + 97,118,73,69,120,8,31,32,33,22, + 24,1,2,30,29,28,27,26,6,4, + 23,25,119,98,117,91,36,37,34,35, + 99,100,9,60,3,5,72,39,87,86, + 54,89,90,92,93,7,94,95,96,101, + 102,103,104,105,106,107,108,109,110,111, + 112,70,68,64,0,66,67,36,37,34, + 35,40,45,50,51,52,38,48,43,47, + 12,21,11,17,15,16,18,19,14,13, + 20,10,42,46,44,41,49,7,5,60, + 8,6,4,1,2,3,0,53,23,13, + 55,26,14,28,29,15,16,30,31,17, + 18,32,56,33,58,19,22,20,24,21, + 12,11,25,9,3,7,5,39,63,65, + 88,27,62,54,57,61,8,1,2,6, + 4,10,0 }; }; public final static byte asr[] = Asr.asr; @@ -1980,61 +2371,67 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Nasb { public final static char nasb[] = {0, - 142,12,33,130,142,216,12,12,163,229, - 12,152,15,15,55,59,212,152,12,280, - 147,147,106,5,82,280,12,12,12,12, - 147,218,12,12,25,77,280,61,147,177, - 12,12,12,12,12,11,12,274,152,61, - 61,225,61,61,61,61,61,61,12,12, - 12,12,12,12,12,12,12,12,12,61, - 12,152,132,132,132,37,37,130,241,242, - 177,242,72,242,190,242,235,10,152,82, - 82,37,182,216,82,12,12,102,147,274, - 42,42,42,42,152,67,280,280,135,1, - 61,51,25,274,12,17,17,67,158,61, - 61,61,61,61,61,61,61,61,61,61, - 61,61,61,61,61,61,61,61,61,61, - 61,61,61,61,61,61,61,61,61,158, - 61,30,12,147,12,12,12,113,147,186, - 11,87,11,152,218,12,12,12,218,61, - 59,280,280,12,12,12,12,48,280,61, - 130,134,15,15,12,12,12,10,152,82, - 42,55,280,215,152,215,280,82,12,12, + 200,12,42,193,200,260,12,12,142,274, + 12,185,13,13,44,68,256,185,12,226, + 205,205,51,5,104,226,12,12,12,12, + 205,262,12,12,32,99,226,70,205,233, + 12,12,12,12,12,11,12,161,185,70, + 70,270,70,70,70,70,70,70,12,12, + 12,12,12,12,12,12,12,12,12,70, + 12,185,195,195,195,34,34,193,241,242, + 233,242,87,242,92,242,235,10,185,104, + 104,34,19,260,104,12,12,140,205,161, + 303,303,303,303,185,25,226,226,208,1, + 70,28,32,161,12,124,124,25,162,70, + 70,70,70,70,70,70,70,70,70,70, + 70,70,70,70,70,70,70,70,70,70, + 70,70,70,70,70,70,70,70,70,162, + 70,79,12,205,12,247,208,156,12,12, + 12,12,12,12,12,12,12,12,214,205, + 152,11,108,11,185,262,12,12,12,262, + 70,68,226,226,12,12,12,12,76,226, + 70,193,207,13,13,12,12,12,10,185, + 104,303,44,226,259,185,259,226,104,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,132,53,37, - 257,187,70,70,12,193,177,147,193,24, - 187,182,102,12,12,12,12,187,218,111, - 280,264,147,152,25,61,42,147,45,280, - 152,179,25,61,147,53,102,152,198,12, - 27,12,12,117,244,257,70,70,147,147, - 24,147,230,218,187,13,58,158,158,158, - 158,12,12,280,12,140,12,267,23,187, - 280,119,113,12,229,187,53,25,177,150, - 12,12,11,147,125,12,147,147,123,123, - 187,230,95,12,12,13,12,280,280,280, - 280,67,67,147,61,12,12,139,130,267, - 280,187,147,121,12,158,113,180,12,12, - 216,147,177,252,147,193,147,93,212,198, - 61,12,104,12,147,123,123,206,95,102, - 61,230,280,280,53,61,61,264,210,147, - 12,119,67,61,82,180,198,220,147,12, - 252,245,12,149,117,267,216,93,84,97, - 142,61,61,267,12,11,35,193,102,147, - 53,121,280,82,102,252,220,176,125,12, - 12,11,12,12,161,161,198,84,101,12, - 193,12,280,200,193,11,11,218,75,147, - 102,252,147,198,12,280,11,193,267,252, - 147,12,12,147,155,97,218,67,147,218, - 193,193,12,75,220,142,198,193,28,267, - 42,42,204,172,12,61,12,198,12,12, - 12,12,173,12,230,196,198,198,230,90, - 280,53,218,218,278,102,28,198,12,109, - 12,12,173,12,173,282,282,167,12,282, - 198,198,12,147,147,280,198,12,42,173, - 280,142,280,270,147,12,280,204,75,42, - 161,280,280,147,173,12,173,198,142,158, - 173,109,12,90,90,140,61,12,232,198, - 280,215,173,280,198,173 + 12,12,12,12,12,12,12,12,195,97, + 241,242,242,242,242,287,10,12,70,70, + 70,70,70,70,70,70,70,70,70,70, + 70,70,70,70,70,70,70,70,162,70, + 34,295,153,95,95,12,244,233,205,244, + 31,153,19,140,12,12,12,12,153,262, + 212,226,264,205,185,32,70,303,205,84, + 226,185,149,32,70,205,97,185,70,12, + 12,12,12,12,12,12,12,12,12,12, + 140,185,175,12,64,12,12,47,56,295, + 95,95,205,205,31,205,275,262,153,133, + 67,162,162,162,162,12,12,226,12,198, + 12,267,30,153,226,49,214,12,274,153, + 97,31,226,70,32,233,147,12,12,11, + 205,188,12,205,205,90,90,153,275,111, + 12,12,133,12,226,226,226,226,25,25, + 205,70,12,12,197,193,267,226,153,205, + 117,12,162,214,150,12,12,153,260,205, + 233,282,205,244,205,122,256,175,70,12, + 106,12,205,90,90,165,111,140,70,275, + 226,226,97,70,70,264,254,205,12,49, + 25,70,104,150,175,277,205,12,282,57, + 12,146,47,267,260,122,119,15,200,70, + 70,267,12,11,113,244,140,205,97,117, + 226,104,140,282,277,232,188,12,12,11, + 12,12,82,82,175,119,139,12,244,12, + 226,135,244,11,11,262,23,205,140,282, + 205,175,12,226,11,244,267,282,205,12, + 12,205,218,15,262,25,205,262,244,244, + 12,23,277,200,175,244,65,267,303,303, + 54,228,12,70,12,175,12,12,12,12, + 229,12,275,173,175,175,275,130,226,97, + 262,262,224,140,65,175,12,115,12,12, + 229,12,229,169,169,180,12,169,175,175, + 12,205,205,226,175,12,303,229,226,200, + 226,302,205,12,226,54,23,303,82,226, + 226,205,229,12,229,175,200,162,229,115, + 12,130,130,198,70,12,177,175,226,259, + 229,226,175,229 }; }; public final static char nasb[] = Nasb.nasb; @@ -2042,35 +2439,37 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Nasr { public final static char nasr[] = {0, - 3,13,10,9,152,150,122,149,148,2, - 5,0,164,0,76,0,5,2,9,10, - 139,0,136,2,65,0,124,102,0,65, - 50,0,186,0,195,0,5,10,9,2, - 13,4,46,0,4,179,0,136,65,0, - 177,0,62,0,4,31,0,67,129,43, - 5,10,9,2,13,0,4,95,0,110, - 0,153,190,0,125,0,13,2,9,10, - 5,81,0,43,162,0,43,1,0,43, - 57,0,161,0,154,0,174,5,173,0, - 4,67,0,193,0,4,197,0,114,0, - 93,92,50,5,61,0,157,0,143,0, - 141,0,111,0,4,10,9,2,64,5, - 88,50,0,33,92,93,4,0,33,93, - 92,64,5,2,9,10,4,0,1,124, - 0,45,2,0,49,43,181,4,40,0, - 109,0,4,46,198,0,40,4,23,183, - 0,67,40,49,68,4,43,0,2,116, - 0,65,138,137,0,45,2,3,0,153, - 185,0,2,60,0,4,40,39,0,5, - 100,170,0,163,0,5,100,194,0,93, - 92,50,64,61,5,10,9,2,0,117, - 4,49,80,0,5,10,9,13,3,1, - 0,4,180,0,2,5,122,118,119,120, - 13,85,0,39,5,2,9,10,4,159, - 0,4,49,80,82,0,4,49,80,100, - 47,5,0,50,5,88,23,4,0,46, - 4,182,0,4,46,40,0,46,4,33, - 0,4,46,101,0 + 3,13,10,9,139,138,112,137,136,2, + 4,0,79,0,186,4,185,0,76,155, + 154,0,143,0,5,104,0,192,0,153, + 2,76,0,4,10,9,2,13,129,5, + 0,201,0,5,28,0,169,0,160,0, + 5,212,0,175,0,39,4,2,9,10, + 5,171,0,142,116,0,80,147,42,4, + 10,9,2,13,0,153,76,0,76,54, + 0,123,0,5,194,0,165,205,0,125, + 0,165,200,0,124,0,51,0,13,2, + 9,10,4,93,0,208,0,42,1,0, + 166,0,210,0,131,0,158,0,42,174, + 0,173,0,4,2,9,10,156,0,42, + 66,0,176,0,4,114,182,0,5,80, + 0,5,52,213,0,1,142,0,2,133, + 0,44,2,3,0,13,2,9,10,4, + 52,5,37,0,4,114,209,0,5,52, + 115,0,5,37,39,0,5,195,0,37, + 5,27,198,0,44,2,0,5,10,9, + 2,75,4,97,54,0,30,100,99,75, + 4,2,9,10,5,0,30,99,100,5, + 0,100,99,54,4,70,0,5,50,42, + 37,196,0,52,5,30,0,80,37,50, + 81,5,42,0,2,4,112,109,110,111, + 13,71,0,2,69,0,139,214,138,112, + 137,136,0,100,99,54,75,70,4,10, + 9,2,0,54,4,97,27,5,0,4, + 10,9,13,3,1,0,134,5,50,92, + 0,5,50,92,94,0,112,71,13,109, + 110,111,190,0,5,50,92,114,48,4, + 0,197,5,52,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2078,18 +2477,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TerminalIndex { public final static char terminalIndex[] = {0, - 113,114,2,31,13,10,79,115,9,100, + 113,114,2,31,10,13,9,79,115,100, 48,52,60,68,74,75,86,87,102,105, - 107,104,54,106,120,47,64,66,70,73, - 76,83,89,98,11,12,7,8,112,53, - 14,55,61,67,84,88,90,93,94,97, - 99,109,110,111,19,63,91,101,77,122, - 95,103,1,46,58,78,121,20,44,33, - 119,30,118,96,108,49,50,56,57,59, - 69,71,72,85,92,65,17,18,6,32, - 4,15,16,21,22,23,24,25,26,27, - 28,51,80,81,82,5,29,34,35,36, - 37,38,39,40,41,42,43,117,3,123, + 107,104,54,106,47,64,66,70,73,76, + 83,89,98,11,12,7,8,112,120,14, + 55,61,67,84,88,90,94,97,99,109, + 110,111,53,19,63,91,93,101,95,1, + 77,122,103,20,46,58,78,44,121,33, + 30,118,119,96,108,49,50,56,57,59, + 69,71,72,85,92,17,18,65,21,22, + 6,23,24,25,26,27,32,4,15,16, + 28,29,34,35,36,37,38,39,40,41, + 42,43,51,80,81,82,5,117,3,123, 62,116 }; }; @@ -2098,27 +2497,29 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 130,135,136,0,0,134,0,0,229,235, + 130,135,136,0,0,134,0,0,237,243, 133,0,143,0,132,0,0,142,148,0, - 0,149,180,158,159,160,161,162,163,164, - 151,165,126,166,141,167,168,0,128,131, - 169,0,129,138,137,152,177,0,0,0, - 0,0,0,0,0,145,172,204,0,0, - 155,187,201,205,0,0,127,171,0,0, - 0,0,0,0,175,206,0,0,0,0, - 125,178,0,0,186,0,0,202,212,157, - 208,209,210,0,0,146,0,0,207,220, - 174,196,198,0,199,0,0,211,0,0, - 0,0,240,241,0,147,179,189,190,191, - 192,193,195,0,0,214,217,0,0,219, - 0,238,0,239,0,0,139,140,144,0, - 0,154,156,0,170,0,181,182,183,184, - 185,188,0,0,0,194,0,197,203,0, - 0,215,216,0,0,221,224,0,226,228, - 0,232,233,234,237,124,0,150,153,0, - 173,0,176,0,0,200,213,218,0,0, - 222,223,225,227,0,230,231,236,242,243, - 0,0,0,0 + 0,149,158,159,160,161,188,151,0,126, + 162,141,163,164,165,166,131,167,128,168, + 0,129,138,137,170,169,171,185,0,0, + 195,152,172,0,173,0,0,0,0,0, + 174,175,176,0,177,180,212,0,0,155, + 194,0,0,209,213,0,145,0,214,127, + 179,0,0,0,0,0,0,183,0,0, + 0,0,125,186,0,0,210,216,217,218, + 0,220,157,0,146,0,0,215,197,198, + 199,201,227,228,182,204,206,0,207,0, + 0,219,0,0,0,0,248,0,251,0, + 252,0,147,187,189,190,191,192,196,200, + 203,0,0,222,225,0,0,0,246,0, + 247,0,0,139,140,144,0,0,154,156, + 0,178,0,193,0,0,0,202,0,205, + 211,0,0,223,224,0,0,229,232,0, + 234,236,0,240,241,242,245,0,0,249, + 124,0,150,153,0,181,0,184,0,0, + 208,221,226,0,0,230,231,233,235,0, + 238,239,244,250,253,254,0,0,0,0, + 0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2126,18 +2527,19 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopePrefix { public final static char scopePrefix[] = { - 159,311,589,608,304,319,540,556,567,578, - 372,267,281,298,333,42,292,392,430,167, - 597,483,20,51,71,80,85,90,130,195, - 326,341,346,144,273,287,511,27,144,382, - 346,616,27,217,246,1,14,61,76,106, - 351,361,365,448,476,505,532,536,626,630, - 634,97,7,97,410,426,439,460,524,116, - 116,232,439,547,563,574,585,207,494,56, - 56,156,222,225,56,241,262,225,225,56, - 369,473,480,156,56,649,110,355,414,454, - 467,56,355,401,177,104,452,638,645,638, - 645,65,420,137,104,104,251 + 172,324,608,627,317,332,559,575,586,597, + 372,280,294,311,344,55,305,392,430,180, + 616,502,20,33,64,84,93,98,103,143, + 208,339,350,20,467,157,286,300,530,40, + 157,382,20,635,40,230,259,1,14,27, + 74,89,119,27,361,365,448,495,524,551, + 555,645,649,653,110,7,110,410,426,439, + 460,479,543,129,129,245,439,566,582,593, + 604,220,513,69,69,169,235,238,69,254, + 275,238,238,69,369,492,499,169,69,668, + 123,355,414,454,486,472,69,355,401,190, + 117,452,657,664,657,664,78,420,150,117, + 117,264 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2145,18 +2547,19 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,135,5,5,135,135,5,5,5,5, - 379,135,95,135,339,48,278,398,436,173, - 67,489,25,25,25,59,59,95,135,200, - 331,331,339,149,278,101,516,38,152,387, - 603,621,32,211,211,5,18,5,59,95, - 331,95,95,135,244,5,5,5,5,5, - 244,647,11,101,379,379,379,464,516,120, - 125,236,443,551,551,551,551,211,498,59, - 59,5,5,228,230,244,5,265,265,230, - 95,5,244,5,509,5,113,358,417,457, - 470,528,519,404,180,95,95,640,640,642, - 642,67,422,139,202,187,253 + 18,148,5,5,148,148,5,5,5,5, + 379,148,108,148,25,61,291,398,436,186, + 80,508,25,38,38,38,72,72,108,148, + 213,31,31,25,5,162,291,114,535,51, + 165,387,622,640,45,224,224,5,18,31, + 5,72,108,31,108,108,148,257,5,5, + 5,5,5,257,666,11,114,379,379,379, + 464,483,535,133,138,249,443,570,570,570, + 570,224,517,72,72,5,5,241,243,257, + 5,278,278,243,108,5,257,5,528,5, + 126,358,417,457,489,475,547,538,404,193, + 108,108,659,659,661,661,80,422,152,215, + 200,266 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2164,18 +2567,19 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeLhs { public final static char scopeLhs[] = { - 47,120,18,18,79,120,18,18,18,18, - 71,84,48,79,119,77,54,71,70,47, - 18,20,3,7,8,170,170,166,118,47, - 119,119,121,128,55,48,139,133,128,71, - 18,18,133,94,160,135,74,173,170,166, - 121,184,52,57,143,19,18,18,18,18, - 18,12,114,166,71,70,70,38,139,130, - 130,61,70,18,18,18,18,94,20,174, - 170,186,92,99,59,76,58,159,75,121, - 72,144,143,177,139,17,166,121,101,69, - 22,139,139,71,47,166,66,137,45,137, - 45,173,101,118,47,47,160 + 48,111,18,18,91,111,18,18,18,18, + 84,96,49,91,110,89,59,84,83,48, + 18,20,190,3,7,8,182,182,178,109, + 48,110,110,140,45,146,60,49,156,150, + 146,84,18,18,150,101,172,152,87,190, + 185,182,178,140,199,57,66,160,19,18, + 18,18,18,18,12,131,178,84,83,83, + 64,41,156,113,113,70,83,18,18,18, + 18,101,20,186,182,201,99,108,68,79, + 67,171,88,140,85,161,160,192,156,17, + 178,140,115,82,22,45,156,156,84,48, + 178,78,154,44,154,44,185,115,109,48, + 48,172 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2183,18 +2587,19 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeLa { public final static byte scopeLa[] = { - 102,71,73,73,71,71,73,73,73,73, - 73,71,25,71,1,68,1,73,121,67, - 3,73,68,68,68,1,1,25,71,67, - 1,1,1,71,1,1,4,68,69,25, - 1,1,68,73,73,73,102,73,1,25, - 1,25,25,71,118,73,73,73,73,73, - 118,1,73,1,73,73,73,72,4,1, - 1,6,73,68,68,68,68,73,3,1, - 1,73,73,3,1,118,73,1,1,1, - 25,73,118,73,5,73,1,48,70,72, - 73,1,48,75,74,25,25,4,4,4, - 4,3,1,67,1,1,3 + 113,73,72,72,73,73,72,72,72,72, + 72,73,39,73,1,64,1,72,121,69, + 3,72,1,64,64,64,1,1,39,73, + 69,1,1,1,72,73,1,1,4,64, + 68,39,1,1,64,72,72,72,113,1, + 72,1,39,1,39,39,73,118,72,72, + 72,72,72,118,1,72,1,72,72,72, + 71,71,4,1,1,5,72,64,64,64, + 64,72,3,1,1,72,72,3,1,118, + 72,1,1,1,39,72,118,72,6,72, + 1,57,70,71,72,64,1,57,75,74, + 39,39,4,4,4,4,3,1,69,1, + 1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2202,18 +2607,19 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeStateSet { public final static char scopeStateSet[] = { - 67,108,252,252,89,108,252,252,252,252, - 77,91,67,89,108,89,69,77,77,67, - 252,252,183,227,227,52,52,64,108,67, - 108,108,108,315,69,67,100,48,315,77, - 252,252,48,116,61,24,77,28,52,64, - 108,22,69,31,58,252,252,252,252,252, - 252,231,6,64,77,77,77,284,100,108, - 108,148,77,252,252,252,252,116,252,28, - 52,164,116,118,166,112,166,61,171,108, - 77,55,58,103,100,252,64,108,1,77, - 253,100,100,77,67,64,11,105,124,105, - 124,28,1,108,67,67,61 + 67,136,286,286,89,136,286,286,286,286, + 77,91,67,89,136,89,69,77,77,67, + 286,286,100,215,261,261,52,52,64,136, + 67,136,136,138,111,373,69,67,103,48, + 373,77,286,286,48,146,61,24,77,100, + 28,52,64,138,22,69,31,58,286,286, + 286,286,286,286,265,6,64,77,77,77, + 119,346,103,136,136,180,77,286,286,286, + 286,146,286,28,52,196,146,148,198,142, + 198,61,203,138,77,55,58,106,103,286, + 64,138,1,77,287,111,103,103,77,67, + 64,11,108,155,108,155,28,1,136,67, + 67,61 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2221,72 +2627,73 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeRhs { public final static char scopeRhs[] = {0, - 322,3,61,0,126,0,321,3,102,0, - 126,172,0,126,179,74,0,216,0,253, - 126,55,124,0,20,0,297,126,55,48, - 0,20,53,0,33,132,0,20,53,0, - 0,297,126,55,48,202,0,20,178,0, - 253,126,55,132,0,182,127,0,141,0, - 217,3,296,0,296,0,2,0,126,0, - 253,126,55,131,0,182,127,222,0,182, - 127,22,222,0,182,127,317,22,0,128, - 187,167,127,0,128,0,187,167,127,0, - 134,128,0,171,0,313,126,171,0,126, - 171,0,222,128,0,167,312,244,0,136, - 0,0,0,0,135,0,0,0,0,311, - 126,165,252,0,127,0,252,0,129,0, - 0,127,0,310,126,165,251,0,127,0, - 0,44,127,0,0,153,3,0,126,284, - 283,126,74,281,171,0,283,126,74,281, - 171,0,215,0,216,0,281,171,0,96, - 0,0,215,0,216,0,203,96,0,0, - 215,0,216,0,283,126,281,171,0,215, - 0,203,0,0,215,0,228,126,3,0, - 126,0,0,0,0,0,228,126,3,214, - 0,221,3,0,210,126,0,208,0,146, - 0,172,167,127,0,10,0,0,0,0, - 212,63,0,125,0,228,126,3,180,0, - 180,0,2,0,0,126,0,0,0,0, - 0,197,3,0,201,0,237,126,165,39, - 28,0,182,127,59,62,0,196,128,0, - 128,182,127,279,62,0,182,127,279,62, - 0,182,127,70,123,59,0,237,126,165, - 246,59,0,237,126,165,246,224,59,0, - 276,277,126,165,123,307,56,0,276,277, - 126,165,307,56,0,182,127,275,56,0, - 135,0,187,182,127,275,244,0,136,0, - 182,127,275,244,0,187,167,127,10,0, - 167,127,10,0,167,127,0,93,136,0, - 268,126,145,0,268,126,171,0,162,84, - 0,302,161,304,305,3,81,0,126,171, - 0,304,305,3,81,0,128,0,126,171, - 0,162,3,75,190,80,0,126,128,0, - 190,80,0,108,2,131,126,128,0,223, - 3,75,0,197,168,0,33,169,0,168, - 0,175,33,169,0,223,3,85,0,190, - 155,223,3,83,0,62,171,0,223,3, - 83,0,126,171,62,171,0,303,126,165, - 0,162,0,212,77,0,30,171,0,162, - 107,159,0,30,169,0,178,3,0,126, - 149,0,217,3,0,212,63,265,0,162, - 63,0,178,3,299,66,127,0,126,0, - 0,0,0,299,66,127,0,2,145,126, - 0,0,0,0,178,3,46,0,147,0, - 125,48,167,127,0,31,147,0,93,136, - 31,147,0,218,182,127,0,146,31,147, - 0,178,3,51,0,162,3,51,0,162, - 3,68,178,55,42,0,178,55,42,0, - 20,2,131,126,0,162,3,68,178,55, - 45,0,178,55,45,0,162,3,68,178, - 55,47,0,178,55,47,0,162,3,68, - 178,55,43,0,178,55,43,0,217,3, - 125,187,167,127,10,0,125,187,167,127, - 10,0,136,2,0,126,0,217,3,124, - 258,167,127,10,0,258,167,127,10,0, - 135,2,0,126,0,217,3,135,0,217, - 3,140,0,162,63,140,0,260,0,31, - 0,31,139,0,166,0,134,0,162,3, - 0 + 338,3,59,0,126,0,337,3,113,0, + 126,180,0,127,188,74,0,224,0,198, + 166,126,10,0,136,0,166,126,10,0, + 135,0,270,127,54,124,0,20,0,309, + 127,54,57,0,20,53,0,33,132,0, + 20,53,0,0,309,127,54,57,214,0, + 20,186,0,270,127,54,132,0,191,126, + 0,141,0,226,3,308,0,308,0,2, + 0,126,0,270,127,54,131,0,191,126, + 236,0,191,126,22,236,0,191,126,332, + 22,0,128,198,166,126,0,128,0,198, + 166,126,0,134,128,0,172,0,328,127, + 172,0,127,172,0,230,128,0,166,327, + 234,0,136,0,0,0,0,135,0,0, + 0,0,326,127,164,235,0,127,0,235, + 0,129,0,0,127,0,325,127,164,269, + 0,127,0,0,44,127,0,0,150,3, + 0,127,296,295,127,74,293,172,0,295, + 127,74,293,172,0,223,0,224,0,293, + 172,0,96,0,0,223,0,224,0,211, + 96,0,0,223,0,224,0,295,127,293, + 172,0,223,0,211,0,0,223,0,242, + 127,3,0,126,0,0,0,0,0,242, + 127,3,221,0,230,3,0,219,127,0, + 216,0,146,0,176,166,126,0,10,0, + 0,0,0,225,60,0,125,0,242,127, + 3,189,0,189,0,2,0,0,126,0, + 0,0,0,0,210,3,0,209,0,254, + 127,164,38,27,0,191,126,61,63,0, + 204,128,0,128,191,126,291,63,0,191, + 126,291,63,0,191,126,70,123,61,0, + 254,127,164,264,61,0,254,127,164,264, + 238,61,0,288,289,127,164,123,322,55, + 0,288,289,127,164,322,55,0,191,126, + 287,55,0,198,191,126,287,234,0,191, + 126,287,234,0,166,126,0,93,136,0, + 285,127,149,0,285,127,172,0,159,84, + 0,317,161,319,320,3,81,0,126,179, + 0,319,320,3,81,0,128,0,126,179, + 0,159,3,75,203,80,0,126,128,0, + 203,80,0,108,2,131,126,128,0,237, + 3,75,0,210,174,0,33,169,0,174, + 0,183,33,169,0,237,3,85,0,203, + 152,237,3,83,0,62,179,0,237,3, + 83,0,126,179,62,179,0,318,127,164, + 0,159,0,225,77,0,30,179,0,159, + 102,185,0,30,177,0,148,64,167,3, + 0,167,3,0,20,161,126,0,159,102, + 162,0,30,169,0,199,3,0,126,149, + 0,226,3,0,225,60,282,0,159,60, + 0,199,3,314,67,126,0,126,0,0, + 0,0,314,67,126,0,2,145,126,0, + 0,0,0,199,3,45,0,147,0,125, + 57,166,126,0,31,147,0,93,136,31, + 147,0,227,191,126,0,146,31,147,0, + 199,3,49,0,159,3,49,0,159,3, + 64,199,54,41,0,199,54,41,0,20, + 2,131,126,0,159,3,64,199,54,44, + 0,199,54,44,0,159,3,64,199,54, + 46,0,199,54,46,0,159,3,64,199, + 54,42,0,199,54,42,0,226,3,125, + 198,166,126,10,0,125,198,166,126,10, + 0,136,2,0,126,0,226,3,124,275, + 166,126,10,0,275,166,126,10,0,135, + 2,0,126,0,226,3,135,0,226,3, + 140,0,159,60,140,0,277,0,31,0, + 31,139,0,165,0,134,0,159,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2294,38 +2701,44 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeState { public final static char scopeState[] = {0, - 4660,4889,4879,4850,0,2981,3696,2485,3588,0, - 3598,3542,3410,3354,3298,3242,3186,3130,3074,2976, - 2918,2974,0,2106,1985,1196,0,2747,2114,0, - 3598,3542,1811,1725,3410,3354,3298,3242,3186,3130, - 1639,3074,2976,2918,1553,1467,0,4814,3284,4493, - 0,3447,3658,0,3008,2729,0,3640,2701,0, - 4608,4378,0,4632,4624,0,4632,4624,4250,4510, - 4501,4239,4492,4429,3802,4391,3598,3542,3410,3354, - 3298,3242,3186,3130,3074,2976,2918,0,4632,4624, - 4250,4510,4501,4239,4492,4429,3802,4391,0,667, - 586,0,823,0,3094,3090,0,541,4335,2646, - 0,2079,2069,751,580,3723,2652,3485,2853,2663, - 2839,3378,0,4736,4725,4713,4685,4306,3776,3753, - 3527,4843,4831,4826,3523,3386,3330,3274,4820,3218, - 4803,3162,3106,4485,2653,2891,0,2632,3723,4646, - 4400,2700,3569,2826,872,4634,2652,2948,826,742, - 3866,741,0,685,0,4608,3723,4400,4378,3866, - 3485,3737,4595,4221,2632,4208,2853,2826,2663,1063, - 3760,0,3360,3266,4736,4725,4713,3101,2290,4685, - 2204,4306,3776,3753,3527,3659,3604,3322,2866,2769, - 2200,4843,3000,4831,4826,1382,1128,3523,3386,934, - 3330,3274,3080,3248,4820,3218,4803,3162,4335,3106, - 4485,3210,2646,2653,2891,629,2779,2709,2677,1133, - 809,3485,3737,4595,4221,2632,4208,4608,3723,4400, - 2853,2826,2663,4378,2897,1192,667,586,3866,1063, - 3760,941,4185,4162,2294,2333,2401,2368,2491,2462, - 2432,2799,599,2604,2576,2548,2520,3698,3673,3498, - 3051,633,4139,4116,4093,4070,4047,4024,4001,3978, - 3955,3932,3891,1993,2247,2208,2161,2122,1298,1255, - 2075,2036,1212,1950,967,1907,1864,1821,1778,1735, - 1692,1649,1606,1563,1520,1477,1434,541,832,752, - 694,1391,1149,1341,1019,889,1082,0 + 6316,6335,6324,4187,0,3056,1897,2038,1018,0, + 5234,5172,5030,4968,4906,4844,4782,4720,4658,4545, + 4480,4250,0,1544,1399,678,0,2428,647,0, + 5234,5172,2761,2629,5030,4968,4906,4844,4782,4720, + 2489,4658,4545,4480,2299,2291,0,6210,4466,5989, + 0,2626,3391,0,2641,2112,0,2063,969,0, + 745,1038,0,4218,6299,0,4218,6299,5977,6219, + 6206,5916,6136,6108,5896,6038,5234,5172,5030,4968, + 4906,4844,4782,4720,4658,4545,4480,0,4218,6299, + 5977,6219,6206,5916,6136,6108,5896,6038,0,6221, + 5370,0,2402,2336,0,721,0,2078,668,0, + 3446,3546,3673,673,3907,3867,3755,3360,2947,1078, + 2834,2768,2702,2636,2570,2504,2438,2372,2306,2240, + 2174,925,834,764,0,6221,5370,599,4680,4181, + 0,1803,996,646,627,5386,4456,5118,4415,4197, + 4433,4491,3246,0,5500,5492,5242,5180,5164,5158, + 4997,4935,5917,5904,5897,5414,4873,4815,4811,4666, + 5263,2942,5062,4659,4429,4575,3862,4256,0,4163, + 5386,6253,6051,2818,4853,4400,2816,5445,4456,4730, + 914,4729,1060,2742,0,820,0,745,5386,6051, + 1038,1060,5118,5400,2204,5883,4163,794,4415,4400, + 4197,655,5422,0,1746,1699,5500,5492,5242,1652, + 1457,5180,920,5164,5158,4997,4935,1981,1934,1887, + 1840,1793,1601,1504,5917,5904,2873,5897,5414,1409, + 1334,4873,4815,956,4811,4666,3154,3252,5263,2942, + 5062,4659,4680,4429,4575,1214,4181,3862,4256,641, + 2600,2274,900,864,1109,5118,5400,2204,5883,4163, + 794,745,5386,6051,4415,4400,4197,1038,2534,2468, + 2402,2336,1060,655,5422,5861,2947,4136,5838,1078, + 3446,2834,2768,2702,2636,2570,2504,2438,2372,2306, + 2240,2174,3546,3673,673,3907,3867,3755,4109,4082, + 4055,5815,3360,3407,3509,3638,3602,3835,3803,3721, + 4366,4340,4028,4001,3974,3947,5346,5322,5131,4633, + 1339,5792,5769,5746,925,834,764,5723,5700,5677, + 5654,5631,5608,5579,1266,3013,3298,3256,3200,3158, + 1462,1415,3102,3060,1367,2900,2127,2080,2033,1986, + 1939,1892,1845,1798,1751,1704,1657,1610,599,1554, + 1292,1512,1144,991,1219,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2333,61 +2746,67 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface InSymb { public final static char inSymb[] = {0, - 0,298,227,126,3,4,132,131,7,5, - 124,127,186,180,3,70,210,127,172,197, - 55,55,168,126,63,3,65,66,124,123, - 55,182,166,124,167,63,153,126,165,251, - 51,42,45,47,43,10,135,3,127,46, - 41,5,36,35,6,9,38,37,140,146, - 148,147,150,149,152,151,156,154,158,61, - 159,127,167,9,6,126,126,126,269,270, - 252,271,244,272,56,273,274,10,127,63, - 63,126,4,187,212,159,267,126,165,3, - 55,55,55,55,127,3,178,162,168,126, - 65,66,167,3,125,106,119,3,63,89, - 91,36,35,93,92,6,95,94,68,55, - 87,88,9,97,96,99,98,100,117,116, - 115,114,113,112,111,110,109,108,70,107, - 101,167,172,172,253,256,253,210,165,312, - 275,307,275,127,182,167,253,260,187,69, - 126,178,162,178,178,178,178,167,217,155, - 126,3,215,214,135,125,124,10,127,63, - 299,3,178,48,127,48,217,162,147,147, - 146,146,146,149,149,149,149,148,148,151, - 150,150,154,152,156,162,158,6,126,69, - 126,167,231,125,124,127,123,165,127,167, - 48,4,310,68,68,68,68,187,258,210, - 221,126,3,127,167,203,3,300,168,153, - 127,182,167,72,172,184,311,127,169,222, - 59,48,202,62,171,314,125,124,232,232, - 182,165,126,182,187,189,69,3,3,3, - 3,125,124,228,229,145,230,126,167,48, - 178,126,126,218,5,48,126,167,246,224, - 55,48,279,281,126,180,232,232,126,126, - 187,126,277,123,278,189,8,162,162,162, - 162,3,3,155,70,221,197,3,126,69, - 228,187,155,262,265,63,183,4,123,125, - 187,165,246,68,55,127,74,126,210,313, - 72,291,197,124,3,126,126,72,277,276, - 70,69,217,217,126,70,70,126,210,155, - 125,126,3,63,162,4,128,126,165,28, - 48,171,64,59,62,126,182,126,283,72, - 69,72,70,126,316,222,22,127,276,219, - 126,262,217,212,237,239,126,39,126,3, - 123,59,297,48,10,40,128,283,165,295, - 127,296,228,69,127,22,317,182,126,219, - 237,126,165,268,280,39,70,127,69,68, - 55,231,231,284,126,69,182,3,155,182, - 127,127,61,126,126,69,155,127,182,126, - 70,70,126,303,79,77,1,162,8,85, - 83,81,80,75,82,84,78,76,59,74, - 217,126,182,182,3,237,182,224,297,285, - 102,8,72,212,72,3,3,3,190,3, - 123,162,123,179,219,322,224,68,3,72, - 223,168,223,305,145,75,223,126,126,69, - 40,90,321,168,155,197,155,304,126,3, - 155,285,231,155,155,126,70,190,161,268, - 162,70,121,302,155,155 + 0,313,241,127,3,4,132,131,8,6, + 124,126,197,189,3,70,219,126,176,210, + 54,54,174,127,60,3,66,67,124,123, + 54,191,165,124,166,60,150,127,164,269, + 49,41,44,46,42,10,135,3,126,45, + 40,6,35,34,5,7,37,36,140,145, + 147,146,153,148,156,155,158,157,160,59, + 162,126,166,7,5,127,127,127,257,258, + 235,259,234,260,55,286,261,10,126,60, + 60,127,4,198,225,162,284,127,164,3, + 54,54,54,54,126,3,199,159,174,127, + 66,67,166,3,125,117,119,3,60,91, + 98,35,34,100,99,5,90,89,64,54, + 86,87,7,93,92,95,94,96,112,111, + 110,109,108,107,106,105,104,103,70,102, + 101,166,176,176,270,127,251,3,167,148, + 175,169,183,177,184,185,273,270,219,164, + 327,287,322,287,126,191,166,270,277,198, + 68,127,199,159,199,199,199,199,166,226, + 152,127,3,222,221,135,125,124,10,126, + 60,314,3,199,57,126,57,226,159,146, + 146,145,145,145,148,148,148,148,147,147, + 155,153,153,157,156,158,159,160,5,127, + 257,258,259,260,336,261,10,167,90,89, + 54,7,93,92,95,94,96,112,111,110, + 109,108,107,106,105,104,103,70,102,101, + 68,127,166,245,125,124,126,123,164,126, + 166,57,4,325,64,64,64,64,198,275, + 219,230,127,3,126,166,215,3,315,174, + 150,126,191,166,71,176,173,126,64,148, + 148,148,169,167,167,177,175,183,159,184, + 326,126,170,236,61,57,214,63,172,329, + 125,124,246,246,191,164,127,191,198,202, + 68,3,3,3,3,125,124,242,243,149, + 244,127,166,57,199,127,127,227,6,57, + 127,166,148,71,166,264,238,54,57,291, + 293,127,189,246,246,127,127,198,127,289, + 123,290,202,9,159,159,159,159,3,3, + 152,70,230,210,3,127,68,242,198,152, + 279,282,60,192,4,123,125,198,198,164, + 264,64,54,126,74,127,219,328,71,303, + 210,124,3,127,127,71,289,288,70,68, + 226,226,127,70,70,127,219,152,125,127, + 3,60,159,4,128,127,164,27,57,172, + 65,61,63,127,191,127,295,71,68,71, + 70,127,331,236,22,126,288,228,127,279, + 226,225,254,256,127,38,127,3,123,61, + 309,57,10,53,128,295,164,307,126,308, + 242,68,126,22,332,191,127,228,254,127, + 164,285,292,38,70,126,68,64,54,245, + 245,296,127,68,191,3,152,191,126,126, + 59,127,127,68,152,126,191,127,70,70, + 127,318,79,77,1,159,9,85,83,81, + 80,75,82,84,78,76,61,74,226,127, + 191,191,3,254,191,238,309,297,113,9, + 71,225,71,3,3,3,203,3,123,159, + 123,188,228,338,238,64,3,71,237,174, + 237,320,149,75,237,127,127,68,53,97, + 337,174,152,210,152,319,127,3,152,297, + 245,152,152,127,70,203,161,285,159,70, + 121,317,152,152 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2567,6 +2986,20 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars "logical_and_expression", "logical_or_expression", "assignment_expression", + "relational_expression_inTempla" + + "te", + "equality_expression_inTemplate", + "and_expression_inTemplate", + "exclusive_or_expression_inTemp" + + "late", + "inclusive_or_expression_inTemp" + + "late", + "logical_and_expression_inTempl" + + "ate", + "logical_or_expression_inTempla" + + "te", + "assignment_expression_inTempla" + + "te", "expression_list_actual", "statement", "compound_statement", @@ -2642,6 +3075,10 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars "template_parameter", "template_argument_list", "template_argument", + "type_name_specifier_inTemplate", + "type_name_declaration_specifie" + + "rs_inTemplate", + "type_specifier_seq_inTemplate", "handler", "exception_declaration", "type_id_list" @@ -2651,10 +3088,10 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 60, - SCOPE_UBOUND = 116, - SCOPE_SIZE = 117, - MAX_NAME_LENGTH = 37; + ERROR_SYMBOL = 62, + SCOPE_UBOUND = 121, + SCOPE_SIZE = 122, + MAX_NAME_LENGTH = 43; public final int getErrorSymbol() { return ERROR_SYMBOL; } public final int getScopeUbound() { return SCOPE_UBOUND; } @@ -2662,20 +3099,20 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 546, + NUM_STATES = 604, NT_OFFSET = 122, - LA_STATE_OFFSET = 5956, + LA_STATE_OFFSET = 7550, MAX_LA = 2147483647, - NUM_RULES = 540, - NUM_NONTERMINALS = 204, - NUM_SYMBOLS = 326, + NUM_RULES = 598, + NUM_NONTERMINALS = 225, + NUM_SYMBOLS = 347, SEGMENT_SIZE = 8192, - START_STATE = 3760, + START_STATE = 5422, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, - ACCEPT_ACTION = 5051, - ERROR_ACTION = 5416; + ACCEPT_ACTION = 6515, + ERROR_ACTION = 6952; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java index ffb21ef6460..a4900a0c532 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java @@ -15,127 +15,127 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoFunctionDeclaratorParsersym { public final static int - TK_asm = 64, - TK_auto = 26, + TK_asm = 65, + TK_auto = 25, TK_bool = 11, TK_break = 76, TK_case = 77, - TK_catch = 102, + TK_catch = 113, TK_char = 12, - TK_class = 40, + TK_class = 53, TK_const = 23, - TK_const_cast = 42, + TK_const_cast = 41, TK_continue = 78, TK_default = 79, - TK_delete = 65, + TK_delete = 66, TK_do = 80, TK_double = 13, - TK_dynamic_cast = 43, + TK_dynamic_cast = 42, TK_else = 121, - TK_enum = 56, - TK_explicit = 27, - TK_export = 86, - TK_extern = 28, - TK_false = 44, + TK_enum = 55, + TK_explicit = 26, + TK_export = 88, + TK_extern = 27, + TK_false = 43, TK_float = 14, TK_for = 81, - TK_friend = 29, + TK_friend = 28, TK_goto = 82, TK_if = 83, - TK_inline = 30, + TK_inline = 29, TK_int = 15, TK_long = 16, - TK_mutable = 31, - TK_namespace = 59, - TK_new = 66, - TK_operator = 7, - TK_private = 103, - TK_protected = 104, - TK_public = 105, - TK_register = 32, - TK_reinterpret_cast = 45, + TK_mutable = 30, + TK_namespace = 61, + TK_new = 67, + TK_operator = 8, + TK_private = 114, + TK_protected = 115, + TK_public = 116, + TK_register = 31, + TK_reinterpret_cast = 44, TK_return = 84, TK_short = 17, TK_signed = 18, - TK_sizeof = 46, - TK_static = 33, - TK_static_cast = 47, - TK_struct = 57, + TK_sizeof = 45, + TK_static = 32, + TK_static_cast = 46, + TK_struct = 56, TK_switch = 85, - TK_template = 48, - TK_this = 49, - TK_throw = 61, + TK_template = 57, + TK_this = 47, + TK_throw = 59, TK_try = 74, - TK_true = 50, - TK_typedef = 34, - TK_typeid = 51, + TK_true = 48, + TK_typedef = 33, + TK_typeid = 49, TK_typename = 10, TK_union = 58, TK_unsigned = 19, - TK_using = 62, + TK_using = 63, TK_virtual = 22, TK_void = 20, TK_volatile = 24, TK_wchar_t = 21, TK_while = 75, - TK_integer = 52, - TK_floating = 53, - TK_charconst = 54, - TK_stringlit = 39, + TK_integer = 50, + TK_floating = 51, + TK_charconst = 52, + TK_stringlit = 38, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 8, + TK_EndOfCompletion = 9, TK_Invalid = 122, - TK_LeftBracket = 63, + TK_LeftBracket = 60, TK_LeftParen = 3, TK_Dot = 119, - TK_DotStar = 91, - TK_Arrow = 106, - TK_ArrowStar = 89, - TK_PlusPlus = 37, - TK_MinusMinus = 38, - TK_And = 9, - TK_Star = 6, - TK_Plus = 35, - TK_Minus = 36, - TK_Tilde = 5, - TK_Bang = 41, - TK_Slash = 92, - TK_Percent = 93, - TK_RightShift = 87, - TK_LeftShift = 88, - TK_LT = 55, - TK_GT = 68, - TK_LE = 94, - TK_GE = 95, - TK_EQ = 96, - TK_NE = 97, - TK_Caret = 98, - TK_Or = 99, - TK_AndAnd = 100, + TK_DotStar = 98, + TK_Arrow = 117, + TK_ArrowStar = 91, + TK_PlusPlus = 36, + TK_MinusMinus = 37, + TK_And = 7, + TK_Star = 5, + TK_Plus = 34, + TK_Minus = 35, + TK_Tilde = 6, + TK_Bang = 40, + TK_Slash = 99, + TK_Percent = 100, + TK_RightShift = 86, + TK_LeftShift = 87, + TK_LT = 54, + TK_GT = 64, + TK_LE = 89, + TK_GE = 90, + TK_EQ = 92, + TK_NE = 93, + TK_Caret = 94, + TK_Or = 95, + TK_AndAnd = 96, TK_OrOr = 101, - TK_Question = 107, - TK_Colon = 72, + TK_Question = 102, + TK_Colon = 71, TK_ColonColon = 4, - TK_DotDotDot = 90, + TK_DotDotDot = 97, TK_Assign = 70, - TK_StarAssign = 108, - TK_SlashAssign = 109, - TK_PercentAssign = 110, - TK_PlusAssign = 111, - TK_MinusAssign = 112, - TK_RightShiftAssign = 113, - TK_LeftShiftAssign = 114, - TK_AndAssign = 115, - TK_CaretAssign = 116, - TK_OrAssign = 117, - TK_Comma = 69, + TK_StarAssign = 103, + TK_SlashAssign = 104, + TK_PercentAssign = 105, + TK_PlusAssign = 106, + TK_MinusAssign = 107, + TK_RightShiftAssign = 108, + TK_LeftShiftAssign = 109, + TK_AndAssign = 110, + TK_CaretAssign = 111, + TK_OrAssign = 112, + TK_Comma = 68, TK_RightBracket = 118, - TK_RightParen = 73, - TK_RightBrace = 71, - TK_SemiColon = 25, - TK_LeftBrace = 67, - TK_ERROR_TOKEN = 60, + TK_RightParen = 72, + TK_RightBrace = 73, + TK_SemiColon = 39, + TK_LeftBrace = 69, + TK_ERROR_TOKEN = 62, TK_EOF_TOKEN = 120; public final static String orderedTerminalSymbols[] = { @@ -144,11 +144,11 @@ public interface CPPNoFunctionDeclaratorParsersym { "Completion", "LeftParen", "ColonColon", - "Tilde", "Star", + "Tilde", + "And", "operator", "EndOfCompletion", - "And", "typename", "bool", "char", @@ -164,7 +164,6 @@ public interface CPPNoFunctionDeclaratorParsersym { "virtual", "const", "volatile", - "SemiColon", "auto", "explicit", "extern", @@ -179,7 +178,7 @@ public interface CPPNoFunctionDeclaratorParsersym { "PlusPlus", "MinusMinus", "stringlit", - "class", + "SemiColon", "Bang", "const_cast", "dynamic_cast", @@ -187,32 +186,33 @@ public interface CPPNoFunctionDeclaratorParsersym { "reinterpret_cast", "sizeof", "static_cast", - "template", "this", "true", "typeid", "integer", "floating", "charconst", + "class", "LT", "enum", "struct", + "template", "union", + "throw", + "LeftBracket", "namespace", "ERROR_TOKEN", - "throw", "using", - "LeftBracket", + "GT", "asm", "delete", "new", - "LeftBrace", - "GT", "Comma", + "LeftBrace", "Assign", - "RightBrace", "Colon", "RightParen", + "RightBrace", "try", "while", "break", @@ -225,27 +225,22 @@ public interface CPPNoFunctionDeclaratorParsersym { "if", "return", "switch", - "export", "RightShift", "LeftShift", - "ArrowStar", - "DotDotDot", - "DotStar", - "Slash", - "Percent", + "export", "LE", "GE", + "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd", + "DotDotDot", + "DotStar", + "Slash", + "Percent", "OrOr", - "catch", - "private", - "protected", - "public", - "Arrow", "Question", "StarAssign", "SlashAssign", @@ -257,6 +252,11 @@ public interface CPPNoFunctionDeclaratorParsersym { "AndAssign", "CaretAssign", "OrAssign", + "catch", + "private", + "protected", + "public", + "Arrow", "RightBracket", "Dot", "EOF_TOKEN", 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 e9cf17ad71d..b9bad0037a0 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 @@ -792,1125 +792,1353 @@ public String getName() { } // - // Rule 141: throw_expression ::= throw + // Rule 142: relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression // - case 141: { action. consumeExpressionThrow(false); break; + case 142: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 142: throw_expression ::= throw assignment_expression + // Rule 143: relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression ) // - case 142: { action. consumeExpressionThrow(true); break; + case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 145: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 144: relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression // - case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 146: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 145: relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression // - case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 147: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 147: equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate // - case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 148: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 148: equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate // - case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 149: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 150: and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate // - case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 150: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 152: exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate // - case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 151: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 154: inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate // - case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 152: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 156: logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate // - case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 156: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 153: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 158: logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate // - case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 158: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 154: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 160: conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate // - case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 160: { action. consumeExpressionConditional(); break; } // - // Rule 155: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 163: assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate // - case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 163: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 157: expression_list ::= expression_list_actual + // Rule 164: assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate // - case 157: { action. consumeExpressionList(); break; + case 164: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 161: expression_list_opt ::= $Empty + // Rule 165: assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate // - case 161: { action. consumeEmpty(); break; + case 165: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 163: expression_opt ::= $Empty + // Rule 166: assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate // - case 163: { action. consumeEmpty(); break; + case 166: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 166: constant_expression_opt ::= $Empty + // Rule 167: assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate // - case 166: { action. consumeEmpty(); break; + case 167: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 175: statement ::= ERROR_TOKEN + // Rule 168: assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate // - case 175: { action. consumeStatementProblem(); break; + case 168: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 176: labeled_statement ::= identifier : statement + // Rule 169: assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate // - case 176: { action. consumeStatementLabeled(); break; + case 169: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 177: labeled_statement ::= case constant_expression : statement + // Rule 170: assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate // - case 177: { action. consumeStatementCase(); break; + case 170: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 178: labeled_statement ::= default : statement + // Rule 171: assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate // - case 178: { action. consumeStatementDefault(); break; + case 171: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 179: expression_statement ::= expression ; + // Rule 172: assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate // - case 179: { action. consumeStatementExpression(); break; + case 172: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 180: expression_statement ::= ; + // Rule 173: assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate // - case 180: { action. consumeStatementNull(); break; + case 173: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 181: compound_statement ::= { statement_seq } + // Rule 174: throw_expression ::= throw // - case 181: { action. consumeStatementCompoundStatement(true); break; + case 174: { action. consumeExpressionThrow(false); break; } // - // Rule 182: compound_statement ::= { } + // Rule 175: throw_expression ::= throw assignment_expression // - case 182: { action. consumeStatementCompoundStatement(false); break; + case 175: { action. consumeExpressionThrow(true); break; } // - // Rule 185: selection_statement ::= if ( condition ) statement + // Rule 178: assignment_expression ::= logical_or_expression = assignment_expression // - case 185: { action. consumeStatementIf(false); break; + case 178: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 186: selection_statement ::= if ( condition ) statement else statement + // Rule 179: assignment_expression ::= logical_or_expression *= assignment_expression // - case 186: { action. consumeStatementIf(true); break; + case 179: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 187: selection_statement ::= switch ( condition ) statement + // Rule 180: assignment_expression ::= logical_or_expression /= assignment_expression // - case 187: { action. consumeStatementSwitch(); break; + case 180: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 189: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 181: assignment_expression ::= logical_or_expression %= assignment_expression // - case 189: { action. consumeConditionDeclaration(); break; + case 181: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 191: condition_opt ::= $Empty + // Rule 182: assignment_expression ::= logical_or_expression += assignment_expression // - case 191: { action. consumeEmpty(); break; + case 182: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 192: iteration_statement ::= while ( condition ) statement + // Rule 183: assignment_expression ::= logical_or_expression -= assignment_expression // - case 192: { action. consumeStatementWhileLoop(); break; + case 183: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 193: iteration_statement ::= do statement while ( expression ) ; + // Rule 184: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 193: { action. consumeStatementDoLoop(true); break; + case 184: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 194: iteration_statement ::= do statement + // Rule 185: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 194: { action. consumeStatementDoLoop(false); break; + case 185: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 186: assignment_expression ::= logical_or_expression &= assignment_expression // - case 195: { action. consumeStatementForLoop(); break; + case 186: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 197: for_init_statement ::= simple_declaration_with_declspec + // Rule 187: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 197: { action. consumeStatementDeclaration(); break; + case 187: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 198: jump_statement ::= break ; + // Rule 188: assignment_expression ::= logical_or_expression |= assignment_expression // - case 198: { action. consumeStatementBreak(); break; + case 188: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 199: jump_statement ::= continue ; + // Rule 190: expression_list ::= expression_list_actual // - case 199: { action. consumeStatementContinue(); break; + case 190: { action. consumeExpressionList(); break; } // - // Rule 200: jump_statement ::= return expression ; + // Rule 194: expression_list_opt ::= $Empty // - case 200: { action. consumeStatementReturn(true); break; + case 194: { action. consumeEmpty(); break; } // - // Rule 201: jump_statement ::= return ; + // Rule 196: expression_opt ::= $Empty // - case 201: { action. consumeStatementReturn(false); break; + case 196: { action. consumeEmpty(); break; } // - // Rule 202: jump_statement ::= goto identifier_token ; + // Rule 199: constant_expression_opt ::= $Empty // - case 202: { action. consumeStatementGoto(); break; + case 199: { action. consumeEmpty(); break; } // - // Rule 203: declaration_statement ::= block_declaration + // Rule 208: statement ::= ERROR_TOKEN // - case 203: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 208: { action. consumeStatementProblem(); break; } // - // Rule 204: declaration_statement ::= function_definition + // Rule 209: labeled_statement ::= identifier : statement // - case 204: { action. consumeStatementDeclaration(); break; + case 209: { action. consumeStatementLabeled(); break; } // - // Rule 212: declaration ::= ERROR_TOKEN + // Rule 210: labeled_statement ::= case constant_expression : statement // - case 212: { action. consumeDeclarationProblem(); break; + case 210: { action. consumeStatementCase(); break; } // - // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 211: labeled_statement ::= default : statement // - case 222: { action. consumeDeclarationSimple(true); break; + case 211: { action. consumeStatementDefault(); break; } // - // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 212: expression_statement ::= expression ; // - case 223: { action. consumeDeclarationSimple(true); break; + case 212: { action. consumeStatementExpression(); break; } // - // Rule 224: declaration_specifiers ::= simple_declaration_specifiers + // Rule 213: expression_statement ::= ; // - case 224: { action. consumeDeclarationSpecifiersSimple(); break; + case 213: { action. consumeStatementNull(); break; } // - // Rule 225: declaration_specifiers ::= class_declaration_specifiers + // Rule 214: compound_statement ::= { statement_seq } // - case 225: { action. consumeDeclarationSpecifiersComposite(); break; + case 214: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 226: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 215: compound_statement ::= { } // - case 226: { action. consumeDeclarationSpecifiersComposite(); break; + case 215: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 227: declaration_specifiers ::= enum_declaration_specifiers + // Rule 218: selection_statement ::= if ( condition ) statement // - case 227: { action. consumeDeclarationSpecifiersComposite(); break; + case 218: { action. consumeStatementIf(false); break; } // - // Rule 228: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 219: selection_statement ::= if ( condition ) statement else statement // - case 228: { action. consumeDeclarationSpecifiersTypeName(); break; + case 219: { action. consumeStatementIf(true); break; } // - // Rule 230: declaration_specifiers_opt ::= $Empty + // Rule 220: selection_statement ::= switch ( condition ) statement // - case 230: { action. consumeEmpty(); break; + case 220: { action. consumeStatementSwitch(); break; } // - // Rule 234: no_type_declaration_specifier ::= friend + // Rule 222: condition ::= type_specifier_seq declarator = assignment_expression // - case 234: { action. consumeToken(); break; + case 222: { action. consumeConditionDeclaration(); break; } // - // Rule 235: no_type_declaration_specifier ::= typedef + // Rule 224: condition_opt ::= $Empty // - case 235: { action. consumeToken(); break; + case 224: { action. consumeEmpty(); break; } // - // Rule 255: storage_class_specifier ::= auto + // Rule 225: iteration_statement ::= while ( condition ) statement // - case 255: { action. consumeToken(); break; + case 225: { action. consumeStatementWhileLoop(); break; } // - // Rule 256: storage_class_specifier ::= register + // Rule 226: iteration_statement ::= do statement while ( expression ) ; // - case 256: { action. consumeToken(); break; + case 226: { action. consumeStatementDoLoop(true); break; } // - // Rule 257: storage_class_specifier ::= static + // Rule 227: iteration_statement ::= do statement // - case 257: { action. consumeToken(); break; + case 227: { action. consumeStatementDoLoop(false); break; } // - // Rule 258: storage_class_specifier ::= extern + // Rule 228: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 258: { action. consumeToken(); break; + case 228: { action. consumeStatementForLoop(); break; } // - // Rule 259: storage_class_specifier ::= mutable + // Rule 230: for_init_statement ::= simple_declaration_with_declspec // - case 259: { action. consumeToken(); break; + case 230: { action. consumeStatementDeclaration(); break; } // - // Rule 260: function_specifier ::= inline + // Rule 231: jump_statement ::= break ; // - case 260: { action. consumeToken(); break; + case 231: { action. consumeStatementBreak(); break; } // - // Rule 261: function_specifier ::= virtual + // Rule 232: jump_statement ::= continue ; // - case 261: { action. consumeToken(); break; + case 232: { action. consumeStatementContinue(); break; } // - // Rule 262: function_specifier ::= explicit + // Rule 233: jump_statement ::= return expression ; // - case 262: { action. consumeToken(); break; + case 233: { action. consumeStatementReturn(true); break; } // - // Rule 263: simple_type_specifier ::= simple_type_specifier_token + // Rule 234: jump_statement ::= return ; // - case 263: { action. consumeToken(); break; + case 234: { action. consumeStatementReturn(false); break; } // - // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 235: jump_statement ::= goto identifier_token ; // - case 277: { action. consumeQualifiedId(false); break; + case 235: { action. consumeStatementGoto(); break; } // - // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 236: declaration_statement ::= block_declaration // - case 278: { action. consumeQualifiedId(false); break; + case 236: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 237: declaration_statement ::= function_definition // - case 279: { action. consumeQualifiedId(false); break; + case 237: { action. consumeStatementDeclaration(); break; } // - // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 245: declaration ::= ERROR_TOKEN // - case 280: { action. consumeQualifiedId(true); break; + case 245: { action. consumeDeclarationProblem(); break; } // - // Rule 282: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 255: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 282: { action. consumeTypeSpecifierElaborated(false); break; + case 255: { action. consumeDeclarationSimple(true); break; } // - // Rule 283: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 256: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 283: { action. consumeTypeSpecifierElaborated(true); break; + case 256: { action. consumeDeclarationSimple(true); break; } // - // Rule 284: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 257: declaration_specifiers ::= simple_declaration_specifiers // - case 284: { action. consumeTypeSpecifierElaborated(false); break; + case 257: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 288: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 258: declaration_specifiers ::= class_declaration_specifiers // - case 288: { action. consumeTypeSpecifierEnumeration(false); break; + case 258: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 289: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 259: declaration_specifiers ::= elaborated_declaration_specifiers // - case 289: { action. consumeTypeSpecifierEnumeration(true); break; + case 259: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 295: enumerator_definition ::= identifier_token + // Rule 260: declaration_specifiers ::= enum_declaration_specifiers // - case 295: { action. consumeEnumerator(false); break; + case 260: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 296: enumerator_definition ::= identifier_token = constant_expression + // Rule 261: declaration_specifiers ::= type_name_declaration_specifiers // - case 296: { action. consumeEnumerator(true); break; + case 261: { action. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 298: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } + // Rule 263: declaration_specifiers_opt ::= $Empty // - case 298: { action. consumeNamespaceDefinition(true); break; + case 263: { action. consumeEmpty(); break; } // - // Rule 299: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } + // Rule 267: no_type_declaration_specifier ::= friend // - case 299: { action. consumeNamespaceDefinition(false); break; + case 267: { action. consumeToken(); break; } // - // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 268: no_type_declaration_specifier ::= typedef // - case 301: { action. consumeNamespaceAliasDefinition(); break; + case 268: { action. consumeToken(); break; } // - // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 288: storage_class_specifier ::= auto // - case 302: { action. consumeUsingDeclaration(); break; + case 288: { action. consumeToken(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 289: storage_class_specifier ::= register // - case 303: { action. consumePlaceHolder(); break; + case 289: { action. consumeToken(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 290: storage_class_specifier ::= static // - case 304: { action. consumeEmpty(); break; + case 290: { action. consumeToken(); break; } // - // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 291: storage_class_specifier ::= extern // - case 305: { action. consumeUsingDirective(); break; + case 291: { action. consumeToken(); break; } // - // Rule 306: asm_definition ::= asm ( stringlit ) ; + // Rule 292: storage_class_specifier ::= mutable // - case 306: { action. consumeDeclarationASM(); break; + case 292: { action. consumeToken(); break; } // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 293: function_specifier ::= inline // - case 307: { action. consumeLinkageSpecification(); break; + case 293: { action. consumeToken(); break; } // - // Rule 308: linkage_specification ::= extern stringlit declaration + // Rule 294: function_specifier ::= virtual // - case 308: { action. consumeLinkageSpecification(); break; + case 294: { action. consumeToken(); break; } // - // Rule 313: init_declarator_complete ::= init_declarator + // Rule 295: function_specifier ::= explicit // - case 313: { action. consumeInitDeclaratorComplete(); break; + case 295: { action. consumeToken(); break; } // - // Rule 315: init_declarator ::= complete_declarator initializer + // Rule 296: simple_type_specifier ::= simple_type_specifier_token // - case 315: { action. consumeDeclaratorWithInitializer(true); break; + case 296: { action. consumeToken(); break; } // - // Rule 318: declarator ::= ptr_operator_seq direct_declarator + // Rule 310: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 318: { action. consumeDeclaratorWithPointer(true); break; + case 310: { action. consumeQualifiedId(false); break; } // - // Rule 320: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 311: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 320: { action. consumeDeclaratorWithPointer(true); break; + case 311: { action. consumeQualifiedId(false); break; } // - // Rule 324: basic_direct_declarator ::= declarator_id_name + // Rule 312: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 324: { action. consumeDirectDeclaratorIdentifier(); break; + case 312: { action. consumeQualifiedId(false); break; } // - // Rule 325: basic_direct_declarator ::= ( declarator ) + // Rule 313: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 325: { action. consumeDirectDeclaratorBracketed(); break; + case 313: { action. consumeQualifiedId(true); break; } // - // Rule 326: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 315: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 326: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 315: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 327: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 316: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 327: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 316: { action. consumeTypeSpecifierElaborated(true); break; } // - // Rule 328: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 317: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 328: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 317: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 329: array_modifier ::= [ constant_expression ] + // Rule 321: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 329: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 321: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 330: array_modifier ::= [ ] + // Rule 322: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 330: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 322: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 331: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 328: enumerator_definition ::= identifier_token // - case 331: { action. consumePointer(); break; + case 328: { action. consumeEnumerator(false); break; } // - // Rule 332: ptr_operator ::= pointer_hook & pointer_hook + // Rule 329: enumerator_definition ::= identifier_token = constant_expression // - case 332: { action. consumeReferenceOperator(); break; + case 329: { action. consumeEnumerator(true); break; } // - // Rule 333: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 331: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } // - case 333: { action. consumePointerToMember(); break; + case 331: { action. consumeNamespaceDefinition(true); break; } // - // Rule 340: cv_qualifier ::= const + // Rule 332: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } // - case 340: { action. consumeToken(); break; + case 332: { action. consumeNamespaceDefinition(false); break; } // - // Rule 341: cv_qualifier ::= volatile + // Rule 334: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 341: { action. consumeToken(); break; + case 334: { action. consumeNamespaceAliasDefinition(); break; } // - // Rule 343: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 335: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 343: { action. consumeQualifiedId(false); break; + case 335: { action. consumeUsingDeclaration(); break; } // - // Rule 344: type_id ::= type_specifier_seq + // Rule 336: typename_opt ::= typename // - case 344: { action. consumeTypeId(false); break; + case 336: { action. consumePlaceHolder(); break; } // - // Rule 345: type_id ::= type_specifier_seq abstract_declarator + // Rule 337: typename_opt ::= $Empty // - case 345: { action. consumeTypeId(true); break; + case 337: { action. consumeEmpty(); break; } // - // Rule 348: abstract_declarator ::= ptr_operator_seq + // Rule 338: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 348: { action. consumeDeclaratorWithPointer(false); break; + case 338: { action. consumeUsingDirective(); break; } // - // Rule 349: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 339: asm_definition ::= asm ( stringlit ) ; // - case 349: { action. consumeDeclaratorWithPointer(true); break; + case 339: { action. consumeDeclarationASM(); break; } // - // Rule 353: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 340: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 353: { action. consumeDirectDeclaratorBracketed(); break; + case 340: { action. consumeLinkageSpecification(); break; } // - // Rule 354: basic_direct_abstract_declarator ::= ( ) + // Rule 341: linkage_specification ::= extern stringlit declaration // - case 354: { action. consumeAbstractDeclaratorEmpty(); break; + case 341: { action. consumeLinkageSpecification(); break; } // - // Rule 355: array_direct_abstract_declarator ::= array_modifier + // Rule 346: init_declarator_complete ::= init_declarator // - case 355: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 346: { action. consumeInitDeclaratorComplete(); break; } // - // Rule 356: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 348: init_declarator ::= complete_declarator initializer // - case 356: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 348: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 357: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 351: declarator ::= ptr_operator_seq direct_declarator // - case 357: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 351: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 358: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 353: function_declarator ::= ptr_operator_seq direct_declarator // - case 358: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 353: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 359: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 357: basic_direct_declarator ::= declarator_id_name // - case 359: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; + case 357: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 358: basic_direct_declarator ::= ( declarator ) // - case 360: { action. consumePlaceHolder(); break; + case 358: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 359: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 361: { action. consumeEmpty(); break; + case 359: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 362: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 360: array_direct_declarator ::= array_direct_declarator array_modifier // - case 362: { action. consumePlaceHolder(); break; + case 360: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 368: abstract_declarator_opt ::= $Empty + // Rule 361: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 368: { action. consumeEmpty(); break; + case 361: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 369: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 362: array_modifier ::= [ constant_expression ] // - case 369: { action. consumeParameterDeclaration(); break; + case 362: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 370: parameter_declaration ::= declaration_specifiers + // Rule 363: array_modifier ::= [ ] // - case 370: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 363: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 372: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 364: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 372: { action. consumeDeclaratorWithInitializer(true); break; + case 364: { action. consumePointer(); break; } // - // Rule 374: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 365: ptr_operator ::= pointer_hook & pointer_hook // - case 374: { action. consumeDeclaratorWithInitializer(true); break; + case 365: { action. consumeReferenceOperator(); break; } // - // Rule 375: parameter_init_declarator ::= = parameter_initializer + // Rule 366: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 375: { action. consumeDeclaratorWithInitializer(false); break; + case 366: { action. consumePointerToMember(); break; } // - // Rule 376: parameter_initializer ::= assignment_expression + // Rule 373: cv_qualifier ::= const // - case 376: { action. consumeInitializer(); break; + case 373: { action. consumeToken(); break; } // - // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 374: cv_qualifier ::= volatile // - case 377: { action. consumeFunctionDefinition(false); break; + case 374: { action. consumeToken(); break; } // - // Rule 378: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 376: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 378: { action. consumeFunctionDefinition(true); break; + case 376: { action. consumeQualifiedId(false); break; } // - // Rule 381: initializer ::= ( expression_list ) + // Rule 377: type_id ::= type_specifier_seq // - case 381: { action. consumeInitializerConstructor(); break; + case 377: { action. consumeTypeId(false); break; } // - // Rule 382: initializer_clause ::= assignment_expression + // Rule 378: type_id ::= type_specifier_seq abstract_declarator // - case 382: { action. consumeInitializer(); break; + case 378: { action. consumeTypeId(true); break; } // - // Rule 383: initializer_clause ::= initializer_list + // Rule 381: abstract_declarator ::= ptr_operator_seq // - case 383: { action. consumeInitializer(); break; + case 381: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 384: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // Rule 382: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 384: { action. consumeInitializerList(); break; + case 382: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 385: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // Rule 386: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 385: { action. consumeInitializerList(); break; + case 386: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 386: initializer_list ::= { } + // Rule 387: basic_direct_abstract_declarator ::= ( ) // - case 386: { action. consumeInitializerList(); break; + case 387: { action. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 387: start_initializer_list ::= $Empty + // Rule 388: array_direct_abstract_declarator ::= array_modifier // - case 387: { action. initializerListStart(); break; + case 388: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 388: end_initializer_list ::= $Empty + // Rule 389: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 388: { action. initializerListEnd(); break; + case 389: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 393: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 390: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 393: { action. consumeClassSpecifier(); break; + case 390: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 394: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // Rule 391: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 394: { action. consumeClassHead(false); break; + case 391: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 395: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // Rule 392: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 395: { action. consumeClassHead(false); break; + case 392: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 396: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // Rule 393: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 396: { action. consumeClassHead(true); break; + case 393: { action. consumePlaceHolder(); break; } // - // Rule 397: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // Rule 394: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 397: { action. consumeClassHead(true); break; + case 394: { action. consumeEmpty(); break; } // - // Rule 401: identifier_name_opt ::= $Empty + // Rule 395: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 395: { action. consumePlaceHolder(); break; + } + + // + // Rule 401: abstract_declarator_opt ::= $Empty // case 401: { action. consumeEmpty(); break; + } + + // + // Rule 402: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 402: { action. consumeParameterDeclaration(); break; + } + + // + // Rule 403: parameter_declaration ::= declaration_specifiers + // + case 403: { action. consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // Rule 405: parameter_init_declarator ::= declarator = parameter_initializer + // + case 405: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 407: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 407: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 408: parameter_init_declarator ::= = parameter_initializer + // + case 408: { action. consumeDeclaratorWithInitializer(false); break; + } + + // + // Rule 409: parameter_initializer ::= assignment_expression + // + case 409: { action. consumeInitializer(); break; + } + + // + // Rule 410: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // + case 410: { action. consumeFunctionDefinition(false); break; + } + + // + // Rule 411: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // + case 411: { action. consumeFunctionDefinition(true); break; + } + + // + // Rule 414: initializer ::= ( expression_list ) + // + case 414: { action. consumeInitializerConstructor(); break; + } + + // + // Rule 415: initializer_clause ::= assignment_expression + // + case 415: { action. consumeInitializer(); break; + } + + // + // Rule 416: initializer_clause ::= initializer_list + // + case 416: { action. consumeInitializer(); break; + } + + // + // Rule 417: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // + case 417: { action. consumeInitializerList(); break; + } + + // + // Rule 418: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // + case 418: { action. consumeInitializerList(); break; + } + + // + // Rule 419: initializer_list ::= { } + // + case 419: { action. consumeInitializerList(); break; + } + + // + // Rule 420: start_initializer_list ::= $Empty + // + case 420: { action. initializerListStart(); break; + } + + // + // Rule 421: end_initializer_list ::= $Empty + // + case 421: { action. initializerListEnd(); break; + } + + // + // Rule 426: class_specifier ::= class_head { member_declaration_list_opt } + // + case 426: { action. consumeClassSpecifier(); break; + } + + // + // Rule 427: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // + case 427: { action. consumeClassHead(false); break; + } + + // + // Rule 428: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // + case 428: { action. consumeClassHead(false); break; + } + + // + // Rule 429: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // + case 429: { action. consumeClassHead(true); break; + } + + // + // Rule 430: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // + case 430: { action. consumeClassHead(true); break; + } + + // + // Rule 434: identifier_name_opt ::= $Empty + // + case 434: { action. consumeEmpty(); break; } // - // Rule 405: visibility_label ::= access_specifier_keyword : + // Rule 438: visibility_label ::= access_specifier_keyword : // - case 405: { action. consumeVisibilityLabel(); break; + case 438: { action. consumeVisibilityLabel(); break; } // - // Rule 406: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 439: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 406: { action. consumeDeclarationSimple(true); break; + case 439: { action. consumeDeclarationSimple(true); break; } // - // Rule 407: member_declaration ::= declaration_specifiers_opt ; + // Rule 440: member_declaration ::= declaration_specifiers_opt ; // - case 407: { action. consumeDeclarationSimple(false); break; + case 440: { action. consumeDeclarationSimple(false); break; } // - // Rule 410: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 443: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 410: { action. consumeMemberDeclarationQualifiedId(); break; + case 443: { action. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 416: member_declaration ::= ERROR_TOKEN + // Rule 449: member_declaration ::= ERROR_TOKEN // - case 416: { action. consumeDeclarationProblem(); break; + case 449: { action. consumeDeclarationProblem(); break; } // - // Rule 425: member_declarator ::= declarator constant_initializer + // Rule 458: member_declarator ::= declarator constant_initializer // - case 425: { action. consumeMemberDeclaratorWithInitializer(); break; + case 458: { action. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 426: member_declarator ::= bit_field_declarator : constant_expression + // Rule 459: member_declarator ::= bit_field_declarator : constant_expression // - case 426: { action. consumeBitField(true); break; + case 459: { action. consumeBitField(true); break; } // - // Rule 427: member_declarator ::= : constant_expression + // Rule 460: member_declarator ::= : constant_expression // - case 427: { action. consumeBitField(false); break; + case 460: { action. consumeBitField(false); break; } // - // Rule 428: bit_field_declarator ::= identifier_name + // Rule 461: bit_field_declarator ::= identifier_name // - case 428: { action. consumeDirectDeclaratorIdentifier(); break; + case 461: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 429: constant_initializer ::= = constant_expression + // Rule 462: constant_initializer ::= = constant_expression // - case 429: { action. consumeInitializer(); break; + case 462: { action. consumeInitializer(); break; } // - // Rule 435: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 468: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 435: { action. consumeBaseSpecifier(false, false); break; + case 468: { action. consumeBaseSpecifier(false, false); break; } // - // Rule 436: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 469: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 436: { action. consumeBaseSpecifier(true, true); break; + case 469: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 437: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 470: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 437: { action. consumeBaseSpecifier(true, true); break; + case 470: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 438: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 471: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 438: { action. consumeBaseSpecifier(true, false); break; + case 471: { action. consumeBaseSpecifier(true, false); break; } // - // Rule 439: access_specifier_keyword ::= private + // Rule 472: access_specifier_keyword ::= private // - case 439: { action. consumeToken(); break; + case 472: { action. consumeToken(); break; } // - // Rule 440: access_specifier_keyword ::= protected + // Rule 473: access_specifier_keyword ::= protected // - case 440: { action. consumeToken(); break; + case 473: { action. consumeToken(); break; } // - // Rule 441: access_specifier_keyword ::= public + // Rule 474: access_specifier_keyword ::= public // - case 441: { action. consumeToken(); break; + case 474: { action. consumeToken(); break; } // - // Rule 443: access_specifier_keyword_opt ::= $Empty + // Rule 476: access_specifier_keyword_opt ::= $Empty // - case 443: { action. consumeEmpty(); break; + case 476: { action. consumeEmpty(); break; } // - // Rule 445: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 478: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 445: { action. consumeTemplateId(); break; + case 478: { action. consumeTemplateId(); break; } // - // Rule 446: conversion_function_id ::= operator conversion_type_id + // Rule 479: conversion_function_id ::= operator conversion_type_id // - case 446: { action. consumeConversionName(); break; + case 479: { action. consumeConversionName(); break; } // - // Rule 447: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 480: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 447: { action. consumeTypeId(true); break; + case 480: { action. consumeTypeId(true); break; } // - // Rule 448: conversion_type_id ::= type_specifier_seq + // Rule 481: conversion_type_id ::= type_specifier_seq // - case 448: { action. consumeTypeId(false); break; + case 481: { action. consumeTypeId(false); break; } // - // Rule 449: conversion_declarator ::= ptr_operator_seq + // Rule 482: conversion_declarator ::= ptr_operator_seq // - case 449: { action. consumeDeclaratorWithPointer(false); break; + case 482: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 455: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 488: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 455: { action. consumeConstructorChainInitializer(); break; + case 488: { action. consumeConstructorChainInitializer(); break; } // - // Rule 456: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 489: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 456: { action. consumeQualifiedId(false); break; + case 489: { action. consumeQualifiedId(false); break; } // - // Rule 459: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 492: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 459: { action. consumeTemplateId(); break; + case 492: { action. consumeTemplateId(); break; } // - // Rule 460: operator_id_name ::= operator overloadable_operator + // Rule 493: operator_id_name ::= operator overloadable_operator // - case 460: { action. consumeOperatorName(); break; + case 493: { action. consumeOperatorName(); break; } // - // Rule 503: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 536: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 503: { action. consumeTemplateDeclaration(); break; + case 536: { action. consumeTemplateDeclaration(); break; } // - // Rule 504: export_opt ::= export + // Rule 537: export_opt ::= export // - case 504: { action. consumePlaceHolder(); break; + case 537: { action. consumePlaceHolder(); break; } // - // Rule 505: export_opt ::= $Empty + // Rule 538: export_opt ::= $Empty // - case 505: { action. consumeEmpty(); break; + case 538: { action. consumeEmpty(); break; } // - // Rule 509: template_parameter ::= parameter_declaration + // Rule 542: template_parameter ::= parameter_declaration // - case 509: { action. consumeTemplateParamterDeclaration(); break; + case 542: { action. consumeTemplateParamterDeclaration(); break; } // - // Rule 510: type_parameter ::= class identifier_name_opt + // Rule 543: type_parameter ::= class identifier_name_opt // - case 510: { action. consumeSimpleTypeTemplateParameter(false); break; + case 543: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 511: type_parameter ::= class identifier_name_opt = type_id + // Rule 544: type_parameter ::= class identifier_name_opt = type_id // - case 511: { action. consumeSimpleTypeTemplateParameter(true); break; + case 544: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 512: type_parameter ::= typename identifier_name_opt + // Rule 545: type_parameter ::= typename identifier_name_opt // - case 512: { action. consumeSimpleTypeTemplateParameter(false); break; + case 545: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 513: type_parameter ::= typename identifier_name_opt = type_id + // Rule 546: type_parameter ::= typename identifier_name_opt = type_id // - case 513: { action. consumeSimpleTypeTemplateParameter(true); break; + case 546: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 514: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 547: type_parameter ::= template < template_parameter_list > class identifier_name_opt // - case 514: { action. consumeTemplatedTypeTemplateParameter(false); break; + case 547: { action. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 515: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 548: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 515: { action. consumeTemplatedTypeTemplateParameter(true); break; + case 548: { action. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 516: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 549: template_id_name ::= identifier_name < template_argument_list_opt > // - case 516: { action. consumeTemplateId(); break; + case 549: { action. consumeTemplateId(); break; } // - // Rule 521: template_argument ::= assignment_expression + // Rule 556: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 521: { action. consumeTemplateArgumentExpression(); break; + case 556: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 522: template_argument ::= type_id + // Rule 557: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: // - case 522: { action. consumeTemplateArgumentTypeId(); break; + case 557: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 523: explicit_instantiation ::= template declaration + // Rule 558: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 523: { action. consumeTemplateExplicitInstantiation(); break; + case 558: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 524: explicit_specialization ::= template < > declaration + // Rule 559: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: // - case 524: { action. consumeTemplateExplicitSpecialization(); break; + case 559: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 525: try_block ::= try compound_statement handler_seq + // Rule 560: class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate // - case 525: { action. consumeStatementTryBlock(true); break; + case 560: { action. consumeNameWithTemplateKeyword(); break; } // - // Rule 526: try_block ::= try compound_statement + // Rule 562: nested_name_specifier_opt_inTemplate ::= $Empty // - case 526: { action. consumeStatementTryBlock(false); break; + case 562: { action. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 529: handler ::= catch ( exception_declaration ) compound_statement + // Rule 565: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name // - case 529: { action. consumeStatementCatchHandler(false); break; + case 565: { action. consumeQualifiedId(false); break; } // - // Rule 530: handler ::= catch ( ... ) compound_statement + // Rule 566: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 530: { action. consumeStatementCatchHandler(true); break; + case 566: { action. consumeQualifiedId(true); break; } // - // Rule 531: exception_declaration ::= type_specifier_seq declarator + // Rule 571: declaration_specifiers_inTemplate ::= simple_declaration_specifiers // - case 531: { action. consumeDeclarationSimple(true); break; + case 571: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 532: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 572: declaration_specifiers_inTemplate ::= class_declaration_specifiers // - case 532: { action. consumeDeclarationSimple(true); break; + case 572: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 533: exception_declaration ::= type_specifier_seq + // Rule 573: declaration_specifiers_inTemplate ::= elaborated_declaration_specifiers // - case 533: { action. consumeDeclarationSimple(false); break; + case 573: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 535: exception_specification ::= throw ( ) + // Rule 574: declaration_specifiers_inTemplate ::= enum_declaration_specifiers // - case 535: { action. consumePlaceHolder(); break; + case 574: { action. consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 575: declaration_specifiers_inTemplate ::= type_name_declaration_specifiers_inTemplate + // + case 575: { action. consumeDeclarationSpecifiersTypeName(); break; + } + + // + // Rule 577: type_id_inTemplate ::= type_specifier_seq_inTemplate + // + case 577: { action. consumeTypeId(false); break; + } + + // + // Rule 578: type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator + // + case 578: { action. consumeTypeId(true); break; + } + + // + // Rule 579: template_argument ::= assignment_expression_inTemplate + // + case 579: { action. consumeTemplateArgumentExpression(); break; + } + + // + // Rule 580: template_argument ::= type_id_inTemplate + // + case 580: { action. consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 581: explicit_instantiation ::= template declaration + // + case 581: { action. consumeTemplateExplicitInstantiation(); break; + } + + // + // Rule 582: explicit_specialization ::= template < > declaration + // + case 582: { action. consumeTemplateExplicitSpecialization(); break; + } + + // + // Rule 583: try_block ::= try compound_statement handler_seq + // + case 583: { action. consumeStatementTryBlock(true); break; + } + + // + // Rule 584: try_block ::= try compound_statement + // + case 584: { action. consumeStatementTryBlock(false); break; + } + + // + // Rule 587: handler ::= catch ( exception_declaration ) compound_statement + // + case 587: { action. consumeStatementCatchHandler(false); break; + } + + // + // Rule 588: handler ::= catch ( ... ) compound_statement + // + case 588: { action. consumeStatementCatchHandler(true); break; + } + + // + // Rule 589: exception_declaration ::= type_specifier_seq declarator + // + case 589: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 590: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 590: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 591: exception_declaration ::= type_specifier_seq + // + case 591: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 593: exception_specification ::= throw ( ) + // + case 593: { action. consumePlaceHolder(); 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 1f83ddba0e4..7a09731971d 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 @@ -51,486 +51,624 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 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,2,1,3,1, - 0,1,0,1,1,0,1,1,1,1, - 1,1,1,1,1,3,4,3,2,1, - 4,2,1,2,5,7,5,1,4,1, - 0,5,7,2,8,1,1,2,2,3, - 2,3,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2,1, - 0,4,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,3,5,3,3,1,3,3,1,3, + 1,3,1,3,1,3,1,3,1,5, + 1,1,3,3,3,3,3,3,3,3, + 3,3,3,1,2,1,1,3,3,3, + 3,3,3,3,3,3,3,3,1,2, + 1,3,1,0,1,0,1,1,0,1, + 1,1,1,1,1,1,1,1,3,4, + 3,2,1,4,2,1,2,5,7,5, + 1,4,1,0,5,7,2,8,1,1, + 2,2,3,2,3,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, - 2,5,6,5,0,1,0,7,8,0, - 1,3,1,0,1,3,1,7,6,0, - 7,6,1,0,6,5,6,4,1,3, - 1,0,1,1,2,1,1,3,1,3, - 1,1,1,1,3,9,2,2,3,2, - 5,3,7,0,1,2,2,1,0,1, - 1,1,3,1,2,1,1,2,3,1, - 1,1,3,2,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,1,7,6,3,0,0,1,3, - 1,1,5,6,6,7,7,0,0,1, - 0,1,1,1,2,4,2,2,1,5, - 1,1,1,1,1,1,1,2,1,0, - 1,3,1,1,2,3,2,1,2,2, - 1,0,1,3,3,5,5,4,1,1, - 1,1,0,1,5,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,2,1,0,4,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,3, + 4,4,5,2,5,6,5,0,1,0, + 7,8,0,1,3,1,0,1,3,1, + 7,6,0,7,6,1,0,6,5,6, + 4,1,3,1,0,1,1,2,1,1, + 3,1,3,1,1,1,1,3,9,2, + 2,3,2,5,3,7,0,1,2,2, + 1,0,1,1,1,3,1,2,1,1, + 2,3,1,1,1,3,2,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,1,7,6,3,0, + 0,1,3,1,1,5,6,6,7,7, + 0,0,1,0,1,1,1,2,4,2, + 2,1,5,1,1,1,1,1,1,1, + 2,1,0,1,3,1,1,2,3,2, + 1,2,2,1,0,1,3,3,5,5, + 4,1,1,1,1,0,1,5,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, - 2,2,7,1,0,1,3,1,1,2, - 4,2,4,7,9,5,1,3,1,0, - 1,1,2,4,4,2,1,2,5,5, - 3,3,1,4,3,1,0,1,3,-237, - 0,0,0,-2,0,0,0,0,0,0, + 1,1,1,2,2,7,1,0,1,3, + 1,1,2,4,2,4,7,9,5,1, + 3,1,0,1,1,3,2,3,2,2, + 1,0,1,1,4,5,2,1,2,2, + 2,2,2,2,2,1,1,2,1,1, + 2,4,4,2,1,2,5,5,3,3, + 1,4,3,1,0,1,3,-271,0,0, + 0,0,-21,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-4,0,0,0,0,0,0,0, - -72,0,-217,0,0,0,0,0,-376,0, - 0,0,-295,0,0,0,0,0,0,0, - 0,0,0,0,0,-146,0,0,-243,0, + 0,0,0,0,-72,-63,0,-2,0,0, + 0,0,0,0,-119,0,-4,0,0,-514, + -25,0,0,0,0,-519,0,0,0,-418, + 0,-6,0,0,0,0,0,0,0,0, + 0,0,0,0,-40,-7,0,0,0,0, + -145,0,-53,0,0,0,-100,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-340,0,0,0,0,0,0,0,0, - 0,0,0,0,-42,0,0,0,-10,0, - 0,-30,0,0,0,-17,0,0,0,0, - 0,0,0,0,0,-60,0,0,-12,-106, 0,0,0,0,0,0,0,0,0,0, - -103,0,-7,0,-9,-71,-455,0,0,0, - 0,-101,0,0,0,0,0,0,0,-134, - 0,0,0,0,0,0,-93,0,0,0, - 0,0,0,-100,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-217,0,0,0,0,-71,0,-231, + 0,0,0,0,0,0,0,-9,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-19,0, - 0,0,0,0,0,0,-459,0,0,0, - -13,0,-25,0,0,0,0,0,-475,0, - 0,-116,0,0,0,0,0,0,0,0, + 0,0,-227,-450,0,0,0,0,0,0, + 0,0,0,0,0,0,-88,0,0,-515, + 0,-3,0,0,-48,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,-297,0,0,0,0,0,0,0, - -27,0,0,0,0,0,0,0,0,0, - -185,0,-3,0,0,0,0,0,-244,0, - 0,0,-63,0,0,0,0,0,0,0, - 0,0,0,0,-473,0,-50,0,0,-117, 0,0,0,0,0,0,0,0,0,0, + 0,-406,0,0,0,0,0,0,0,0, + -34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-19,0,0,0,0,0, + 0,0,0,0,0,0,0,-42,0,0, + -117,0,0,0,0,0,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,0,0,0,0, - 0,0,0,-24,0,0,-334,0,0,0, - -31,0,0,0,0,0,0,-279,0,0, + -257,0,0,0,0,0,0,0,0,0, + 0,0,0,-251,-14,0,0,0,0,-110, + 0,-12,-24,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-30,0,0,0, + -16,0,0,0,0,0,0,0,0,0, + -27,0,0,0,0,0,-106,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, + -31,0,0,-92,0,0,0,0,0,0, + 0,-58,-302,0,0,0,0,0,0,0, + 0,0,-32,0,-50,0,0,-13,0,0, + 0,0,0,0,0,0,0,0,0,-438, 0,0,0,0,0,0,0,0,0,0, - -41,0,-49,0,0,0,-364,0,0,0, - -143,0,0,0,-284,0,0,0,-34,0, - 0,0,0,0,-543,0,0,0,0,0, - 0,0,0,0,0,0,0,-32,-47,0, - 0,0,0,0,0,-384,0,0,0,0, 0,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,-210,0, + 0,0,0,-35,-79,0,-258,0,0,0, + 0,-228,0,0,0,0,0,0,0,0, + 0,0,0,0,-146,0,0,-532,0,0, + 0,0,-37,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-35,-239,0,0,0,-474, - 0,0,0,-37,0,0,0,0,0,0, + 0,0,0,0,-47,-38,0,0,0,0, + 0,0,0,0,-59,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,-38,0,0,0,0,0,0,0, - 0,0,-86,0,-40,0,0,0,0,-39, - 0,0,0,-51,-107,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-18,-39,0,0,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,-87,-307,0,0, + 0,0,0,0,0,0,0,0,0,-17, + 0,-470,0,0,0,0,0,0,-60,0, + 0,0,0,-533,-253,0,-358,0,-89,0, + 0,0,0,0,0,0,0,0,0,-43, + 0,0,0,0,0,0,-202,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,0,0,0,-52,0, - -94,0,0,0,0,0,0,0,0,0, - -92,0,0,0,-43,0,-411,0,0,-111, + 0,0,0,-55,-49,0,-56,0,0,0, + 0,0,0,-93,0,-64,0,0,-503,0, + 0,0,0,-304,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-55,0,0,0,0,0,0,0, - -57,0,0,0,0,0,0,0,0,-56, - 0,0,0,-193,0,0,0,-61,0,0, + 0,-466,0,0,0,0,0,0,-333,0, + 0,0,0,-41,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-130,0,0,0, - 0,0,0,0,-226,0,-97,0,-110,0, - 0,0,0,-221,0,0,-316,0,0,0, + 0,0,0,0,0,-576,-51,0,-67,0, 0,0,0,0,0,0,0,0,0,0, + -102,0,0,0,0,0,0,-442,0,0, + 0,0,-130,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, - 0,-69,0,0,0,0,0,0,0,0, - -292,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-103,0,0,0,0,0, + 0,0,0,0,-74,0,0,0,0,-535, + 0,0,0,0,-443,0,0,0,0,-223, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-114,0,0,0,-493,0,0,0,-59, - 0,0,0,-89,0,0,0,0,-64,0, - 0,0,0,0,-534,-388,0,0,0,0, + 0,0,-114,0,-75,0,-52,0,0,0, + 0,0,0,0,0,0,-182,0,0,0, + 0,-46,-298,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,0,0,0,0,-290,0, - 0,0,0,0,0,-67,0,0,0,0, - -183,0,0,0,-389,0,0,0,0,0, + 0,0,-62,-531,0,0,0,0,0,0, + 0,0,0,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, - 0,0,0,0,0,0,0,-74,0,-70, - 0,0,0,0,0,0,0,-178,0,0, + 0,0,0,0,-186,-352,0,0,0,0, + 0,0,0,0,-76,0,-77,0,0,0, + 0,0,-530,0,-95,-218,0,0,0,0, + 0,-230,0,-284,0,0,0,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, + 0,-479,0,-112,0,0,0,0,0,0, + 0,0,0,0,0,0,-15,-33,0,-10, + 0,0,0,0,-105,0,0,0,0,0, + 0,-353,-133,0,0,0,0,0,0,-285, 0,0,0,0,0,0,0,0,0,0, - 0,-266,0,0,0,-195,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-75,0,0,0,0,0, - 0,0,-76,0,-105,0,-338,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,-101,0,0,0,0,0,-57,0, + 0,0,-20,0,0,0,0,0,0,0, + 0,-87,0,0,-185,0,0,-135,-94,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,0,-80,0,0,0,0, - 0,0,0,-317,0,0,0,-268,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-147,0,0,0,0, + 0,-569,0,0,0,0,0,0,-234,-69, 0,0,0,0,0,0,0,0,0,0, - -139,0,0,0,0,0,0,0,-81,0, - -184,0,0,0,0,0,-380,0,0,0, - -269,0,0,0,0,0,0,0,0,0, + 0,0,0,-551,-115,0,0,0,0,0, + 0,-287,0,0,0,0,-580,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-77,0,0,0,0,0,0, - 0,-95,0,0,0,0,0,0,0,-133, - -135,0,0,-270,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,0,0,-22,-246,0,0,0,0, + 0,0,0,0,0,-240,0,0,0,0, + 0,0,0,0,0,0,0,-288,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-381,0,-84,0, - 0,0,0,-314,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,-147, - 0,0,0,0,0,0,0,-85,0,0, - 0,0,0,0,0,-90,-149,0,0,-272, + 0,0,0,0,0,0,0,0,0,-229, + 0,0,0,0,0,0,-70,-61,0,0, + -235,0,0,0,0,0,-150,0,-423,-155, + 0,0,-151,0,0,0,-200,0,0,0, + 0,0,0,-289,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-524,0,0,0,0,0,0, + 0,0,0,0,0,0,-236,-247,0,0, + 0,0,0,0,0,0,0,0,-136,-152, + -222,0,0,0,0,0,0,0,0,-290, 0,0,0,0,0,0,0,0,0,0, - -508,0,-524,0,0,0,0,0,-150,-151, - 0,0,-273,0,0,0,-227,0,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,-98,0,0,0,0,0,0, - 0,-119,-152,0,0,-274,0,0,0,0, + 0,0,0,0,0,0,-547,0,0,0, + -390,0,0,-592,0,0,0,0,-422,0, + 0,0,-113,-248,0,0,0,0,0,0, + -582,-139,0,0,-454,-153,0,-154,0,0, + 0,0,0,0,0,-291,0,0,0,0, 0,0,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,-525,0, - 0,0,0,0,-120,0,0,0,-275,0, - 0,0,-155,0,0,0,0,0,0,0, + 0,0,0,-68,0,0,-601,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-140,0,0,0,0,0,0,0,-167, - 0,0,0,0,0,0,0,-168,-169,0, - 0,-276,0,0,0,0,0,0,0,0, + 0,0,-143,0,0,0,0,0,0,0, + -301,0,0,0,0,0,0,0,0,0, + 0,-292,0,0,0,0,-73,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-201, + 0,-376,0,0,0,0,0,0,0,0, + 0,0,0,0,-237,0,0,0,-134,0, + 0,0,-583,-104,0,0,0,0,0,0, + -86,0,0,0,0,0,0,-293,0,0, + 0,0,-156,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-170,0,-46,0,0,0,0,0, - -171,-172,0,0,-383,0,0,0,-136,0, + 0,0,0,0,0,0,0,-378,0,0, 0,0,0,0,0,0,0,0,0,0, + -238,-80,0,0,0,0,0,0,0,-167, + 0,-465,0,0,0,-330,-97,0,0,0, + 0,0,0,-294,0,0,0,0,-168,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-126,0,-68,0,0, - 0,0,0,-173,-58,0,0,-422,0,0, 0,0,0,0,0,0,0,0,0,0, + -350,0,0,-121,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-373,0,0, + 0,0,0,0,0,-169,0,-170,0,-504, + 0,0,0,0,0,0,0,0,0,-319, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-174,0, - -73,0,-104,0,0,0,-128,-175,0,0, - -527,0,0,0,-176,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-120,0,0, + 0,-172,0,0,0,0,0,0,-190,0, + 0,-570,0,0,0,0,-320,0,0,0, + 0,-173,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-177,0,-179,0,0,0,0,0,-79, - -180,0,0,-367,0,0,0,-129,0,0, + 0,0,0,0,-174,0,-175,0,-81,0, + 0,0,0,0,0,-176,0,0,-571,0, + 0,0,0,-321,0,0,0,0,-219,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-544,0,0,0, - 0,0,0,0,-132,0,0,0,-304,0, - 0,0,-397,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-372,0,-84,0,0,0,0, + 0,0,0,0,0,-517,0,0,0,0, + -322,0,0,0,0,-220,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-602,0,0, + 0,0,-85,0,0,0,0,0,0,0, + 0,0,-518,0,0,0,0,-323,0,0, + 0,0,-317,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-102,0,0,0,0,-446,0,0,0, - -398,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-98,-380,0,0,0,0, + 0,0,0,0,-177,0,0,0,0,-520, + 0,0,0,0,-324,0,0,0,0,-565, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-472,0,0,0,-521, + 0,-126,-579,0,-596,0,0,0,0,0, + 0,-178,0,0,0,0,-554,0,0,0, + 0,-325,0,0,0,0,-90,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-141,0, + 0,0,0,0,0,0,0,0,-142,0, + 0,0,0,0,-344,0,-128,0,-326,0, + 0,0,0,-129,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-144,0,0,0,0, + 0,0,0,0,0,0,0,-180,0,0, + 0,-356,0,-132,0,-327,0,0,0,0, + -181,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -141,0,0,0,0,0,0,0,-142,-88, - 0,0,0,-477,0,0,0,-278,0,0, + 0,0,-203,-183,0,0,0,0,0,0, + 0,0,0,0,-207,0,0,-204,-187,0, + -140,0,-328,0,0,0,0,-457,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-225, + -594,0,0,0,0,0,0,0,0,0, + 0,-226,0,0,-189,-192,0,-193,0,-329, + 0,0,0,0,-495,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -189,0,0,0,0,0,0,0,0,0, - -144,0,-182,0,0,-186,-265,0,0,0, + 0,0,0,0,0,0,-455,-331,0,-355, + 0,-299,0,0,0,0,0,0,0,0, + 0,-54,0,0,0,0,-437,0,0,0, + 0,-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,-254,0,0,0, + 0,0,0,-318,0,0,0,0,0,-458, + 0,0,0,-478,0,0,0,0,-211,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-188,0,-190, - 0,-263,0,0,0,-196,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -268,-243,0,-346,0,0,0,-370,0,0, + 0,0,0,0,0,0,-474,-195,0,0, + -332,0,0,0,-341,0,0,0,-345,0, + 0,0,-347,0,0,0,0,0,0,-494, 0,0,0,0,0,0,0,0,0,0, - 0,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,-401,0,0, - 0,0,0,0,0,-260,0,0,0,-198, + 0,0,0,0,0,0,-196,0,0,-197, + 0,0,0,0,0,0,0,0,-198,0, + 0,0,0,-244,-269,0,-585,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-494,0, - 0,0,0,0,0,-28,0,0,0,0, - 0,0,0,0,0,0,0,0,-261,0, - 0,0,-306,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-336,0,0,0,0,0,-342,0,0, - 0,-199,0,0,0,0,0,0,0,0, - 0,0,-202,-204,0,0,0,0,0,0, - 0,-121,0,0,0,-205,-311,0,0,0, - 0,0,-154,-283,0,0,0,0,0,-344, - -262,0,0,0,0,0,0,0,0,0, + 0,0,0,-363,0,0,0,0,0,0, + 0,0,0,-411,0,-501,0,0,-476,0, + -361,-420,0,-348,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,-181, - 0,0,0,0,-53,0,0,0,0,0, - 0,-203,0,0,0,0,0,0,0,0, - 0,0,0,0,-207,0,0,-305,0,0, - 0,-369,0,0,0,0,0,0,-206,0, - -222,-194,0,-431,0,0,-8,0,0,0, - 0,0,-191,-214,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-219,0,0, - 0,-223,0,0,-512,0,0,0,-242,-490, - 0,-286,0,0,0,0,0,0,0,0, - 0,-293,-209,0,0,0,0,0,0,-294, - 0,0,0,0,0,0,-197,0,0,0, - 0,-417,0,0,0,0,0,-312,-192,0, - 0,0,-301,0,0,0,0,0,-254,0, + 0,0,0,0,0,-421,0,0,0,0, + 0,0,-364,0,0,-357,0,0,0,0, + -449,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-205,0,-439,0,0, + 0,0,0,0,-502,0,0,-469,0,0, + -490,-149,0,-491,-206,-208,0,-209,-184,0, + 0,0,-409,0,0,0,0,0,0,0, 0,0,0,0,0,0,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,-302, - 0,0,0,0,-249,0,0,0,0,0, + 0,-212,0,0,-493,0,0,0,0,0, + 0,0,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,-308,0,0, - 0,0,0,-210,-148,-313,0,0,0,-215, - 0,0,-246,0,0,-523,0,-310,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,0,0,0,0,-257,0, + 0,0,-118,-566,-214,0,0,0,0,0, + 0,-497,0,-505,0,0,0,-440,0,-527, + 0,0,0,0,0,-215,-78,0,0,0, + 0,-452,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-216, + -232,0,0,-561,0,0,0,0,0,0, + 0,0,0,-578,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-5,0,0,0, - 0,0,-324,0,-216,-212,0,0,0,0, - 0,-208,0,0,-325,-326,0,0,0,0, - -410,0,0,0,0,-328,0,-258,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-365,0,-371,0,-539,0,0,0,0, + 0,0,-241,0,0,-546,0,-557,-233,-256, + 0,-572,0,-441,0,0,0,-272,-588,-593, + -599,0,0,0,0,0,-171,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-201,-259,0,0,0,0, 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,-225,-282,0,-15,0, - 0,0,-281,0,-327,0,0,-48,0,0, - 0,0,0,-456,0,0,0,-331,-332,0, + 0,0,0,0,0,-316,-550,0,-334,0, + 0,0,-335,0,0,-342,-343,0,-349,0, + 0,0,-351,-296,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-461,0,0,0,0,0,0,-16,0, - -333,-522,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -365,0,-345,0,0,0,0,0,0,0, - 0,0,0,-337,0,-468,-288,0,-291,0, - 0,-346,0,0,0,0,0,0,0,0, - 0,0,-347,-300,-348,0,0,0,0,0, - 0,0,-349,0,-145,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-321,0, - -236,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-526,0,0,0, - 0,0,0,0,0,0,0,0,0,-250, + 0,-338,0,-259,-366,-337,0,-367,0,0, + -368,-369,-381,-382,-123,0,-383,-384,0,0, + 0,0,-270,0,0,-385,0,0,0,-387, + -388,0,-389,0,0,0,-315,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-377,0,0,-378,0,0,0,-6, + 0,0,0,-393,0,-394,-395,0,-396,0, + 0,0,0,0,0,-283,0,0,0,0, + -397,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-213,-240,-350,-374,0,0,0,0, - 0,0,-458,0,-33,-385,-416,-351,0,0, - 0,0,0,-423,0,0,-379,0,0,-513, - 0,0,0,-352,-395,0,0,0,0,0, - 0,0,-400,-289,0,0,0,0,0,0, + 0,0,0,0,0,-398,-446,-399,0,-400, + -499,0,-375,-401,0,-496,0,0,-402,-403, + 0,0,0,0,0,0,-404,-405,0,-408, + -410,0,-412,0,-413,0,0,-312,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-353,0,0,-536,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-391,0,0,0,-519,0,0,0,0, - 0,0,0,0,-251,0,0,0,0,0, + 0,0,0,0,0,0,0,-414,0,-415, + 0,0,0,0,-281,0,0,0,0,-417, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-354,0,-26, - 0,0,0,-36,0,0,0,-44,0,0, - 0,-420,0,0,0,-437,0,0,-355,0, - 0,0,0,0,-440,0,0,-426,0,0, - -200,0,-356,0,0,0,0,-229,0,-280, - 0,0,0,0,0,-538,0,0,0,-319, - 0,0,0,0,0,0,0,0,0,-18, - 0,0,-220,0,-428,0,0,0,0,-357, - 0,-511,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-113,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-425,-426,-427,-428,-429,-430,-431,0, + -432,-433,-434,-435,-436,-453,-461,-462,-463,0, + -464,-480,0,0,0,0,-481,0,-379,-313, 0,0,0,0,0,0,0,0,0,0, - -507,0,0,0,0,0,0,0,0,-464, - -444,0,0,0,-322,0,0,0,-532,-358, - -323,0,0,0,0,0,0,0,0,0, - -447,0,0,-318,0,0,0,0,0,-329, - 0,0,0,-20,-359,-360,-500,0,0,0, - 0,0,0,0,-287,-303,0,0,0,0, - 0,0,0,0,0,-434,0,0,0,0, - 0,-234,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-230,0,0, - -413,0,0,0,0,0,0,0,0,0, - 0,-502,0,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,-483, + 0,-488,0,0,0,-282,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,-54,0,0,0,0,-361, - 0,0,-298,0,0,-315,0,0,0,0, - 0,0,0,0,0,0,0,-421,0,-78, - 0,0,0,-362,-363,0,-403,0,0,0, - 0,0,0,0,0,0,0,-504,0,0, + 0,0,0,0,-459,-492,-498,-511,-512,-516, + 0,-528,-534,-548,-552,-553,-559,-567,-568,-581, + 0,-586,-591,0,0,0,-471,-477,0,-310, 0,0,0,0,0,0,0,0,0,0, - -158,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-506,0,-445,-366,0,-368,0,0, - -339,-231,-370,0,-343,0,-462,0,0,0, - -371,0,0,-372,0,0,-469,0,0,0, - 0,0,0,0,0,-45,0,0,0,-435, - -232,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-539,0, - -22,-382,0,0,-449,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-62,-118,-373,-375,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-393, - -438,0,-404,0,0,0,0,0,0,0, - 0,0,0,-545,0,0,-418,0,-488,0, - 0,0,0,0,-448,0,0,0,0,0, - 0,0,0,0,-399,0,0,0,0,-406, - -457,0,0,-465,0,0,0,0,0,0, - -481,-407,0,0,0,0,0,0,-408,-409, - 0,0,0,0,0,0,0,0,0,-424, - 0,0,0,0,-489,-425,0,-499,0,-467, - 0,0,0,0,0,0,0,0,0,-252, - 0,0,0,-427,0,0,0,0,0,0, + 0,0,0,0,-278,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-253,0,0,0,-432,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-436,0,-112, + 0,-28,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-159,0,0,0,-441,0,0,0, + -109,0,0,0,0,-311,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-160,0,0,0,-471, 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,-535,-453,-454,-460,0, - -482,-470,0,-476,-491,-495,-161,0,0,0, + 0,0,0,0,0,0,0,-303,0,0, + 0,0,0,0,0,-506,-513,-523,-525,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-162, + -65,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -279,0,0,0,0,-529,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-163,0,0,0,-496, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-164,0, - 0,0,-501,0,0,0,0,0,0,0, + -540,-541,-339,-542,-543,0,-555,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-165,0,0,0,-509,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-166,0,0,0,-510,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-238,0,0, - 0,-518,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -247,0,0,0,-528,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-248,0,0,0,-533,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-330,0,0,0, - -386,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,0,0,0,0, - 0,0,-414,0,0,0,-503,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-1,0,-483,-245,0, - 0,-484,0,0,-394,-124,-224,-296,0,0, - 0,0,0,-122,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-530,0,-285,0,-485,0,0,0,0, - 0,-497,0,0,0,0,0,0,0,0, - 0,-498,0,0,0,0,0,0,0,0, - 0,0,0,-125,0,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,-516,0,0,0,0,0,0,-541,0, - -387,0,-211,0,-486,0,0,0,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,-463,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-66,0,0, - 0,0,-517,0,-531,0,0,0,-415,0, - -546,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-537, - -540,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-109,0, - 0,0,-542,0,0,0,0,0,0,0, - 0,-405,0,0,0,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,-65,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-108,0,0,0,0,0,0,0,0, - 0,0,0,0,-529,0,0,0,0,0, - 0,0,0,0,0,-466,0,0,0,0, - 0,0,0,0,0,0,0,0,-450,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-11,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-82,0, - 0,0,0,0,0,0,0,-439,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,-83,-487,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,-213,0,0,0,0,0, + 0,0,0,0,0,0,0,-305,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-224, 0,0,0,0,0,0,0,0,0,0, 0,0,-137,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-451,0,0, - 0,0,-299,0,0,0,0,0,0,0, - 0,0,0,-91,0,0,-520,0,0,0, - 0,0,-138,0,0,0,0,0,0,0, - -99,0,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,0,-452,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-556, + -574,0,0,0,0,0,-26,0,0,0, + 0,0,0,0,0,-575,0,0,-589,0, + 0,0,-595,0,0,0,0,-598,0,0, + 0,-122,0,0,-600,-544,0,0,0,-460, 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,-390,0,0,0,0,0,0,-127,0, - 0,0,0,-123,0,0,0,0,0,-187, - 0,0,0,0,0,0,-335,0,0,0, - -131,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,-274,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, - 0,0,-341,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -402,0,0,0,-443,0,0,0,-478,0, - 0,0,-479,0,0,0,0,0,-392,-156, - 0,0,0,0,0,0,0,0,-157,0, + 0,0,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,-228,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,-419,-260,0, + -295,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-233,0,0,0,0,0,0, - 0,0,-429,0,0,0,0,0,-412,0, 0,0,0,0,0,0,0,0,0,0, - 0,-419,0,0,0,0,0,-430,0,0, - 0,0,-433,0,0,0,0,0,0,0, - -505,0,0,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,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,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 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,-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,-336,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-360,0,0,0,0, + 0,0,0,-392,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -5,0,0,0,0,0,-314,-507,0,-538, + -521,0,0,0,0,0,0,0,-508,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-587,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,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,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-108,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-573,0,0,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,-300,0,0,0, + -362,0,0,0,0,0,0,0,0,-242, + 0,0,-509,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-36, + 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,-407,0, + 0,0,0,0,0,0,0,0,0,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,-549, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-584,0,0, + 0,0,0,0,0,0,0,0,0,0, + -263,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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,0,-563,0,0, + 0,0,0,-416,0,0,0,0,0,0, + -485,-44,0,0,0,0,-545,0,-354,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-445,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,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,0,0,0,0,0, + -482,0,0,0,0,0,0,0,-45,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-249,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,-484,0,0,0,0,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,-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,0,-522,0,0,0,0,0, + 0,0,-526,0,0,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,0,0,0, + 0,0,0,0,0,0,-558,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,-127,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-560,0, + 0,0,0,0,0,-577,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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,-188, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-562,0,0, + 0,0,0,0,0,0,0,0,0,0, + -564,0,0,0,0,0,-473,0,0,0, + 0,0,0,0,0,0,0,0,0,-157, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,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,-250, + 0,0,0,0,0,0,0,0,-597,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -603,0,0,0,0,0,0,0,-391,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-359, + 0,0,0,-472,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-266, + 0,0,0,0,0,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,0,0, + 0,0,0,0,0,0,0,-159,0,0, + 0,0,0,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,0,0,0,0,0,0,0,0,0, + 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,-162,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-163, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-164,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,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,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,0,-261,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-262,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,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,0,0,0,-1,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-456,0,0,0,-158,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,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,-447,0,0,0,0,0,0, + 0,0,-448,-468,-125,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-500,0,0,0,0,0, + 0,0,-475,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0, + 0,0,-604,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, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-8,-536,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-537,0,0,0,0,0,0, + 0,0,-191,0,0,0,0,0,0,0, + 0,0,0,0,0,-11,0,0,0,0, + 0,0,0,0,0,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,-245,0,0,0,0,0,0,0,0, + 0,0,0,0,0,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,0,0,0,0,0,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,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-239, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-91,0,0,0,0, + 0,0,0,0,0,-590,0,0,0,0, + 0,-138,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-255,0, + 0,0,0,0,0,0,-486,0,0,0, + 0,0,0,0,0,0,0,0,0,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, @@ -539,7 +677,14 @@ 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,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,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; @@ -549,546 +694,698 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface BaseAction { public final static char baseAction[] = { - 176,4,137,82,82,33,33,68,68,39, - 39,43,43,176,1,1,16,16,16,16, + 191,5,154,94,94,30,30,81,81,39, + 39,42,42,191,1,1,16,16,16,16, 16,16,16,17,17,17,15,11,11,6, - 6,6,6,6,6,2,66,66,5,5, - 12,12,45,45,138,138,139,58,58,44, + 6,6,6,6,6,2,75,75,4,4, + 12,12,44,44,155,155,156,67,67,43, 18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18, - 140,140,140,115,115,19,19,19,19,19, + 157,157,157,132,132,19,19,19,19,19, 19,19,19,19,19,19,19,19,20,20, - 177,177,178,178,179,143,143,144,144,141, - 141,145,142,142,21,21,22,22,24,24, - 24,25,25,25,25,26,26,26,27,27, - 27,28,28,28,28,28,29,29,29,30, - 30,32,32,34,34,36,36,37,37,38, - 38,42,42,41,41,41,41,41,41,41, - 41,41,41,41,41,41,40,31,146,146, - 96,96,180,180,91,202,202,69,69,69, - 69,69,69,69,69,69,70,70,70,67, - 67,57,57,181,181,71,71,71,103,103, - 182,182,72,72,72,72,183,183,73,73, - 73,73,73,74,74,83,83,83,83,83, - 83,83,83,50,50,50,50,50,104,104, - 102,102,51,184,23,23,23,23,23,49, - 49,86,86,86,86,86,153,153,148,148, - 148,148,148,149,149,149,150,150,150,151, - 151,151,152,152,152,87,87,87,87,87, - 88,88,88,13,14,14,14,14,14,14, - 14,14,14,14,14,97,119,119,119,119, - 119,119,117,117,117,154,155,155,118,118, - 185,157,157,156,156,121,121,105,78,78, - 122,53,48,158,158,54,52,85,85,159, - 159,147,147,123,124,124,125,81,81,160, - 160,64,64,64,61,61,60,65,65,79, - 79,59,59,59,55,89,89,99,98,98, - 63,63,62,62,56,56,46,100,100,100, - 92,92,92,93,93,94,94,94,95,95, - 106,106,106,108,108,107,107,203,203,90, - 90,187,187,187,187,187,127,47,47,162, - 186,186,128,128,129,129,129,130,164,188, - 188,35,35,116,131,131,131,131,190,110, - 109,109,120,120,120,165,166,166,166,166, - 166,166,166,166,166,166,166,192,192,189, - 189,191,191,167,168,168,168,168,169,193, - 112,111,111,194,194,170,170,170,170,101, - 101,101,195,195,8,8,9,196,196,197, - 171,161,161,172,172,173,174,174,7,7, - 10,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,76,80,80,175,175,133,133, - 134,134,134,134,134,134,3,135,135,132, - 132,113,113,84,77,75,75,163,163,114, - 114,199,199,199,136,136,126,126,200,200, - 1119,35,2961,2939,1102,4717,27,30,31,958, - 881,26,28,2938,263,25,23,50,1890,106, - 76,77,108,242,1898,1933,1899,1942,1941,2019, - 1984,1931,2035,933,2028,275,2062,2064,143,760, - 3406,158,144,1508,35,1005,32,4692,3234,27, - 30,31,958,881,342,28,760,35,284,1716, - 35,1005,32,233,4783,27,30,31,958,881, - 57,28,1244,35,1005,32,354,4912,27,30, - 31,958,881,59,28,42,236,231,232,330, - 1145,297,1445,35,1005,32,1851,276,41,30, - 31,958,881,322,1198,324,1880,317,646,667, - 155,35,457,502,3238,4710,243,246,249,252, - 729,1476,355,1615,1978,1180,1224,2440,35,279, - 3634,636,1388,35,279,347,1777,1225,352,959, - 330,35,297,3280,394,431,2622,386,2919,2959, - 3290,3384,3611,4272,2381,35,1005,32,2827,4829, - 27,30,31,958,881,26,28,1863,263,25, - 23,50,1890,106,76,77,108,346,1898,1933, - 1899,1942,1941,2019,1984,327,2035,1381,2028,1460, - 2062,2064,143,3669,625,521,144,237,2530,61, - 2755,667,4349,155,35,281,3586,1043,2535,1284, - 522,921,2381,35,1005,32,2827,4829,27,30, - 31,958,881,26,28,1863,263,25,23,50, - 1890,106,76,77,108,346,1898,1933,1899,1942, - 1941,2019,1984,2276,2035,625,2028,2827,2062,2064, - 143,1160,1376,521,144,1985,1316,2231,2755,42, - 2283,2199,921,1441,1147,2917,2542,517,522,1837, - 35,1005,32,1847,4783,27,30,31,958,881, - 56,28,450,2286,2318,558,1710,1430,1227,2071, - 2381,35,1005,32,2827,4829,27,30,31,958, - 881,26,28,1863,263,25,23,50,1890,106, - 76,77,108,346,1898,1933,1899,1942,1941,2019, - 1984,1793,2035,447,2028,517,2062,2064,143,182, - 1804,521,144,364,758,326,2755,499,35,281, - 94,1378,4899,923,2390,536,522,2071,2657,35, - 1005,32,2827,4829,27,30,31,958,881,26, - 28,1863,263,25,23,50,1890,106,76,77, - 108,346,1898,1933,1899,1942,1941,2019,1984,2928, - 2035,1851,2028,667,2062,2064,143,1127,4490,521, - 144,1388,35,282,2755,760,35,874,392,760, - 1624,1503,34,517,522,1350,35,1005,32,60, - 4912,27,30,31,958,881,26,28,2303,300, - 515,741,2462,4604,1718,2071,2724,35,1005,32, - 456,4829,27,30,31,958,881,26,28,1863, - 263,25,23,50,1890,106,76,77,108,385, - 1898,1933,1899,1942,1941,2019,1984,2608,2035,315, - 2028,518,2062,2064,143,2310,2136,382,144,2572, - 2450,35,1005,32,1340,4829,27,30,31,958, - 881,26,28,1863,263,25,23,50,1890,106, - 76,77,108,2314,1898,1933,1899,1942,1941,2019, - 1984,527,2035,1851,2028,1938,2062,2064,143,4518, - 1658,382,144,2572,667,2865,35,1005,32,4621, - 4829,27,30,31,958,881,26,28,1863,263, - 25,23,50,1890,106,76,77,108,1761,1898, - 1933,1899,1942,1941,2019,1984,1976,2035,1679,2028, - 3134,2062,2320,164,389,383,1476,667,3172,35, - 1005,32,4699,4829,27,30,31,958,881,26, - 28,1863,263,25,23,50,1890,106,76,77, - 108,2513,1898,1933,1899,1942,1941,2019,1984,300, - 2035,1097,2028,694,2062,2320,164,330,390,383, - 1476,760,35,1882,1581,1495,2271,760,35,3858, - 2522,35,1005,32,3651,4829,27,30,31,958, - 881,26,28,1863,263,25,23,50,1890,106, - 76,77,108,2100,1898,1933,1899,1942,1941,2019, - 1984,300,2035,2994,2028,2023,2062,2064,143,427, - 839,382,144,2572,2923,35,1005,32,1556,4829, - 27,30,31,958,881,26,28,1863,263,25, - 23,50,1890,106,76,77,108,1947,1898,1933, - 1899,1942,1941,2019,1984,2375,2035,1851,2028,300, - 2062,2064,143,1194,2300,158,144,3172,35,1005, - 32,2239,4829,27,30,31,958,881,26,28, - 1863,263,25,23,50,1890,106,76,77,108, - 2659,1898,1933,1899,1942,1941,2019,1984,933,2035, - 2281,2028,300,2062,2320,164,752,328,380,383, - 1476,2923,35,1005,32,393,4829,27,30,31, - 958,881,26,28,1863,263,25,23,50,1890, - 106,76,77,108,356,1898,1933,1899,1942,1941, - 2019,1984,495,2035,425,2028,2011,2062,2064,143, - 1558,4349,376,144,2091,35,1005,32,296,59, - 2078,30,31,958,881,1284,2923,35,1005,32, - 2622,4829,27,30,31,958,881,26,28,1863, - 263,25,23,50,1890,106,76,77,108,222, - 1898,1933,1899,1942,1941,2019,1984,332,2035,2111, - 2028,1376,2062,2064,143,1316,1335,376,144,395, - 431,760,35,874,392,2923,35,1005,32,3486, - 4829,27,30,31,958,881,26,28,1863,263, - 25,23,50,1890,106,76,77,108,375,1898, - 1933,1899,1942,1941,2019,1984,49,2035,1940,2028, - 300,2062,2064,143,830,46,376,144,2590,35, - 1005,32,4081,4829,27,30,31,958,881,26, - 28,1863,263,25,23,50,1890,106,76,77, - 108,69,1898,1933,1899,1942,1941,2019,1984,96, - 2035,359,2028,374,2062,2064,143,331,338,142, - 144,536,2923,35,1005,32,1851,4829,27,30, - 31,958,881,26,28,1863,263,25,23,50, - 1890,106,76,77,108,2054,1898,1933,1899,1942, - 1941,2019,1984,2315,2035,1851,2028,300,2062,2064, - 143,1194,372,155,144,2923,35,1005,32,2997, - 4829,27,30,31,958,881,26,28,1863,263, - 25,23,50,1890,106,76,77,108,3667,1898, - 1933,1899,1942,1941,2019,1984,300,2035,801,2028, - 4154,2062,2064,143,760,2571,154,144,2923,35, - 1005,32,379,4829,27,30,31,958,881,26, - 28,1863,263,25,23,50,1890,106,76,77, - 108,386,1898,1933,1899,1942,1941,2019,1984,300, - 2035,1851,2028,4704,2062,2064,143,760,3788,153, - 144,2923,35,1005,32,1054,4829,27,30,31, - 958,881,26,28,1863,263,25,23,50,1890, - 106,76,77,108,1434,1898,1933,1899,1942,1941, - 2019,1984,414,2035,801,2028,827,2062,2064,143, - 847,2354,152,144,2923,35,1005,32,379,4829, - 27,30,31,958,881,26,28,1863,263,25, - 23,50,1890,106,76,77,108,377,1898,1933, - 1899,1942,1941,2019,1984,292,2035,1851,2028,300, - 2062,2064,143,4146,2300,151,144,2923,35,1005, - 32,2760,4829,27,30,31,958,881,26,28, - 1863,263,25,23,50,1890,106,76,77,108, - 1775,1898,1933,1899,1942,1941,2019,1984,300,2035, - 801,2028,4204,2062,2064,143,1558,1358,150,144, - 2923,35,1005,32,3246,4829,27,30,31,958, - 881,26,28,1863,263,25,23,50,1890,106, - 76,77,108,2923,1898,1933,1899,1942,1941,2019, - 1984,558,2035,1851,2028,306,2062,2064,143,2426, - 2489,149,144,2923,35,1005,32,1567,4829,27, - 30,31,958,881,26,28,1863,263,25,23, - 50,1890,106,76,77,108,495,1898,1933,1899, - 1942,1941,2019,1984,300,2035,801,2028,3025,2062, - 2064,143,1931,2491,148,144,2923,35,1005,32, - 530,4829,27,30,31,958,881,26,28,1863, - 263,25,23,50,1890,106,76,77,108,3507, - 1898,1933,1899,1942,1941,2019,1984,2509,2035,1851, - 2028,2647,2062,2064,143,1931,357,147,144,2923, - 35,1005,32,1614,4829,27,30,31,958,881, - 26,28,1863,263,25,23,50,1890,106,76, - 77,108,2357,1898,1933,1899,1942,1941,2019,1984, - 2516,2035,801,2028,464,2062,2064,143,413,1231, - 146,144,2923,35,1005,32,529,4829,27,30, - 31,958,881,26,28,1863,263,25,23,50, - 1890,106,76,77,108,384,1898,1933,1899,1942, - 1941,2019,1984,323,2035,1264,2028,463,2062,2064, - 143,2036,1449,145,144,2923,35,1005,32,1240, - 4829,27,30,31,958,881,26,28,1863,263, - 25,23,50,1890,106,76,77,108,1726,1898, - 1933,1899,1942,1941,2019,1984,300,2035,1264,2028, - 4243,2062,2064,143,65,675,159,144,2923,35, - 1005,32,2835,4829,27,30,31,958,881,26, - 28,1863,263,25,23,50,1890,106,76,77, - 108,325,1898,1933,1899,1942,1941,2019,1984,231, - 2035,1264,2028,675,2062,2064,143,1558,833,140, - 144,3051,35,1005,32,1748,4829,27,30,31, - 958,881,26,28,1863,263,25,23,50,1890, - 106,76,77,108,501,1898,1933,1899,1942,1941, - 2019,1984,317,2035,1255,2028,305,2062,2064,143, - 1103,145,189,144,3172,35,1005,32,1558,4829, - 27,30,31,958,881,26,28,1863,263,25, - 23,50,1890,106,76,77,108,1284,1898,1933, - 1899,1942,1941,2019,1984,1561,2035,741,2028,1558, - 2062,2320,164,3172,35,1005,32,302,4829,27, - 30,31,958,881,26,28,1863,263,25,23, - 50,1890,106,76,77,108,2482,1898,1933,1899, - 1942,1941,2019,1984,408,2035,1505,2028,301,2062, - 2320,164,760,35,1503,278,451,760,35,874, - 392,3172,35,1005,32,3744,4829,27,30,31, - 958,881,26,28,1863,263,25,23,50,1890, - 106,76,77,108,1591,1898,1933,1899,1942,1941, - 2019,1984,435,2035,451,2028,1127,2062,2320,164, - 3230,35,1005,32,426,4829,27,30,31,958, - 881,26,28,1863,263,25,23,50,1890,106, - 76,77,108,358,1898,1933,1899,1942,1941,2019, - 1984,300,2035,536,2028,573,2062,2320,164,300, - 760,35,297,1268,760,35,874,392,3172,35, - 1005,32,429,4829,27,30,31,958,881,26, - 28,1863,263,25,23,50,1890,106,76,77, - 108,1931,1898,1933,1899,1942,1941,2019,1984,438, - 2035,300,2028,1725,3505,3293,575,3172,35,1005, - 32,3276,4829,27,30,31,958,881,26,28, - 1863,263,25,23,50,1890,106,76,77,108, - 527,1898,1933,1899,1942,1941,2019,1984,1922,2035, - 1926,3480,3172,35,1005,32,403,4829,27,30, - 31,958,881,26,28,1863,263,25,23,50, - 1890,106,76,77,108,2027,1898,1933,1899,1942, - 1941,2019,1984,329,3385,3172,35,1005,32,3341, - 4829,27,30,31,958,881,26,28,1863,263, - 25,23,50,1890,106,76,77,108,1074,1898, - 1933,1899,1942,1941,2019,3386,3172,35,1005,32, - 1852,4829,27,30,31,958,881,26,28,1863, - 263,25,23,50,1890,106,76,77,108,2711, - 1898,1933,1899,1942,1941,3263,1481,35,1005,32, - 3633,4298,27,30,31,958,881,342,28,3172, - 35,1005,32,1722,4829,27,30,31,958,881, - 26,28,1863,263,25,23,50,1890,106,76, - 77,108,1931,1898,1933,1899,1942,3300,1244,35, - 1005,32,2220,4912,27,30,31,958,881,58, - 28,1376,406,1373,2214,335,322,1198,324,442, - 317,646,2091,35,1005,32,1966,933,40,30, - 31,958,881,667,155,35,457,316,4884,4710, - 1931,3172,35,1005,32,4399,4829,27,30,31, - 958,881,26,28,1863,263,25,23,50,1890, - 106,76,77,108,70,1898,1933,1899,1942,3360, - 760,35,1503,280,4113,760,35,874,392,309, - 313,813,1860,35,1005,32,4148,3234,27,30, - 31,958,881,342,28,1237,35,400,2091,35, - 1005,32,1558,1320,3145,30,31,958,881,2514, - 49,2037,300,3555,2274,1329,3395,1795,540,1190, - 672,2827,51,495,1256,35,2768,32,3633,4298, - 27,30,31,958,881,342,28,3577,397,431, - 229,179,322,1198,324,156,317,646,760,35, - 1503,283,2301,180,2562,760,35,874,392,1554, - 2715,355,2305,2640,206,216,3100,205,213,214, - 215,217,2445,1947,347,1777,1225,352,2326,1376, - 2448,196,2632,335,322,1198,324,300,317,646, - 437,1369,1607,207,209,211,737,663,933,1264, - 523,208,210,2474,2663,1121,454,2286,2318,3172, - 35,1005,32,4399,4829,27,30,31,958,881, - 26,28,1863,263,25,23,50,1890,106,76, - 77,108,381,1898,1933,1899,3115,3172,35,1005, - 32,307,4829,27,30,31,958,881,26,28, - 1863,263,25,23,50,1890,106,76,77,108, - 2511,1898,1933,1899,3128,3172,35,1005,32,369, - 4829,27,30,31,958,881,26,28,1863,263, - 25,23,50,1890,106,76,77,108,2031,1898, - 2983,421,423,2748,1947,2121,1727,2996,197,4147, - 300,4801,88,300,2487,102,2711,1194,2137,396, - 431,3172,35,1005,32,2433,4829,27,30,31, - 958,881,26,28,1863,263,25,23,50,1890, - 106,76,77,108,156,1898,1933,1899,3144,3172, - 35,1005,32,2500,4829,27,30,31,958,881, - 26,28,1863,263,25,23,50,1890,106,76, - 77,108,299,1898,1933,1899,3174,3288,35,874, - 392,93,3230,2405,355,300,760,35,297,2658, - 238,263,1237,35,400,2495,2508,347,1777,1225, - 352,760,35,1503,3857,345,2311,3153,3172,35, - 1005,32,275,4829,27,30,31,958,881,26, - 28,1863,263,25,23,50,1890,106,76,77, - 108,71,1898,1933,3228,1264,3172,35,1005,32, - 233,4829,27,30,31,958,881,26,28,1863, - 263,25,23,50,1890,106,76,77,108,1264, - 1898,1933,3249,236,231,232,1491,259,2999,1750, - 4683,540,2851,300,276,2520,433,927,1237,35, - 1632,1131,240,263,2210,35,1503,278,2545,3464, - 229,2109,4077,243,246,249,252,729,156,354, - 3685,2720,760,3866,1503,74,180,2562,636,1247, - 801,3390,1931,49,204,216,3100,203,213,214, - 215,217,1190,1141,169,2919,2959,3290,3384,3611, - 4272,1,233,581,168,540,183,167,170,171, - 172,173,174,1147,2552,355,2277,300,2827,300, - 540,966,753,4241,229,241,231,232,347,1777, - 1225,352,156,1235,300,1493,3280,346,4819,346, - 180,2562,233,1496,801,1709,2571,156,204,216, - 3100,203,213,214,215,217,188,687,169,300, - 2652,1264,4436,4362,97,245,231,232,168,181, - 184,167,170,171,172,173,174,2041,35,1005, - 32,4148,3234,27,30,31,958,881,342,28, - 3172,35,1005,32,24,4829,27,30,31,958, - 881,26,28,1863,263,25,23,50,1890,106, - 76,77,108,2274,1898,3002,1558,1194,2981,190, - 1573,35,1005,32,2416,3234,27,30,31,958, - 881,342,28,2379,2379,1919,345,322,1198,324, - 540,317,646,2585,156,2747,300,300,1937,2827, - 4488,3123,201,3590,1610,199,355,1558,531,229, - 760,35,874,392,1963,1558,291,156,346,347, - 1777,1225,352,1929,495,180,2562,532,4805,801, - 319,1014,324,204,216,3100,203,213,214,215, - 217,666,3127,169,1965,436,198,2715,4117,2558, - 2482,1234,2612,168,410,3769,167,170,171,172, - 173,174,1870,35,1005,32,2585,4298,27,30, - 31,958,881,342,28,3172,35,1005,32,3126, - 4829,27,30,31,958,881,26,28,1863,263, - 25,23,50,1890,106,76,77,108,2192,3013, - 588,35,874,392,588,35,874,392,1015,35, - 874,392,929,35,874,392,1746,1376,528,2273, - 2196,336,322,1198,324,300,318,646,431,749, - 791,1330,540,489,2620,49,4349,3865,300,49, - 2224,355,2827,49,1190,1173,1931,275,1190,2070, - 1264,229,1190,47,349,1777,1225,352,3475,156, - 1353,346,3500,1709,2571,517,2240,180,2562,540, - 2123,801,1237,35,400,204,216,3100,203,213, - 214,215,217,353,2755,169,1376,2266,229,89, - 336,446,102,460,2833,168,156,178,167,170, - 171,172,173,174,180,2562,1381,3177,801,3859, - 3865,2696,204,216,3100,203,213,214,215,217, - 603,667,169,233,540,1264,4809,72,98,2287, - 2128,1264,168,2827,176,167,170,171,172,173, - 174,300,2326,229,1958,4632,248,231,232,4349, - 1264,156,346,2482,1571,1928,151,689,69,180, - 2562,540,535,801,68,1947,1947,204,216,3100, - 203,213,214,215,217,2755,1558,169,44,2283, - 229,4058,2114,53,291,538,1194,168,156,177, - 167,170,171,172,173,174,180,2562,300,1376, - 801,2363,2827,336,204,216,3100,203,213,214, - 215,217,775,160,169,202,540,233,300,1684, - 2612,346,1194,355,168,528,187,167,170,171, - 172,173,174,386,298,229,349,1777,1225,352, - 251,231,232,156,2755,760,35,874,392,156, - 1736,180,2562,1479,2845,801,1947,2827,3504,204, - 216,3100,203,213,214,215,217,2482,2178,169, - 760,35,874,392,2281,1519,2542,1947,3380,168, - 275,4035,167,170,171,172,173,174,2475,35, - 1005,32,3633,3234,27,30,31,958,881,342, - 28,3114,35,1005,32,275,4829,27,30,31, - 958,881,26,28,1863,263,25,23,50,1890, - 86,76,77,861,288,667,2510,540,2546,4353, - 4813,1264,300,87,2482,1264,2827,2210,35,1503, - 3920,2612,277,509,2613,289,229,300,322,1198, - 324,3518,317,646,156,346,1018,35,874,392, - 1558,300,180,2562,87,2827,801,343,52,316, - 204,216,3100,203,213,214,215,217,2755,947, - 169,1606,1264,540,346,300,507,508,2846,1194, - 168,49,192,167,170,171,172,173,174,200, - 1190,47,229,237,237,2614,2620,2755,4349,4349, - 156,309,313,813,1324,455,156,2925,180,2562, - 300,1588,801,1264,2827,3861,204,216,3100,203, - 213,214,215,217,1033,4172,169,1264,540,760, - 35,1503,4012,346,233,1264,168,1329,186,167, - 170,171,172,173,174,2435,3371,229,1376,1376, - 2621,1264,335,335,1264,156,2755,254,231,232, - 90,300,2648,180,2562,4763,513,801,3701,2650, - 2679,204,216,3100,203,213,214,215,217,825, - 2680,169,4412,3261,3725,300,173,3387,2205,3196, - 1264,168,3057,195,167,170,171,172,173,174, - 3172,35,1005,32,2619,4829,27,30,31,958, - 881,26,28,1863,263,25,23,50,1890,106, - 76,77,108,3442,3015,3172,35,1005,32,2556, - 4829,27,30,31,958,881,26,28,1863,263, - 25,23,50,1890,106,76,77,108,2681,3023, - 1738,35,1005,32,3633,3234,27,30,31,958, - 881,342,28,3172,35,1005,32,2132,4829,27, - 30,31,958,881,26,28,1863,263,25,23, - 50,1890,106,76,77,85,3172,1624,1005,2619, - 1264,4829,27,30,31,958,881,26,28,1863, - 263,25,23,50,1890,106,76,77,84,300, - 322,1198,324,1335,317,646,300,2684,2685,2640, - 2097,1264,2686,3553,2707,2690,2720,3172,35,1005, - 32,316,4829,27,30,31,958,881,26,28, - 1863,263,25,23,50,1890,106,76,77,83, - 3172,35,1005,32,67,4829,27,30,31,958, - 881,26,28,1863,263,25,23,50,1890,106, - 76,77,82,310,313,813,3172,35,1005,32, - 2698,4829,27,30,31,958,881,26,28,1863, - 263,25,23,50,1890,106,76,77,81,3172, - 35,1005,32,2717,4829,27,30,31,958,881, - 26,28,1863,263,25,23,50,1890,106,76, - 77,80,3172,35,1005,32,2208,4829,27,30, - 31,958,881,26,28,1863,263,25,23,50, - 1890,106,76,77,79,3172,35,1005,32,2790, - 4829,27,30,31,958,881,26,28,1863,263, - 25,23,50,1890,106,76,77,78,2986,35, - 1005,32,2792,4829,27,30,31,958,881,26, - 28,1863,263,25,23,50,1890,106,76,77, - 104,3172,35,1005,32,2769,4829,27,30,31, - 958,881,26,28,1863,263,25,23,50,1890, - 106,76,77,110,3172,35,1005,32,2748,4829, - 27,30,31,958,881,26,28,1863,263,25, - 23,50,1890,106,76,77,109,3172,35,1005, - 32,2111,4829,27,30,31,958,881,26,28, - 1863,263,25,23,50,1890,106,76,77,107, - 1785,35,2768,32,3633,3234,27,30,31,958, - 881,342,28,3172,35,1005,32,1558,4829,27, - 30,31,958,881,26,28,1863,263,25,23, - 50,1890,106,76,77,105,1674,5396,1264,2114, - 2827,5396,1264,1194,4081,300,1882,237,237,2827, - 2827,5396,4349,4349,2125,5396,4425,5396,2827,229, - 322,1198,324,5396,317,646,5396,5396,346,229, - 160,66,1558,5396,2114,65,1264,2542,1194,337, - 338,1121,1264,206,216,3100,205,213,214,215, - 217,2755,1264,206,216,3100,205,213,214,215, - 217,511,1376,1376,1969,160,335,335,2827,64, - 5396,223,207,209,211,1763,663,5396,5396,218, - 208,210,207,209,211,1849,663,229,1727,218, - 208,210,1264,4801,5396,3565,3374,3192,13,1558, - 4462,2111,5396,2056,363,2114,5396,2827,2633,1194, - 4462,206,216,3100,205,213,214,215,217,5396, - 2885,2473,2474,5396,5396,55,229,422,423,2748, - 3612,5396,3335,35,874,392,160,3230,193,2665, - 207,209,211,2827,663,239,263,218,208,210, - 206,216,3100,205,213,214,215,217,588,35, - 874,392,346,1264,4081,1264,2754,275,4462,300, - 5396,300,544,2827,5396,2827,5396,5396,5396,207, - 209,211,5396,663,5396,3728,218,208,210,3153, - 1264,1264,346,49,346,233,54,5396,4239,3255, - 338,4232,1190,3317,5396,3396,5396,4462,5396,760, - 35,874,392,2039,5396,2755,3500,2755,237,231, - 232,5396,2125,101,3664,3691,2827,539,5396,276, - 1738,35,1005,32,3633,3234,27,30,31,958, - 881,342,28,5396,49,2542,534,5396,244,247, - 250,253,729,1190,2583,5396,5396,5396,434,1751, - 35,1005,32,636,4298,27,30,31,958,881, - 342,28,1751,35,1005,32,5396,4298,27,30, - 31,958,881,342,28,2286,5396,5396,5396,1194, - 322,1198,324,5396,317,646,1738,35,1005,32, - 3633,3234,27,30,31,958,881,342,28,300, - 5396,1978,363,1194,1376,5396,156,5396,336,322, - 1198,324,1394,320,646,162,2827,1376,3675,2473, - 2474,336,322,1198,324,5396,318,646,4192,2143, - 156,5396,5396,2827,5396,229,5396,5396,2111,4138, - 1018,35,874,392,5396,5396,322,1198,324,5396, - 317,646,229,5396,5396,5396,5396,5396,5396,206, - 216,3100,205,213,214,215,217,3943,2230,2114, - 5396,5396,2827,1194,5396,49,206,216,3100,205, - 213,214,215,217,1190,47,5396,5396,207,209, - 211,229,663,5396,5396,219,208,210,931,5396, - 160,4081,5396,5396,5396,207,209,211,5396,663, - 5396,5396,524,208,210,206,216,3100,205,213, - 214,215,217,2406,35,1005,32,2584,3234,27, - 30,31,958,881,342,28,333,338,300,5396, - 5396,5396,1194,2317,207,209,211,2827,663,5396, - 5396,308,208,210,1182,4331,5396,2114,2827,4721, - 5396,1194,407,1288,5396,4303,229,2827,4721,156, - 5396,588,35,874,392,5396,5396,229,4142,5396, - 5396,5396,2111,319,1014,324,229,5396,160,5396, - 206,216,3100,205,213,214,215,217,5396,5396, - 5396,2105,411,4573,300,5396,49,5396,1194,5396, - 2105,411,4573,5396,5396,1190,47,5396,5396,207, - 209,211,5396,663,5396,5396,503,208,210,596, - 412,413,414,1948,663,156,5396,2827,4349,412, - 413,414,1948,663,4176,4081,2827,4349,5396,1466, - 35,874,392,4330,1479,1640,2542,5396,2827,5396, - 588,35,874,392,1640,2542,5396,1473,35,874, - 392,760,35,874,392,5396,5396,2542,5396,5396, - 3849,338,5396,791,49,5396,300,5396,1376,5396, - 1194,5396,335,1190,47,49,5396,1376,5396,5396, - 5396,335,49,5396,1190,47,49,2836,5396,5396, - 5396,1190,3431,2111,5396,1190,3113,156,935,415, - 417,5396,3374,363,5396,3475,2962,5396,415,418, - 5396,3192,363,1018,35,874,392,5396,5396,3653, - 2473,2474,5396,1217,509,5396,4613,5396,3653,2473, - 2474,588,35,874,392,588,35,874,392,588, - 35,874,392,588,35,874,392,5396,49,2099, - 300,5396,5396,2827,540,5396,4081,1190,3498,1217, - 35,874,392,5396,5396,5396,49,506,508,5396, - 49,3242,2542,346,49,1190,47,5396,49,1190, - 47,156,300,1190,47,5396,540,1190,47,2157, - 3041,3856,338,2244,49,300,2755,2615,5396,540, - 5396,3140,5396,1190,3114,346,2909,5396,5396,2486, - 5396,5396,5396,156,760,35,874,392,346,5396, - 5396,5396,3361,300,5396,5396,156,540,2755,760, - 35,874,392,5396,5396,3041,5396,5396,3355,509, - 5396,2755,760,35,874,392,346,5396,300,49, - 5396,3561,540,300,156,5396,5396,540,1190,2856, - 5396,300,5396,188,49,1194,5396,5396,5396,4436, - 5396,346,5396,1190,667,5396,346,49,5396,156, - 5396,5396,506,508,156,5396,1190,3114,188,5396, - 5396,5396,156,188,4436,5396,5396,5396,5396,4436, - 5396,4305,5396,5396,5396,5396,5396,5396,5396,5396, - 5396,5396,5396,5396,5396,5396,5396,5396,5396,5396, - 5396,5396,5396,5396,3807,5396,3694,5396,5396,5396, - 5396,5396,5396,5396,5396,5396,5396,5396,5396,5396, - 5396,5396,5396,5396,5396,5396,5396,5396,5396,5396, - 5396,3730,5396,5396,5396,5396,3830,5396,0,505, - 2577,0,1,230,0,39,5411,0,39,5410, - 0,1,4370,0,632,1,0,39,1,5411, - 0,39,1,5410,0,1,3125,0,1,939, - 0,230,220,0,285,398,0,285,290,0, - 5631,242,0,5630,242,0,5737,242,0,5736, - 242,0,5658,242,0,5657,242,0,5656,242, - 0,5655,242,0,5654,242,0,5653,242,0, - 5652,242,0,5651,242,0,5670,242,0,5669, - 242,0,5668,242,0,5667,242,0,5666,242, - 0,5665,242,0,5664,242,0,5663,242,0, - 5662,242,0,5661,242,0,5660,242,0,39, - 242,5411,0,39,242,5410,0,5434,242,0, - 1129,391,0,5411,48,0,5410,48,0,1, - 334,0,38,939,0,38,5411,0,38,5410, - 0,458,1272,0,444,1420,0,1129,29,0, - 5408,1,0,1546,321,0,1,448,0,462, - 1812,0,461,1855,0,35,33,0,47,37, - 0,505,1641,0,5434,1,230,0,39,1, - 230,0,230,420,0,1,2493,0,1,5670, - 0,1,5669,0,1,5668,0,1,5667,0, - 1,5666,0,1,5665,0,1,5664,0,1, - 5663,0,1,5662,0,1,5661,0,1,5660, - 0,5411,37,0,5410,37,0,43,5432,0, - 43,37,0,5408,387,0,5407,387,0,1, - 2555,0,1,2842,0,230,221,0,5406,409, - 0,5405,409,0,230,419,0,2771,126,0, - 5404,1,0,334,449,0,5402,1,0,5401, - 1,0,1507,91,0,32,34,0,39,939, - 0,5432,45,0,37,45,0,1,230,3558, - 0,5405,230,0,3563,230,0,5434,1,0, - 39,1,0,238,3412,0,392,32,0,391, - 29,0,2771,128,0,2771,127,0,3726,230, - 0,10,12,0,1,92,0,8,10,12, - 0,3862,194,0,5411,2,37,0,5410,2, - 37,0,5411,36,0,5410,36,0,3966,387, - 0,334,95,0,35,73,0,8,12,0, - 280,4245,0,185,3609,0 + 192,192,193,193,194,160,160,161,161,158, + 158,162,159,159,21,21,22,22,23,23, + 23,24,24,24,24,25,25,25,26,26, + 26,31,31,31,31,31,33,33,33,34, + 34,35,35,36,36,38,38,40,40,41, + 41,45,45,45,45,45,50,50,50,53, + 53,60,60,61,61,62,62,63,63,64, + 64,65,65,65,65,65,65,65,65,65, + 65,65,65,65,29,29,46,46,46,46, + 46,46,46,46,46,46,46,46,46,37, + 28,163,163,105,105,195,195,104,218,218, + 82,82,82,82,82,82,82,82,82,83, + 83,83,79,79,66,66,196,196,84,84, + 84,117,117,197,197,85,85,85,85,198, + 198,86,86,86,86,86,87,87,95,95, + 95,95,95,95,95,95,54,54,54,54, + 54,118,118,116,116,55,199,27,27,27, + 27,27,49,49,69,69,69,69,69,137, + 137,133,133,133,133,133,134,134,134,135, + 135,135,136,136,136,165,165,165,70,70, + 70,70,70,71,71,71,13,14,14,14, + 14,14,14,14,14,14,14,14,106,138, + 138,138,138,138,138,111,111,111,166,167, + 167,112,112,200,169,169,168,168,139,139, + 119,91,91,140,57,48,170,170,58,56, + 97,97,171,171,164,164,141,142,142,143, + 93,93,172,172,77,77,77,73,73,72, + 78,78,80,80,68,68,68,59,98,98, + 108,107,107,51,51,74,74,76,76,52, + 109,109,109,99,99,99,100,100,101,101, + 101,102,102,120,120,120,122,122,121,121, + 219,219,103,103,202,202,202,202,202,145, + 47,47,174,201,201,146,146,147,147,147, + 148,176,203,203,32,32,110,114,114,114, + 114,205,124,123,123,113,113,113,177,178, + 178,178,178,178,178,178,178,178,178,178, + 207,207,204,204,206,206,179,180,180,180, + 180,181,208,126,125,125,209,209,182,182, + 182,182,115,115,115,210,210,8,8,9, + 211,211,212,183,173,173,184,184,185,186, + 186,7,7,10,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,89,92,92,187, + 187,150,150,151,151,151,151,151,151,3, + 152,152,149,149,188,220,221,221,222,222, + 223,224,224,189,190,190,190,190,214,214, + 214,128,128,128,128,128,129,130,130,127, + 127,96,90,88,88,175,175,131,131,215, + 215,215,153,153,144,144,216,216,1119,35, + 3403,3401,5379,1214,27,30,31,983,961,26, + 28,3400,296,25,23,50,2190,106,76,77, + 108,2209,2258,2256,2736,1231,587,177,1008,2792, + 308,2738,2927,2878,2939,1231,2930,55,3066,176, + 3135,1331,35,314,191,673,3230,35,312,266, + 243,3081,1244,35,1044,32,4550,3752,27,30, + 31,983,961,375,28,2396,1513,269,264,265, + 6168,845,3221,243,35,893,425,2409,35,1044, + 32,5230,5171,27,30,31,983,961,26,28, + 2143,296,25,23,50,2190,106,76,77,108, + 2209,2258,2256,2322,309,49,162,2396,276,279, + 282,825,1180,501,35,433,1247,1643,1372,535, + 2544,2547,2302,3163,352,1073,357,2347,1564,497, + 2345,1587,911,1142,1653,5992,285,2495,2356,2542, + 2638,161,579,2149,2244,35,3343,32,4550,1473, + 27,30,31,983,961,375,28,243,35,330, + 1475,3326,2243,1785,3771,501,35,1535,1669,1327, + 2409,35,1044,32,5230,5171,27,30,31,983, + 961,26,28,2143,296,25,23,50,2190,106, + 76,77,108,2209,2258,2256,2322,49,1967,162, + 1292,3674,2608,985,550,576,3082,580,1247,964, + 324,243,1527,1525,34,2302,355,1848,357,1329, + 2347,350,1189,2345,921,2144,1706,348,3327,2651, + 2495,2356,2542,2638,161,579,3336,2231,69,720, + 3279,2409,35,1044,32,5230,5171,27,30,31, + 983,961,26,28,2143,296,25,23,50,2190, + 106,76,77,108,2209,2258,2256,2322,427,464, + 162,1579,35,1044,32,5286,2597,27,30,31, + 983,961,57,28,2433,1588,2302,2642,1254,1217, + 155,2347,62,1178,2345,1217,4752,550,576,3082, + 580,2495,2356,2542,2638,161,579,2120,35,1044, + 32,1467,193,41,30,31,983,961,2100,3086, + 94,332,2651,455,456,3339,972,1331,35,490, + 480,5180,988,585,2689,35,1044,32,5230,5171, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,108,2209,2258,2256, + 2322,1685,266,162,243,35,2691,1992,550,576, + 3082,580,1582,243,35,893,425,1572,2131,2302, + 278,264,265,1793,2347,2379,2197,2345,62,3264, + 3088,1245,4869,2651,2495,2356,2542,2638,161,579, + 2757,35,1044,32,5230,489,27,30,31,983, + 961,26,28,2143,296,25,23,50,2190,106, + 76,77,108,2209,2258,2256,2736,2485,61,177, + 765,2792,155,2738,2927,2878,2939,1217,2930,1733, + 3066,176,2673,3771,2660,2573,415,1627,35,1044, + 32,5286,2149,27,30,31,983,961,56,28, + 3687,551,576,3082,580,243,35,317,2477,35, + 1044,32,5230,141,27,30,31,983,961,26, + 28,2143,296,25,23,50,2190,106,76,77, + 108,2209,2258,2256,2736,155,2789,177,1329,2792, + 6246,2738,2927,2878,2939,1371,2930,369,3066,176, + 2673,483,2689,2735,415,3325,35,1044,32,5230, + 2234,27,30,31,983,961,26,28,2143,296, + 25,23,50,2190,106,76,77,108,2209,2258, + 2256,3434,1951,1344,255,1595,422,416,2688,3164, + 2551,35,1044,32,5230,484,27,30,31,983, + 961,26,28,2143,296,25,23,50,2190,106, + 76,77,108,2209,2258,2256,2736,428,464,177, + 1515,2792,1941,2738,2927,2878,2939,760,2930,1563, + 3066,176,2673,266,3138,743,415,243,3221,2202, + 35,1044,32,2745,60,2604,30,31,983,961, + 418,281,264,265,423,416,2688,3019,35,1044, + 32,5230,1095,27,30,31,983,961,26,28, + 2143,296,25,23,50,2190,106,76,77,108, + 2209,2258,2256,2736,1516,62,177,148,2792,4956, + 2738,2927,2878,2939,413,2930,1985,3066,176,243, + 35,893,425,191,3325,35,1044,32,5230,360, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,108,2209,2258,2256, + 2736,468,243,35,3669,3573,413,416,2688,3019, + 35,1044,32,5230,1515,27,30,31,983,961, + 26,28,2143,296,25,23,50,2190,106,76, + 77,108,2209,2258,2256,2736,3135,62,177,668, + 2792,5014,2738,2927,2878,2939,325,2930,359,3066, + 176,243,35,1525,311,409,2443,594,3019,35, + 1044,32,5230,2218,27,30,31,983,961,26, + 28,2143,296,25,23,50,2190,106,76,77, + 108,2209,2258,2256,2736,2836,93,177,2579,2792, + 3326,2738,2927,2878,2939,1577,2930,2248,3066,176, + 243,35,893,425,409,3019,35,1044,32,5230, + 2074,27,30,31,983,961,26,28,2143,296, + 25,23,50,2190,106,76,77,108,2209,2258, + 2256,2736,471,499,177,1964,2792,155,2738,2927, + 2878,2939,677,2930,426,3066,176,243,35,1525, + 313,409,1862,2920,408,2897,35,1044,32,5230, + 3089,27,30,31,983,961,26,28,2143,296, + 25,23,50,2190,106,76,77,108,2209,2258, + 2256,2736,2557,1475,571,2864,2792,3771,2738,2927, + 2878,2939,365,2930,2721,2999,197,3674,2621,35, + 1044,32,5230,407,27,30,31,983,961,26, + 28,2143,296,25,23,50,2190,106,76,77, + 108,2209,2258,2256,2736,2536,2149,177,3089,2792, + 4517,2738,2927,2878,2939,2841,2930,1449,3066,176, + 42,2674,1329,2608,175,1571,501,35,433,363, + 405,368,845,3221,3142,35,1044,32,5230,2309, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,108,2209,2258,2256, + 2322,4469,2719,162,1361,35,1044,32,4550,1473, + 27,30,31,983,961,375,28,1258,2779,2302, + 71,1210,330,4351,2347,1515,215,2345,44,2674, + 273,296,2149,2142,2495,2356,2542,2638,161,173, + 3142,35,1044,32,5230,379,27,30,31,983, + 961,26,28,2143,296,25,23,50,2190,106, + 76,77,108,2209,2258,2256,2322,1515,266,162, + 718,430,464,2605,35,312,355,1848,357,155, + 418,350,1189,2040,2124,2302,274,264,265,3337, + 2347,412,62,2345,585,1515,5076,349,2936,230, + 2495,2356,2542,2638,161,172,3142,35,1044,32, + 5230,324,27,30,31,983,961,26,28,2143, + 296,25,23,50,2190,106,76,77,108,2209, + 2258,2256,2322,586,266,162,2049,1515,2510,838, + 2770,3279,501,35,433,343,346,626,1437,1375, + 155,2302,284,264,265,770,2347,429,464,2345, + 1304,412,273,296,2821,499,2495,2356,2542,2638, + 161,171,3142,35,1044,32,5230,2821,27,30, + 31,983,961,26,28,2143,296,25,23,50, + 2190,106,76,77,108,2209,2258,2256,2322,410, + 266,162,1361,35,1044,32,4550,1473,27,30, + 31,983,961,375,28,2129,155,2302,274,264, + 265,4351,2347,2589,2685,2345,1331,35,567,479, + 5400,493,2495,2356,2542,2638,161,170,3142,35, + 1044,32,5230,379,27,30,31,983,961,26, + 28,2143,296,25,23,50,2190,106,76,77, + 108,2209,2258,2256,2322,3683,266,162,3393,2772, + 243,35,1525,316,355,1848,357,155,1173,350, + 1189,2298,841,2302,287,264,265,238,2347,1515, + 62,2345,3375,3049,5300,2034,70,499,2495,2356, + 2542,2638,161,169,3142,35,1044,32,5230,71, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,108,2209,2258,2256, + 2322,1515,266,162,1361,35,1044,32,4550,1473, + 27,30,31,983,961,375,28,2828,155,2302, + 278,264,265,4351,2347,3125,3085,2345,361,664, + 3111,243,35,330,2495,2356,2542,2638,161,168, + 3142,35,1044,32,5230,379,27,30,31,983, + 961,26,28,2143,296,25,23,50,2190,106, + 76,77,108,2209,2258,2256,2322,3136,266,162, + 3393,1597,35,314,3138,5913,355,1848,357,243, + 3666,350,1189,2533,155,2302,281,264,265,4351, + 2347,1515,413,2345,3378,1848,3112,3677,3181,5905, + 2495,2356,2542,2638,161,167,3142,35,1044,32, + 5230,379,27,30,31,983,961,26,28,2143, + 296,25,23,50,2190,106,76,77,108,2209, + 2258,2256,2322,1515,1862,162,3393,2111,35,1044, + 32,5404,3085,27,30,31,983,961,26,28, + 2889,2302,548,2605,35,315,2347,588,2234,2345, + 3381,1331,35,490,358,5180,2495,2356,2542,2638, + 161,166,3142,35,1044,32,5230,1862,27,30, + 31,983,961,26,28,2143,296,25,23,50, + 2190,106,76,77,108,2209,2258,2256,2322,988, + 1862,162,1855,35,1044,32,5404,534,27,30, + 31,983,961,59,28,3748,2720,2302,392,71, + 35,330,2347,1515,1582,2345,88,594,1840,102, + 414,1515,2495,2356,2542,2638,161,165,3142,35, + 1044,32,5230,313,27,30,31,983,961,26, + 28,2143,296,25,23,50,2190,106,76,77, + 108,2209,2258,2256,2322,1515,266,162,1855,35, + 1044,32,5404,2532,27,30,31,983,961,58, + 28,3855,155,2302,284,264,265,4052,2347,587, + 3286,2345,243,35,1525,3668,499,1515,2495,2356, + 2542,2638,161,164,3142,35,1044,32,5230,1158, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,108,2209,2258,2256, + 2322,2648,266,162,2202,35,1044,32,838,2626, + 40,30,31,983,961,487,2689,2735,840,2302, + 570,264,265,4351,2347,3068,1220,2345,1939,1304, + 243,35,1525,566,2495,2356,2542,2638,161,163, + 3019,35,1044,32,5230,379,27,30,31,983, + 961,26,28,2143,296,25,23,50,2190,106, + 76,77,108,2209,2258,2256,2736,1665,1231,177, + 1182,2792,2418,2738,2927,2878,2939,484,2930,1231, + 3066,176,243,35,893,425,188,3019,35,1044, + 32,5230,931,27,30,31,983,961,26,28, + 2143,296,25,23,50,2190,106,76,77,108, + 2209,2258,2256,2736,470,320,177,496,2792,155, + 2738,2927,2878,2939,3385,2930,1512,3066,176,243, + 35,893,425,187,3019,35,1044,32,5230,2218, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,108,2209,2258,2256, + 2736,469,496,177,1231,2792,155,2738,2927,2878, + 2939,5873,2930,362,3066,176,243,3675,1525,74, + 186,3019,35,1044,32,5230,2218,27,30,31, + 983,961,26,28,2143,296,25,23,50,2190, + 106,76,77,108,2209,2258,2256,2736,3138,458, + 177,3078,2792,155,2738,2927,2878,2939,5885,2930, + 340,3066,176,1741,35,1525,3676,185,3019,35, + 1044,32,5230,2218,27,30,31,983,961,26, + 28,2143,296,25,23,50,2190,106,76,77, + 108,2209,2258,2256,2736,155,1231,177,5784,2792, + 671,2738,2927,2878,2939,410,2930,332,3066,176, + 1741,35,1525,311,184,3019,35,1044,32,5230, + 3244,27,30,31,983,961,26,28,2143,296, + 25,23,50,2190,106,76,77,108,2209,2258, + 2256,2736,155,1231,177,1231,2792,5961,2738,2927, + 2878,2939,836,2930,419,3066,176,243,35,1525, + 3680,183,3019,35,1044,32,5230,1371,27,30, + 31,983,961,26,28,2143,296,25,23,50, + 2190,106,76,77,108,2209,2258,2256,2736,155, + 51,177,391,2792,743,2738,2927,2878,2939,155, + 2930,594,3066,176,1052,2218,339,1371,182,3019, + 35,1044,32,5230,1371,27,30,31,983,961, + 26,28,2143,296,25,23,50,2190,106,76, + 77,108,2209,2258,2256,2736,155,97,177,98, + 2792,1542,2738,2927,2878,2939,338,2930,1776,3066, + 176,586,2218,335,2431,181,3019,35,1044,32, + 5230,2075,27,30,31,983,961,26,28,2143, + 296,25,23,50,2190,106,76,77,108,2209, + 2258,2256,2736,155,574,177,331,2792,2463,2738, + 2927,2878,2939,441,2930,155,3066,176,1515,2398, + 2768,2938,180,3019,35,1044,32,5230,2218,27, + 30,31,983,961,26,28,2143,296,25,23, + 50,2190,106,76,77,108,2209,2258,2256,2736, + 155,3136,177,321,2792,1516,2738,2927,2878,2939, + 2824,2930,155,3066,176,399,933,1602,1012,179, + 3019,35,1044,32,5230,1450,27,30,31,983, + 961,26,28,2143,296,25,23,50,2190,106, + 76,77,108,2209,2258,2256,2736,2464,1936,177, + 2544,2792,155,2738,2927,2878,2939,802,2930,322, + 3066,176,243,35,893,425,178,3019,35,1044, + 32,5230,1292,27,30,31,983,961,26,28, + 2143,296,25,23,50,2190,106,76,77,108, + 2209,2258,2256,2736,308,2732,177,2074,2792,3178, + 2738,2927,2878,2939,155,2930,1474,3066,176,1000, + 2926,35,565,192,3203,35,1044,32,5230,1862, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,108,2209,2258,2256, + 2322,1862,2378,162,2202,35,1044,32,2923,2881, + 3041,30,31,983,961,364,371,1965,582,2302, + 89,155,475,102,2347,155,3284,2345,310,1371, + 3477,5761,2234,2509,2495,2356,2542,2638,161,160, + 3019,35,1044,32,5230,2260,27,30,31,983, + 961,26,28,2143,296,25,23,50,2190,106, + 76,77,108,2209,2258,2256,2736,485,334,177, + 1241,2792,439,2738,2927,2878,2939,2698,2930,1933, + 3066,176,389,2192,2614,1862,140,3264,35,1044, + 32,5230,2234,27,30,31,983,961,26,28, + 2143,296,25,23,50,2190,106,76,77,108, + 2209,2258,2256,2736,155,24,177,3075,2792,4060, + 2738,2927,2878,2939,1371,2930,62,3066,176,3172, + 6028,1862,1371,222,3325,35,1044,32,5230,1648, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,108,2209,2258,2256, + 2736,386,1292,212,390,2792,1371,2738,2927,2878, + 2939,232,2930,1862,2999,197,3325,35,1044,32, + 5230,1371,27,30,31,983,961,26,28,2143, + 296,25,23,50,2190,106,76,77,108,2209, + 2258,2256,2736,69,2234,231,2130,2792,155,2738, + 2927,2878,2939,3486,2930,62,2999,197,155,6064, + 443,1371,2438,640,1371,757,2251,3273,2437,243, + 35,893,425,3325,35,1044,32,5230,460,27, + 30,31,983,961,26,28,2143,296,25,23, + 50,2190,106,76,77,108,2209,2258,2256,2736, + 235,49,227,233,2792,2862,2738,2927,2878,2939, + 1533,2930,46,2999,197,3325,35,1044,32,5230, + 329,27,30,31,983,961,26,28,2143,296, + 25,23,50,2190,106,76,77,108,2209,2258, + 2256,2736,388,1475,571,2516,2792,3771,2738,2927, + 2878,2939,155,2930,155,2999,197,1194,1936,4360, + 155,380,2944,2862,385,5198,1383,243,35,893, + 425,578,3325,35,1044,32,5230,3630,27,30, + 31,983,961,26,28,2143,296,25,23,50, + 2190,106,76,77,108,2209,2258,2256,2736,308, + 3234,848,1329,2792,1371,2738,2927,2878,2939,3178, + 2930,368,2999,197,3487,35,1044,32,5230,459, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,108,2209,2258,2256, + 2736,1039,1862,4382,1862,2792,155,2738,2927,2878, + 2939,4483,2930,1475,2999,197,155,3771,2645,2583, + 1569,1326,155,4668,1936,370,371,1974,2919,1371, + 155,1371,68,376,53,2438,462,2951,35,1044, + 32,5230,598,27,30,31,983,961,26,28, + 2143,296,25,23,50,2190,106,76,77,108, + 2209,2258,2256,2322,379,189,2616,2030,256,934, + 226,3771,1329,2576,2945,3178,2610,2615,2535,2219, + 417,368,3288,2676,3433,35,1044,32,5230,3393, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,108,2209,2258,2256, + 2322,4316,829,2861,2433,2647,1475,4351,2650,1217, + 3771,2716,2746,2206,2209,3048,1329,1935,2293,2302, + 4351,3172,371,3041,2347,3327,2299,2345,3273,3945, + 1087,3792,193,3730,2495,2356,3498,3325,35,1044, + 32,5230,3945,27,30,31,983,961,26,28, + 2143,296,25,23,50,2190,106,76,77,108, + 2209,2258,2256,2736,1937,1329,2300,2532,2792,2307, + 2738,2927,2878,2939,368,3585,3379,35,1044,32, + 5230,2547,27,30,31,983,961,26,28,2143, + 296,25,23,50,2190,106,76,77,108,2209, + 2258,2256,2322,388,4805,397,1860,3293,2450,3599, + 2698,1854,4351,1862,660,5825,1936,96,542,915, + 2297,2302,380,2944,2862,385,2347,2751,2649,2345, + 2753,2754,378,87,3945,1098,2495,3490,3325,35, + 1044,32,5230,87,27,30,31,983,961,26, + 28,2143,296,25,23,50,2190,106,76,77, + 108,2209,2258,2256,2736,539,541,3178,1103,2792, + 2292,2738,2927,2878,3582,3379,35,1044,32,5230, + 2468,27,30,31,983,961,26,28,2143,296, + 25,23,50,2190,106,76,77,108,2209,2258, + 2256,2322,3186,3110,3171,2592,2744,2748,2790,1351, + 542,1949,2979,1853,2796,2722,2780,2839,3013,3042, + 2302,3043,3073,366,371,2347,1995,173,2345,1862, + 3325,35,1044,32,5230,3484,27,30,31,983, + 961,26,28,2143,296,25,23,50,2190,106, + 76,77,108,2209,2258,2256,2736,539,541,52, + 2976,2792,3108,2738,2927,3583,3379,35,1044,32, + 5230,1862,27,30,31,983,961,26,28,2143, + 296,25,23,50,2190,106,76,77,108,2209, + 2258,2256,2322,467,3667,1862,2728,2147,3075,3104, + 3007,488,3134,3201,3151,3294,3258,2981,2677,3167, + 3292,2302,2216,2982,6914,6914,2347,1862,2217,3489, + 3325,35,1044,32,5230,3174,27,30,31,983, + 961,26,28,2143,296,25,23,50,2190,106, + 76,77,108,2209,2258,2256,2736,90,143,6914, + 6914,2792,6914,2738,3579,3379,35,1044,32,5230, + 6914,27,30,31,983,961,26,28,2143,296, + 25,23,50,2190,106,76,77,108,2209,2258, + 2256,2322,1259,35,1044,32,4952,1473,27,30, + 31,983,961,375,28,6914,6914,6914,6914,6914, + 2302,243,35,893,425,3476,3325,35,1044,32, + 5230,6914,27,30,31,983,961,26,28,2143, + 296,25,23,50,2190,106,76,77,108,2209, + 2258,2256,2736,49,6914,6914,6914,2792,2433,3581, + 6914,1329,6914,1217,1247,1867,1862,1862,1862,1862, + 368,6914,6914,6914,355,1848,357,6914,6914,350, + 1189,1460,35,1044,32,4952,193,27,30,31, + 983,961,375,28,6914,349,3266,3276,5047,5109, + 3831,3379,35,1044,32,5230,1862,27,30,31, + 983,961,26,28,2143,296,25,23,50,2190, + 106,76,77,108,2209,2258,2256,2322,6914,6914, + 6914,1862,1862,3048,1862,1862,5211,1862,4351,6914, + 1329,6914,6914,342,346,626,3478,6914,6914,369, + 6914,6914,6914,355,1848,357,6914,6914,353,1189, + 3945,67,66,3641,65,64,1105,1991,3379,35, + 1044,32,5230,1256,27,30,31,983,961,26, + 28,2143,296,25,23,50,2190,106,76,77, + 108,2209,2258,2256,2322,1525,35,1044,32,4550, + 3376,27,30,31,983,961,375,28,3325,35, + 1044,32,5230,3480,27,30,31,983,961,26, + 28,2143,296,25,23,50,2190,106,76,77, + 108,2209,2258,2256,2736,6914,542,6914,6914,3574, + 1222,35,3343,32,4952,1473,27,30,31,983, + 961,375,28,1339,35,1044,32,4550,3990,27, + 30,31,983,961,375,28,6914,355,1848,357, + 1862,1862,350,1189,6914,388,6914,157,35,893, + 425,6914,6914,540,541,6914,1862,6914,3333,1862, + 6914,6914,440,1862,380,2944,2862,385,1862,1329, + 2123,55,1465,6914,3329,2395,2433,4351,368,49, + 1465,1217,355,1848,357,4351,54,350,1189,3291, + 1247,1244,6914,101,6914,352,1073,357,5371,3945, + 6914,6914,6914,2231,193,592,6914,3945,3831,3325, + 35,1044,32,5230,2782,27,30,31,983,961, + 26,28,2143,296,25,23,50,2190,106,76, + 77,108,2209,2258,2256,3436,3325,35,1044,32, + 5230,6914,27,30,31,983,961,26,28,2143, + 296,25,23,50,2190,106,76,77,108,2209, + 2258,2256,3437,6914,6914,6914,6914,402,2643,155, + 6914,155,6914,1217,1217,396,1217,6914,6914,6914, + 6914,4021,6914,396,6914,6914,6914,6914,6914,454, + 456,3339,2839,3122,3165,921,189,189,6914,189, + 3816,3122,3165,6914,6914,3084,2486,234,3497,6914, + 6914,3325,35,1044,32,5230,2893,27,30,31, + 983,961,26,28,2143,296,25,23,50,2190, + 106,76,77,108,2209,2258,2256,3575,3325,35, + 1044,32,5230,6914,27,30,31,983,961,26, + 28,2143,296,25,23,50,2190,106,76,77, + 108,2209,2258,2256,3576,3325,35,1044,32,5230, + 6914,27,30,31,983,961,26,28,2143,296, + 25,23,50,2190,106,76,77,108,2209,2258, + 2256,3577,3325,35,1044,32,5230,6914,27,30, + 31,983,961,26,28,2143,296,25,23,50, + 2190,106,76,77,108,2209,2258,2256,3578,1723, + 35,1044,32,4550,5056,27,30,31,983,961, + 375,28,6914,6914,6914,6914,1504,6914,6914,6914, + 3771,6914,6914,6914,3325,35,1044,32,5230,387, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,108,2209,2258,2256, + 3688,3541,35,893,425,4027,6914,155,155,6914, + 1936,832,1217,1217,271,296,4351,6914,6914,155, + 6914,355,1848,357,1217,1329,350,1189,6914,388, + 6914,6914,2711,308,369,189,189,1217,379,6914, + 6914,6914,2034,6914,3584,3881,388,189,380,2944, + 2862,385,266,6914,6914,6914,3882,6914,2991,6914, + 189,3178,6914,3278,6914,382,2944,2862,385,195, + 269,264,265,3325,35,1044,32,5230,6914,27, + 30,31,983,961,26,28,2143,296,25,23, + 50,2190,106,76,77,108,2209,2258,3439,6914, + 6914,6914,6914,6914,6914,6914,6914,309,6914,6914, + 6914,276,279,282,825,1180,6914,3282,371,1460, + 35,1044,32,4952,6914,27,30,31,983,961, + 375,28,6914,1936,1587,911,1142,1653,5992,285, + 3325,35,1044,32,5230,6914,27,30,31,983, + 961,26,28,2143,296,25,23,50,2190,106, + 76,77,108,2209,2258,3451,1785,259,6914,6914, + 6914,1778,598,6914,6914,3771,4351,6914,1329,6914, + 2820,6914,6914,155,3178,4521,6914,369,1217,6914, + 6914,355,1848,357,262,189,351,1189,3945,6914, + 157,35,893,425,2984,6914,213,6914,155,1515, + 387,189,6914,1217,237,249,652,6914,6914,6914, + 3884,236,246,247,248,250,4020,4048,6914,1, + 1329,6914,49,202,598,6914,189,6914,6914,368, + 3290,371,6914,1247,1045,3885,201,6914,6914,216, + 200,203,204,205,206,207,262,189,6914,6914, + 388,6914,243,35,893,425,2984,3187,213,4316, + 155,1515,6914,6914,396,1217,237,249,652,380, + 2944,2862,385,236,246,247,248,250,6914,2991, + 6914,3665,3122,3165,49,202,6914,6914,189,6914, + 6914,6914,6914,6914,6914,1247,1400,2533,201,6914, + 214,217,200,203,204,205,206,207,2332,35, + 1044,32,4550,3376,27,30,31,983,961,375, + 28,3325,35,1044,32,5230,6914,27,30,31, + 983,961,26,28,2143,296,25,23,50,2190, + 106,76,77,108,2209,3383,6914,6914,3325,35, + 1044,32,5230,4579,27,30,31,983,961,26, + 28,2143,296,25,23,50,2190,106,76,77, + 108,2209,3384,6914,6914,6914,6914,6914,155,6914, + 355,1848,357,1217,345,350,1189,6914,388,598, + 6914,155,329,35,893,425,598,2433,6914,1854, + 6914,589,1217,5825,6914,6914,189,380,2944,2862, + 385,262,189,6914,6914,4039,6914,590,379,189, + 6914,2984,6914,213,49,193,1515,6914,221,6914, + 6914,237,249,652,6914,1247,47,6914,236,246, + 247,248,250,1904,6914,1889,35,1044,32,4952, + 202,27,30,31,983,961,375,28,6914,757, + 6914,6914,6914,201,6914,6914,3632,200,203,204, + 205,206,207,3325,35,1044,32,5230,6914,27, + 30,31,983,961,26,28,2143,296,25,23, + 50,2190,106,76,77,108,3387,6914,6914,6914, + 6914,431,4036,6914,1329,6914,598,6914,3818,415, + 35,893,425,369,1995,6914,6914,355,1848,357, + 6914,6914,351,1189,6914,388,6914,155,262,189, + 6914,6914,4351,6914,2643,6914,6914,6914,2984,598, + 213,49,6914,1515,382,2944,2862,385,237,249, + 652,6914,1247,47,379,236,246,247,248,250, + 6914,3180,189,517,6914,6914,6914,202,598,6914, + 6914,2984,6914,213,6914,6914,1199,6914,6914,3393, + 201,466,6914,211,200,203,204,205,206,207, + 262,189,157,35,893,425,415,35,893,425, + 2984,6914,213,3382,6914,1515,6914,6914,3586,6914, + 237,249,652,229,6914,6914,6914,236,246,247, + 248,250,6914,6914,49,603,6914,6914,49,202, + 598,6914,6914,2644,6914,1247,1983,6914,598,1247, + 47,6914,201,6914,6914,209,200,203,204,205, + 206,207,262,189,157,35,893,425,6914,3187, + 379,189,2984,2053,213,6914,6914,1515,6914,6914, + 221,6914,237,249,652,6914,6914,6914,6914,236, + 246,247,248,250,6914,1904,49,689,6914,6914, + 6914,202,598,6914,6914,6914,1778,1247,47,6914, + 3771,4351,6914,6914,201,6914,6914,210,200,203, + 204,205,206,207,262,189,759,35,893,425, + 6914,1065,6914,3945,2984,6914,213,6914,6914,1515, + 6914,6914,4993,230,237,249,652,6914,6914,6914, + 6914,236,246,247,248,250,6914,6914,49,775, + 223,6914,6914,202,598,1329,2433,6914,6914,1247, + 47,1217,6914,6914,368,6914,201,6914,6914,220, + 200,203,204,205,206,207,262,189,6914,6914, + 6914,6914,6914,1931,193,6914,2984,6914,213,6914, + 6914,1515,6914,6914,4805,6914,237,249,652,396, + 6914,6914,6914,236,246,247,248,250,6914,6914, + 6914,3639,35,554,6914,202,3665,3122,3165,6914, + 157,35,893,425,271,296,6914,6914,201,6914, + 3224,3682,200,203,204,205,206,207,1643,35, + 1044,32,4550,1473,27,30,31,983,961,375, + 28,861,49,6914,6914,6914,598,2054,35,893, + 425,4043,266,1247,47,6914,6914,6914,6914,6914, + 2057,35,893,425,6914,6914,6914,6914,262,189, + 269,264,265,6914,6914,6914,6914,973,2984,308, + 213,6914,6914,1515,6914,6914,6914,6914,237,249, + 652,6914,49,6914,6914,236,246,247,248,250, + 355,1848,357,1247,2817,350,1189,202,6914,6914, + 6914,276,279,282,825,1180,415,35,893,425, + 201,349,6914,225,200,203,204,205,206,207, + 243,35,893,425,1719,1851,1917,2115,6230,947, + 6914,6914,6914,6914,598,6914,6914,6914,49,6914, + 6914,6914,6914,3670,6914,6914,6914,6914,6914,1247, + 2877,6914,49,6914,6914,6914,262,189,6914,342, + 346,626,6914,1247,2868,6914,2984,6914,213,72, + 6914,1515,6914,5217,6914,6914,237,249,652,563, + 564,568,3289,236,246,247,248,250,6914,1256, + 6914,1033,6914,6914,6914,202,598,6914,6914,2434, + 35,893,425,6914,6914,2181,6914,6914,201,6914, + 6914,219,200,203,204,205,206,207,262,189, + 243,35,893,425,243,35,893,425,2984,6914, + 213,49,6914,1515,6914,6914,6914,6914,237,249, + 652,6914,1247,2989,6914,236,246,247,248,250, + 6914,6914,49,6914,6914,6914,49,202,6914,6914, + 6914,6914,6914,1247,2830,6914,2782,1247,2817,6914, + 201,6914,6914,228,200,203,204,205,206,207, + 3325,35,1044,32,5230,6914,27,30,31,983, + 961,26,28,2143,296,25,23,50,2190,106, + 76,77,108,3388,3325,35,1044,32,5230,6914, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,108,3396,3325,35, + 1044,32,5230,6914,27,30,31,983,961,26, + 28,2143,296,25,23,50,2190,106,76,77, + 85,3325,1527,1044,3280,5230,6914,27,30,31, + 983,961,26,28,2143,296,25,23,50,2190, + 106,76,77,84,3325,35,1044,32,5230,6914, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,83,3325,35,1044, + 32,5230,6914,27,30,31,983,961,26,28, + 2143,296,25,23,50,2190,106,76,77,82, + 3325,35,1044,32,5230,6914,27,30,31,983, + 961,26,28,2143,296,25,23,50,2190,106, + 76,77,81,3325,35,1044,32,5230,6914,27, + 30,31,983,961,26,28,2143,296,25,23, + 50,2190,106,76,77,80,3325,35,1044,32, + 5230,6914,27,30,31,983,961,26,28,2143, + 296,25,23,50,2190,106,76,77,79,3325, + 35,1044,32,5230,6914,27,30,31,983,961, + 26,28,2143,296,25,23,50,2190,106,76, + 77,78,3080,35,1044,32,5230,6914,27,30, + 31,983,961,26,28,2143,296,25,23,50, + 2190,106,76,77,104,3325,35,1044,32,5230, + 6914,27,30,31,983,961,26,28,2143,296, + 25,23,50,2190,106,76,77,110,3325,35, + 1044,32,5230,6914,27,30,31,983,961,26, + 28,2143,296,25,23,50,2190,106,76,77, + 109,3325,35,1044,32,5230,6914,27,30,31, + 983,961,26,28,2143,296,25,23,50,2190, + 106,76,77,107,3325,35,1044,32,5230,6914, + 27,30,31,983,961,26,28,2143,296,25, + 23,50,2190,106,76,77,105,1689,6914,6914, + 6914,6914,4351,6914,6914,6914,6914,6914,6914,6914, + 6914,6914,6914,6914,6914,157,35,893,425,1754, + 35,1044,32,5230,262,27,30,31,983,961, + 26,28,2143,296,25,23,50,2190,86,76, + 77,6914,6914,6914,239,249,652,49,6914,6914, + 6914,238,246,247,248,250,6914,6914,1247,47, + 6914,6914,6914,1899,155,6914,6914,6914,4351,4351, + 6914,6914,6914,155,155,1988,6914,6914,4351,4351, + 4351,6914,1259,6914,6914,6914,240,242,244,666, + 262,379,251,241,243,157,35,893,425,6914, + 379,379,262,243,35,893,425,6914,6914,6914, + 239,249,652,13,6914,6086,3393,238,246,247, + 248,250,239,249,652,3393,3393,49,6914,238, + 246,247,248,250,6914,49,6914,6914,1247,47, + 546,6914,6914,6914,6914,6914,1247,646,6914,544, + 3817,2077,240,242,244,666,4351,6914,251,241, + 243,6914,1390,155,240,242,244,666,4351,6914, + 251,241,243,6914,6914,6914,6914,6914,262,2369, + 6914,6086,3590,35,893,425,4027,6914,628,6914, + 379,2416,6914,6086,6914,272,296,6914,239,249, + 652,6914,6914,6914,6914,238,246,247,248,250, + 6914,6914,6914,6914,308,3393,6914,1810,157,35, + 893,425,4351,6914,6914,6914,6914,6914,6914,6914, + 6914,6914,6914,266,6914,6914,6914,6914,6914,597, + 240,242,244,666,262,6914,251,241,243,6914, + 49,270,264,265,157,35,893,425,6914,6914, + 6914,1247,47,155,239,249,652,2595,598,6086, + 6914,238,246,247,248,250,1414,6914,6914,6914, + 6914,4351,6914,6914,6914,2312,49,6914,309,6914, + 379,189,277,280,283,825,1180,1247,47,2166, + 2945,6914,6914,262,4351,6914,240,242,244,666, + 6914,6914,581,241,243,3393,6914,6914,6914,6914, + 286,2359,155,239,249,652,262,598,6914,6914, + 238,246,247,248,250,6914,6914,6914,6914,2861, + 6914,6914,6914,6914,6914,6914,239,249,652,379, + 189,6914,6914,238,246,247,248,250,2255,3262, + 6914,6914,6914,4351,6914,240,242,244,666,6914, + 2344,252,241,243,3393,4351,6914,6914,6914,6914, + 6914,6914,6914,6914,6914,262,6914,6914,240,242, + 244,666,6914,6914,582,241,243,262,3033,6914, + 6914,6914,6914,6914,6914,239,249,652,6914,6914, + 6914,6914,238,246,247,248,250,239,249,652, + 3688,35,554,6914,238,246,247,248,250,6914, + 6914,6914,6914,272,296,6914,1180,6914,6914,6914, + 4612,4351,6914,6914,6914,6914,3005,240,242,244, + 666,4351,1297,341,241,243,4612,4351,6914,240, + 242,244,666,262,6914,536,241,243,6914,155, + 6914,266,6914,379,598,6914,593,155,6914,262, + 6914,6914,598,2644,444,4003,6914,6914,6914,270, + 264,265,6914,6914,6914,6914,379,189,3393,2644, + 444,4003,6914,6914,379,189,2945,6914,6914,6914, + 155,6914,6914,6914,221,598,6914,6914,6914,6914, + 6914,3393,596,6914,6914,445,446,447,666,1904, + 277,280,283,825,1180,6914,6914,379,189,6914, + 6914,445,446,447,666,3483,6914,221,6914,6914, + 6914,1603,6914,6914,6914,6914,6914,6914,6914,6914, + 6914,6914,1904,6914,6914,6914,6914,1603,6914,6914, + 6914,6914,6914,6914,6914,6914,6914,6914,6914,6914, + 6914,6914,6914,6914,6914,6914,6914,6914,6914,6914, + 6914,6914,6914,6914,3819,6914,6914,6914,6914,6914, + 6914,6914,6914,6914,6914,6914,6914,6914,563,564, + 569,6914,6914,448,450,6914,6914,6914,6914,6914, + 6914,6914,6914,6914,6914,6914,6914,3856,6914,448, + 451,6914,6914,6914,6914,6914,6914,6914,6914,6914, + 1353,6914,6914,6262,6914,6914,6914,6914,6914,6914, + 6914,6914,6914,6914,6914,6914,6914,6914,6914,6914, + 6914,6914,4055,6914,0,538,6027,0,1,263, + 0,39,6929,0,39,6928,0,1,1772,0, + 907,1,0,39,1,6929,0,39,1,6928, + 0,1,1588,0,1,811,0,263,253,0, + 318,431,0,318,323,0,7182,275,0,7181, + 275,0,7288,275,0,7287,275,0,7209,275, + 0,7208,275,0,7207,275,0,7206,275,0, + 7205,275,0,7204,275,0,7203,275,0,7202, + 275,0,7221,275,0,7220,275,0,7219,275, + 0,7218,275,0,7217,275,0,7216,275,0, + 7215,275,0,7214,275,0,7213,275,0,7212, + 275,0,7211,275,0,39,275,6929,0,39, + 275,6928,0,6952,275,0,1427,424,0,6929, + 48,0,6928,48,0,1,367,0,38,811, + 0,38,6929,0,38,6928,0,491,1720,0, + 477,1847,0,1427,29,0,6926,1,0,2182, + 354,0,1,481,0,495,635,0,494,2298, + 0,35,33,0,47,37,0,538,1668,0, + 6952,1,263,0,39,1,263,0,263,453, + 0,1,1860,0,1,7221,0,1,7220,0, + 1,7219,0,1,7218,0,1,7217,0,1, + 7216,0,1,7215,0,1,7214,0,1,7213, + 0,1,7212,0,1,7211,0,6929,37,0, + 6928,37,0,43,6950,0,43,37,0,6926, + 420,0,6925,420,0,1,713,0,1,1536, + 0,263,254,0,6924,442,0,6923,442,0, + 263,452,0,1,5829,0,1,5508,0,1, + 5554,0,1,5577,0,1,5600,0,1,5623, + 0,1,5646,0,1,5669,0,1,5531,0, + 1,6936,0,1,6935,0,1,6934,0,1, + 6933,0,1,6932,0,1,6931,0,1,6930, + 0,1,1857,0,1,1863,0,1,1930,0, + 1,1996,0,1,1998,0,1,3297,0,39, + 1,0,6922,1,0,4245,126,0,367,482, + 0,275,6929,0,275,6928,0,6920,1,0, + 6919,1,0,1032,91,0,32,34,0,39, + 811,0,6950,45,0,37,45,0,1,263, + 3501,0,6923,263,0,3503,263,0,6952,1, + 0,271,884,0,425,32,0,424,29,0, + 3597,263,0,10,12,0,4245,128,0,4245, + 127,0,1,92,0,8,10,12,0,3672, + 227,0,6929,36,0,6928,36,0,6929,2, + 37,0,6928,2,37,0,3678,420,0,367, + 95,0,35,73,0,8,12,0,313,4056, + 0,218,5309,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1102,361 +1399,400 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 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,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,0,59, - 60,61,62,63,0,65,66,67,0,1, - 2,71,4,9,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,55,56,3,58,59, + 60,0,62,63,64,4,66,67,0,69, + 0,1,2,73,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,69,42,43, + 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,60,61,62,63, - 0,65,66,67,0,1,2,71,4,9, + 0,55,56,3,58,59,60,0,62,63, + 64,4,66,67,0,69,0,1,2,73, 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,69,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 0,59,60,61,62,63,0,65,66,67, - 4,0,6,71,3,9,74,75,76,77, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,0,55,56,0, + 58,59,60,4,62,63,64,0,66,67, + 3,69,0,1,2,73,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,0, + 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,60,61, - 62,63,0,65,66,67,96,97,6,0, - 1,2,74,75,76,77,78,79,80,81, + 52,53,0,55,56,3,58,59,60,0, + 62,63,64,97,66,67,7,69,0,1, + 2,0,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,0,42,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,0,59,60,61,62,63,6,65, - 66,67,0,0,92,93,100,4,74,75, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,0,55, + 56,3,58,59,60,74,62,63,64,0, + 66,67,0,69,0,1,2,0,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,58,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,0,59, - 60,61,62,63,0,65,66,67,0,1, - 2,89,4,91,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,55,56,70,58,59, + 60,7,62,63,64,0,66,67,0,69, + 0,1,2,94,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,0,42,43, + 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,60,61,62,63, - 0,65,66,67,96,97,6,0,1,2, + 0,55,56,0,58,59,60,4,62,63, + 64,0,66,67,0,69,0,92,93,3, 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,69,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 0,59,60,61,62,63,0,65,66,67, - 4,0,92,93,0,4,74,75,76,77, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,70,55,56,0, + 58,59,60,0,62,63,64,0,66,67, + 0,69,5,10,7,94,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,58, + 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,72,59,60,61, - 62,63,0,65,66,67,0,0,6,0, - 1,2,74,75,76,77,78,79,80,81, + 52,53,0,55,56,3,58,59,60,0, + 62,63,64,94,66,67,0,69,0,1, + 2,5,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,58,42,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,0,59,60,61,62,63,0,65, - 66,67,4,0,92,93,0,4,74,75, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,0,55, + 56,0,58,59,60,0,62,63,64,0, + 66,67,3,69,0,1,2,0,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,58,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,72,59, - 60,61,62,63,0,65,66,67,0,1, - 2,99,0,5,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,55,56,70,58,59, + 60,7,62,63,64,97,66,67,97,69, + 0,96,0,0,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,0,42,43, + 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,72,59,60,61,62,63, - 0,65,66,67,0,1,2,0,1,2, + 0,55,56,70,58,59,60,0,62,63, + 64,0,66,67,0,69,86,87,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,0,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 0,59,60,61,62,63,0,65,66,67, - 4,0,0,1,2,0,74,75,76,77, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,0,55,56,3, + 58,59,60,0,62,63,64,0,66,67, + 3,69,0,92,93,3,74,75,76,77, 78,79,80,81,82,83,84,85,0,1, - 2,3,4,5,6,7,0,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,41,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,0, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,103,104,105,0, - 62,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,0,1,2,40, - 39,120,41,0,1,2,45,4,102,6, - 0,50,9,74,0,54,0,1,2,0, - 59,60,61,0,1,2,0,4,5,10, - 7,0,71,72,0,0,1,2,3,4, - 5,6,7,0,9,35,36,86,22,23, - 24,8,26,27,28,29,30,31,32,33, - 34,65,66,0,103,104,105,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,0,89,70,91,39,72,41,0, - 1,2,45,4,0,6,73,50,9,0, - 6,54,3,9,0,62,59,60,61,0, - 1,2,0,4,5,101,7,0,71,72, - 3,107,108,109,110,111,112,113,114,115, - 116,117,0,86,22,23,24,0,26,27, - 28,29,30,31,32,33,34,0,1,2, - 103,104,105,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,41,0, - 1,2,39,0,41,58,3,8,45,6, - 0,8,9,50,0,1,2,54,0,5, - 10,7,59,60,61,0,63,0,25,0, - 1,2,90,4,71,0,1,2,35,36, - 37,38,0,1,2,0,1,2,0,86, - 0,1,2,3,4,5,6,7,10,9, - 0,58,0,3,0,0,67,64,8,59, - 41,68,69,70,71,72,73,0,1,2, - 3,4,5,120,7,8,41,39,0,41, - 87,88,89,90,91,92,93,94,95,96, - 97,98,99,100,101,87,88,65,66,106, - 107,108,109,110,111,112,113,114,115,116, - 117,118,119,0,64,0,3,0,3,6, - 0,8,9,73,70,8,0,0,8,3, - 0,64,0,1,2,3,4,5,25,7, - 73,89,25,91,89,25,91,0,35,36, - 37,38,22,23,24,8,26,27,28,29, - 30,31,32,33,34,0,0,1,2,0, - 4,58,6,0,0,9,3,64,100,64, - 0,68,69,70,71,72,73,22,23,24, - 64,26,27,28,29,30,31,32,33,34, - 87,88,89,90,91,92,93,94,95,96, - 97,98,99,100,101,41,69,0,71,106, - 107,108,109,110,111,112,113,114,115,116, - 117,118,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,0,1, - 2,102,39,0,41,0,1,2,45,4, - 5,0,7,50,0,68,0,54,4,8, - 4,0,59,60,61,0,63,0,1,2, - 3,4,5,0,7,0,25,0,22,0, - 0,1,2,3,4,5,41,7,0,86, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,0,26,27,28,29,30, - 31,32,33,34,0,1,2,3,4,5, - 69,7,0,120,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,103, - 104,105,40,39,99,41,0,1,2,45, - 4,5,68,7,50,98,0,102,54,3, - 0,0,58,59,60,61,72,63,8,0, - 1,2,3,4,5,6,7,0,9,0, - 1,2,3,4,5,6,7,41,9,0, - 86,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,70,67,0,68, - 39,0,41,64,3,0,45,0,0,70, - 0,50,4,64,0,54,0,0,8,0, - 59,60,61,64,63,8,0,0,1,2, - 22,4,71,6,8,8,9,0,1,2, - 3,4,0,6,0,0,9,86,0,1, - 2,3,4,5,6,7,8,9,10,11, + 2,3,4,5,6,7,8,120,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,64,67,87,88,39,0,41, - 0,1,2,45,4,0,6,71,50,9, - 73,64,54,87,88,98,101,59,60,61, - 0,63,107,68,69,0,0,90,0,71, - 0,1,2,3,4,5,8,7,118,87, - 88,87,88,0,86,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, - 0,1,2,58,39,5,41,7,0,0, - 45,0,72,68,64,50,70,69,10,54, - 0,73,0,0,59,60,61,64,63,0, - 0,8,0,3,0,0,71,0,8,94, - 95,0,8,23,24,0,0,39,3,41, - 41,86,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,0,1,2, - 58,39,5,41,64,58,73,45,68,69, - 68,0,50,73,58,68,54,73,0,68, - 69,59,60,61,0,63,8,0,72,0, - 1,2,8,0,90,8,94,95,41,0, - 0,94,95,0,1,2,35,36,86,0, + 32,33,34,35,36,37,38,0,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,55,56,3,58,0,60,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,41,0,1,2,39,71, - 41,6,0,0,45,0,0,73,71,50, - 0,8,69,54,8,0,0,68,59,60, - 61,0,63,8,8,0,1,2,25,0, - 0,25,0,0,0,0,41,35,36,0, - 0,1,2,0,0,86,0,1,2,3, + 31,32,33,0,1,2,0,4,39,0, + 41,0,1,2,3,4,5,6,7,8, + 0,54,0,61,55,56,57,58,59,9, + 0,62,63,0,1,2,3,4,91,6, + 71,8,73,34,35,98,0,0,0,1, + 2,3,4,5,6,7,8,88,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,0,71,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,41,72,0,0,39,0,41,73,73, - 58,45,0,1,2,90,50,58,69,69, - 54,58,58,69,0,59,60,61,0,63, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,86,41,0,0,1,2,3,4, - 5,58,7,8,58,35,36,37,38,41, - 40,0,42,43,44,0,46,47,48,49, - 25,51,52,53,0,55,56,57,64,0, - 1,2,62,0,0,65,66,0,68,0, + 0,1,2,0,4,39,96,41,0,1, + 2,3,4,0,6,54,8,9,118,0, + 0,55,56,57,58,59,65,7,62,63, + 0,1,2,3,4,0,6,71,8,73, + 0,0,1,2,0,4,5,39,7,9, + 89,90,0,0,88,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,65,39, + 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,65,0,0, + 68,3,39,5,41,7,0,9,9,0, + 1,2,3,4,0,6,0,8,55,56, + 57,58,59,9,0,62,63,64,4,5, + 0,7,34,35,36,37,73,39,22,23, + 24,25,26,27,28,29,30,31,32,33, + 0,88,54,0,1,2,3,4,5,61, + 7,0,0,65,0,0,68,68,70,71, + 72,73,73,9,0,1,2,3,4,5, + 6,7,8,120,86,87,72,89,90,91, + 92,93,94,95,96,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,97,0,0,61,117,118,119,0,57, + 0,3,57,5,4,7,0,9,0,1, + 2,0,4,69,6,61,8,0,0,1, + 2,3,4,5,70,7,0,1,2,0, + 4,38,34,35,36,37,95,39,0,0, + 22,23,24,25,26,27,28,29,30,31, + 32,33,54,61,54,38,0,1,2,61, + 4,0,6,65,8,57,68,61,70,71, + 72,73,0,1,2,3,4,0,6,61, + 8,9,71,65,86,87,68,89,90,91, + 92,93,94,95,96,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,39,0,57,0,117,118,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,0,1,2,3,4,39,6,41, + 8,9,0,1,2,0,4,5,54,7, + 0,1,2,55,56,57,58,59,101,102, + 62,63,64,0,1,2,3,4,5,6, + 7,8,0,10,11,12,13,14,15,16, + 17,18,19,20,21,0,88,0,1,2, + 0,4,5,61,7,0,9,34,35,36, + 37,38,0,40,72,42,43,44,45,46, + 47,48,49,50,51,52,53,0,120,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, - 21,0,68,0,0,1,2,3,4,5, - 41,7,8,58,35,36,37,38,0,40, - 0,42,43,44,0,46,47,48,49,25, - 51,52,53,69,55,56,57,0,0,0, - 0,62,0,0,70,0,67,70,3,0, - 71,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,70,0,0,58,3,58,0, - 0,0,37,38,3,0,35,36,37,38, - 0,40,68,42,43,44,58,46,47,48, - 49,58,51,52,53,68,55,56,57,64, - 70,72,70,62,0,0,0,68,67,0, - 1,2,3,4,5,6,7,0,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,0,0,0,3,3,3,72,0,0, - 0,106,3,3,35,36,37,38,0,40, - 75,42,43,44,119,46,47,48,49,0, - 51,52,53,4,55,56,57,0,64,0, - 3,62,3,0,65,66,0,1,2,3, - 4,5,6,7,0,9,10,11,12,13, - 14,15,16,17,18,19,20,21,0,0, - 0,3,3,0,0,0,3,3,3,0, - 72,35,36,37,38,0,40,0,42,43, - 44,4,46,47,48,49,0,51,52,53, - 0,55,56,57,0,5,0,3,62,0, - 0,65,66,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,39,0,0,0,3, - 70,5,6,64,90,9,0,0,35,36, - 37,38,0,40,0,42,43,44,0,46, - 47,48,49,0,51,52,53,58,55,56, - 57,35,36,37,38,62,70,0,42,0, - 67,0,3,0,3,0,40,102,0,0, - 0,0,0,0,58,0,58,0,0,0, - 64,65,66,0,68,69,70,70,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,87,88,89,0,0,92,93, - 94,95,96,97,98,99,100,101,0,0, - 0,0,106,0,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,0,0,0,121, - 0,0,0,0,0,0,0,0,0,35, - 36,37,38,0,40,0,42,43,44,0, - 46,47,48,49,0,51,52,53,0,55, - 56,57,0,1,2,3,4,5,6,7, - 0,9,10,11,12,13,14,15,16,17, - 18,19,20,21,0,0,0,0,0,0, - 0,0,0,0,0,0,0,35,36,37, - 38,0,40,0,42,43,44,0,46,47, - 48,49,0,51,52,53,0,55,56,57, - 0,0,118,0,62,0,1,2,3,4, - 5,6,7,0,9,10,11,12,13,14, - 15,16,17,18,19,20,21,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 35,36,37,38,0,40,0,42,43,44, - 0,46,47,48,49,0,51,52,53,0, - 55,56,57,0,0,0,0,0,0,64, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,0,0,0,0,0,0,0,0, - 0,0,0,0,0,35,36,37,38,0, - 40,0,42,43,44,0,46,47,48,49, - 0,51,52,53,0,55,56,57,0,0, - 0,0,62,0,1,2,3,4,5,6, - 7,0,9,10,11,12,13,14,15,16, - 17,18,19,20,21,0,0,0,0,0, - 0,0,0,0,0,0,0,0,35,36, - 37,38,0,40,0,42,43,44,0,46, - 47,48,49,0,51,52,53,0,55,56, - 57,0,1,2,3,4,5,6,7,0, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,0,0,0,0,0,0, - 0,0,0,0,0,0,35,36,37,38, - 0,40,0,42,43,44,0,46,47,48, - 49,0,51,52,53,0,55,56,57,0, - 1,2,3,4,5,6,7,0,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,0,0,0,0,0,0,0,0,0, - 0,0,0,0,35,36,37,38,0,40, - 0,42,43,44,0,46,47,48,49,0, - 51,52,53,0,55,56,57,0,1,2, - 0,4,0,0,0,0,0,10,11,12, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,0,0,70,54,0,39,72, + 41,4,0,0,0,1,2,4,4,0, + 6,0,8,54,55,56,57,58,59,22, + 9,62,63,64,97,22,101,102,103,104, + 105,106,107,108,109,110,111,112,0,1, + 2,3,4,5,6,7,8,88,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,0,72,0,0,0,39,0,41, + 0,1,2,5,4,5,94,7,0,61, + 0,92,93,55,56,57,58,59,23,24, + 62,63,64,0,0,1,2,114,115,116, + 6,73,22,23,24,25,26,27,28,29, + 30,31,32,33,0,0,88,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,0,26,27,28,29,30,31,32, - 33,34,0,0,0,0,39,0,0,0, - 0,0,45,0,0,1,2,50,4,0, - 0,54,0,0,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,0, - 26,27,28,29,30,31,32,33,34,0, - 0,0,0,39,0,0,0,0,0,45, - 0,0,0,0,50,0,0,0,54,0, + 23,24,25,26,27,28,29,30,31,32, + 33,57,86,87,61,91,39,95,41,0, + 1,2,98,4,5,0,7,99,100,0, + 92,93,55,56,57,58,59,0,0,62, + 63,64,68,0,1,2,0,1,2,6, + 73,22,23,24,25,26,27,28,29,30, + 31,32,33,0,0,88,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, + 0,1,2,65,4,39,6,41,8,0, + 1,2,66,67,0,6,0,8,0,0, + 57,55,56,57,58,59,0,0,62,63, + 64,0,68,0,1,2,0,4,0,73, + 22,23,24,25,26,27,28,29,30,31, + 32,33,38,0,88,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,70, + 57,0,1,2,39,0,41,6,0,8, + 5,65,71,5,68,0,0,0,0,71, + 55,56,57,58,59,9,9,62,63,64, + 101,102,103,104,105,106,107,108,109,110, + 111,112,0,0,1,2,3,4,0,6, + 0,8,10,88,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,72,71, + 73,0,0,39,3,41,0,0,0,0, + 0,59,86,87,99,100,0,99,100,55, + 56,57,58,59,71,65,62,63,64,22, + 23,24,25,26,27,28,29,30,31,32, + 33,0,1,2,3,4,121,6,0,8, + 34,35,88,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,0,0,1, + 2,0,39,91,41,86,87,9,0,91, + 98,95,61,0,0,0,98,0,55,56, + 57,58,59,9,9,62,63,64,0,1, + 2,3,4,5,6,7,8,0,10,11, + 12,13,14,15,16,17,18,19,20,21, + 0,88,0,0,1,2,0,0,61,9, + 3,9,34,35,36,37,38,69,40,0, + 42,43,44,45,46,47,48,49,50,51, + 52,53,68,0,69,68,72,0,60,39, + 3,54,0,65,66,67,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,61,66, + 67,65,65,54,72,68,89,90,0,0, + 34,35,36,37,38,0,40,9,42,43, + 44,45,46,47,48,49,50,51,52,53, + 0,0,0,1,2,0,60,5,89,90, + 0,1,2,0,9,69,0,39,0,73, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,0,1,2,0,68,114,115,116, + 34,35,0,68,34,35,36,37,38,57, + 40,0,42,43,44,45,46,47,48,49, + 50,51,52,53,0,1,2,0,73,0, + 60,68,0,0,0,0,3,86,87,69, + 0,1,2,3,4,5,6,7,8,57, + 10,11,12,13,14,15,16,17,18,19, + 20,21,0,0,0,70,0,0,0,0, + 68,9,9,9,34,35,36,37,38,0, + 40,57,42,43,44,45,46,47,48,49, + 50,51,52,53,61,0,0,86,87,70, + 60,39,39,68,70,9,66,67,0,1, + 2,3,4,5,6,7,8,0,10,11, + 12,13,14,15,16,17,18,19,20,21, + 0,65,0,54,65,0,72,70,0,9, + 113,0,34,35,36,37,38,0,40,54, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,0,96,0,71,0,60,73, + 0,54,0,0,66,67,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,0,0, + 65,3,72,5,6,7,89,90,0,0, + 34,35,36,37,38,0,40,70,42,43, + 44,45,46,47,48,49,50,51,52,53, + 65,0,34,35,36,37,60,96,40,0, + 0,71,3,71,71,69,6,0,9,86, + 87,113,54,86,87,0,1,2,0,61, + 0,3,54,65,66,67,68,68,70,22, + 23,24,25,26,27,28,29,30,31,32, + 33,0,0,0,86,87,71,89,90,91, + 92,93,94,95,96,86,87,99,100,101, + 61,103,104,105,106,107,108,109,110,111, + 112,72,57,0,54,117,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,0,0, + 1,2,0,1,2,0,1,2,0,0, + 34,35,36,37,38,0,40,0,42,43, + 44,45,46,47,48,49,50,51,52,53, + 0,1,2,3,4,5,6,7,8,0, + 10,11,12,13,14,15,16,17,18,19, + 20,21,54,0,113,0,57,4,0,57, + 0,0,57,65,34,35,36,37,38,54, + 40,54,42,43,44,45,46,47,48,49, + 50,51,52,53,0,0,0,89,90,4, + 4,0,0,9,118,3,66,67,0,1, + 2,3,4,5,6,7,8,54,10,11, + 12,13,14,15,16,17,18,19,20,21, + 0,0,0,3,3,3,71,0,0,9, + 70,70,34,35,36,37,38,10,40,54, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,95,0,3,72,3,60,0, + 1,2,3,4,5,6,7,8,41,10, + 11,12,13,14,15,16,17,18,19,20, + 21,61,54,0,57,65,3,0,68,0, + 0,0,72,34,35,36,37,38,0,40, + 0,42,43,44,45,46,47,48,49,50, + 51,52,53,0,0,0,3,0,3,0, + 61,0,1,2,3,4,5,6,7,8, + 0,10,11,12,13,14,15,16,17,18, + 19,20,21,54,54,54,0,0,0,3, + 0,0,1,2,65,34,35,36,37,38, + 0,40,75,42,43,44,45,46,47,48, + 49,50,51,52,53,61,0,60,89,90, + 0,60,0,1,2,3,4,5,6,7, + 8,61,10,11,12,13,14,15,16,17, + 18,19,20,21,54,0,0,0,57,0, + 1,2,0,0,54,65,34,35,36,37, + 38,41,40,0,42,43,44,45,46,47, + 48,49,50,51,52,53,0,0,0,89, + 90,4,60,0,1,2,3,4,5,6, + 7,8,0,10,11,12,13,14,15,16, + 17,18,19,20,21,0,57,54,3,0, + 0,0,0,0,3,0,0,34,35,36, + 37,38,10,40,0,42,43,44,45,46, + 47,48,49,50,51,52,53,0,0,0, + 0,36,37,60,0,1,2,3,4,5, + 6,7,8,41,10,11,12,13,14,15, + 16,17,18,19,20,21,61,54,0,57, + 54,0,0,0,0,0,113,0,34,35, + 36,37,38,0,40,0,42,43,44,45, + 46,47,48,49,50,51,52,53,0,1, + 2,3,4,5,6,7,8,0,10,11, + 12,13,14,15,16,17,18,19,20,21, + 0,0,117,0,119,0,0,0,0,0, + 0,0,34,35,36,37,38,0,40,0, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,1,2,3,4,5,6,7, + 8,0,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,0,0,0, + 0,0,0,0,0,0,34,35,36,37, + 38,0,40,0,42,43,44,45,46,47, + 48,49,50,51,52,53,0,1,2,3, + 4,5,6,7,8,0,10,11,12,13, + 14,15,16,17,18,19,20,21,0,0, + 0,0,0,0,0,0,0,0,0,0, + 34,35,36,37,38,0,40,0,42,43, + 44,45,46,47,48,49,50,51,52,53, + 0,1,2,0,4,0,0,0,0,0, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,0,0,0,0,0,0, + 0,41,0,0,0,0,0,0,0,0, + 1,2,0,4,0,55,56,0,58,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,0,0,0,0,0,0,0, + 41,0,0,0,0,0,0,0,0,1, + 2,0,0,0,55,56,0,58,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,0,0,0,0,0,0,0,41, + 0,0,0,0,0,0,0,0,1,2, + 0,0,0,55,56,0,58,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,0,0,0,0,0,0,0,41,0, 1,2,3,4,5,6,7,8,9,0, - 0,0,0,0,0,0,0,0,0,0, + 0,0,55,56,0,58,0,0,0,0, 0,22,23,24,25,26,27,28,29,30, - 31,32,33,34,0,0,0,0,0,0, + 31,32,33,0,0,0,0,0,39,22, + 23,24,25,26,27,28,29,30,31,32, + 33,0,0,54,0,0,0,0,0,0, + 61,0,1,2,3,4,5,6,7,8, + 9,72,0,0,0,0,0,0,0,0, + 0,0,0,22,23,24,25,26,27,28, + 29,30,31,32,33,0,0,0,0,0, + 39,0,0,0,0,0,0,0,0,0, + 0,0,0,1,2,3,4,5,0,7, + 0,0,61,0,0,0,0,0,0,0, + 0,0,0,72,22,23,24,25,26,27, + 28,29,30,31,32,33,22,23,24,25, + 26,27,28,29,30,31,32,33,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,58,0,0, - 0,0,0,64,0,0,0,0,0,0, - 0,0,73,0,1,2,3,4,5,6, - 7,8,9,0,0,0,0,0,0,0, - 0,0,0,0,0,22,23,24,25,26, - 27,28,29,30,31,32,33,34,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,64,0,0, - 0,0,0,0,0,0,73,0,0,0, + 0,0,0,61,0,0,0,65,0,0, + 68,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,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; @@ -1464,360 +1800,398 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TermAction { public final static char termAction[] = {0, - 5396,5317,5032,5032,5032,5032,5032,5032,5348,5032, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5321,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,300,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,311,1597, - 803,5571,1,563,131,1,1,5407,290,5067, - 5067,5403,285,2386,1677,3636,3137,2074,3096,3556, - 3116,3635,579,3574,3093,3571,10,5351,5351,5351, - 5351,5351,5351,5351,5351,5351,5351,5351,5351,5351, - 5351,5351,5351,5351,5351,5351,5351,5351,5351,5351, - 5351,5351,5351,5351,5351,5351,5351,5351,5351,5351, - 5351,5351,5351,5351,5351,5351,5351,3790,5351,5351, - 5351,5351,5351,5351,5351,5351,5351,5351,5351,5351, - 5351,5351,5351,5351,519,5351,5351,5351,5351,5351, - 132,5351,5351,5351,5396,5038,5035,5351,5434,2386, - 5351,5351,5351,5351,5351,5351,5351,5351,5351,5351, - 5351,5351,8,5357,5357,5357,5357,5357,5357,5357, - 5357,5357,5357,5357,5357,5357,5357,5357,5357,5357, - 5357,5357,5357,5357,5357,5357,5357,5357,5357,5357, - 5357,5357,5357,5357,5357,5357,5357,5357,5357,5357, - 5357,5357,5357,888,5357,5357,5357,5357,5357,5357, - 5357,5357,5357,5357,5357,5357,5357,5357,5357,5357, - 129,5357,5357,5357,5357,5357,39,5357,5357,5357, - 5434,5396,334,5357,861,334,5357,5357,5357,5357, - 5357,5357,5357,5357,5357,5357,5357,5357,5396,5317, - 5032,5032,5032,5032,5032,5032,5324,5032,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5321,1,1,1,1,1,1, + 6914,6838,6478,6478,6478,6478,6478,6478,6478,6860, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,137,1597,803,5571, - 1,563,115,1,1,5407,2501,2429,3765,300, - 5410,5411,1677,3636,3137,2074,3096,3556,3116,3635, - 579,3574,3093,3571,5396,5317,5032,5032,5032,5032, - 5032,5032,5324,5032,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5321, + 1,1,1,1,1,1,1,1,1,6842, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,399,1,1,1,1, + 1,1,1,1,6914,1,1,885,1,1979, + 1,39,762,7122,637,6952,1,1,333,6925, + 333,6928,6929,6921,1859,3550,3026,3093,2992,3500, + 4744,3540,650,3538,4148,3505,10,6863,6863,6863, + 6863,6863,6863,6863,6863,6863,6863,6863,6863,6863, + 6863,6863,6863,6863,6863,6863,6863,6863,6863,6863, + 6863,6863,6863,6863,6863,6863,6863,6863,6863,6863, + 6863,6863,6863,6863,6863,6863,6863,6863,6863,6863, + 6863,6863,6863,6863,6863,6863,6863,6863,6863,6863, + 6914,6863,6863,2182,6863,6863,6863,6914,6863,6863, + 6863,1375,6863,6863,1,6863,6914,6602,6599,6863, + 6863,6863,6863,6863,6863,6863,6863,6863,6863,6863, + 6863,6863,8,6875,6875,6875,6875,6875,6875,6875, + 6875,6875,6875,6875,6875,6875,6875,6875,6875,6875, + 6875,6875,6875,6875,6875,6875,6875,6875,6875,6875, + 6875,6875,6875,6875,6875,6875,6875,6875,6875,6875, + 6875,6875,6875,6875,6875,6875,6875,6875,6875,6875, + 6875,6875,6875,6875,6875,6875,394,6875,6875,432, + 6875,6875,6875,425,6875,6875,6875,6914,6875,6875, + 6132,6875,6914,6928,6929,6875,6875,6875,6875,6875, + 6875,6875,6875,6875,6875,6875,6875,6875,6914,6838, + 6478,6478,6478,6478,6478,6478,6478,6845,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5396,1597,803,5571,1,563,3154,1, - 1,5407,111,400,3740,3205,2287,391,1677,3636, - 3137,2074,3096,3556,3116,3635,579,3574,3093,3571, - 5396,5317,5032,5032,5032,5032,5032,5032,5324,5032, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5321,1,1,1,1, + 1,1,1,1,1,1,1,6842,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1129,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,130,1597, - 803,5571,1,563,334,1,1,5407,5396,5038, - 5035,4031,5434,4054,1677,3636,3137,2074,3096,3556, - 3116,3635,579,3574,3093,3571,5396,5317,5032,5032, - 5032,5032,5032,5032,5324,5032,1,1,1,1, + 1,1,6914,1,1,884,1,1979,1,151, + 762,7122,637,7307,1,1,3725,6925,6914,10517, + 10485,1,1859,3550,3026,3093,2992,3500,4744,3540, + 650,3538,4148,3505,6914,6838,6478,6478,6478,6478, + 6478,6478,6478,6845,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5321,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,388,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,453,1597,803,5571,1,563, - 117,1,1,5407,2501,2429,3765,5396,5156,5153, - 1677,3636,3137,2074,3096,3556,3116,3635,579,3574, - 3093,3571,5396,5317,5032,5032,5032,5032,5032,5032, - 5324,5032,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5321,1,1, + 1,1,1,6842,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,6914,1, + 1,3808,1,1979,1,1649,762,7122,637,153, + 1,1,432,6925,48,6602,6599,35,1859,3550, + 3026,3093,2992,3500,4744,3540,650,3538,4148,3505, + 6914,6838,6478,6478,6478,6478,6478,6478,6478,6845, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,2494,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5396,1597,803,5571,1,563,39,1,1,5407, - 5434,48,3740,3205,452,5411,1677,3636,3137,2074, - 3096,3556,3116,3635,579,3574,3093,3571,5396,5317, - 5032,5032,5032,5032,5032,5032,5324,5032,1,1, + 1,1,1,1,1,1,1,1,1,6842, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5321,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5411, + 1,1,1,1,131,1,1,1662,1,1979, + 1,3776,762,7122,637,149,1,1,367,6925, + 434,6928,6929,3636,1859,3550,3026,3093,2992,3500, + 4744,3540,650,3538,4148,3505,6914,6838,6478,6478, + 6478,6478,6478,6478,6478,6845,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,650,1597,803,5571, - 1,563,116,1,1,5407,5396,391,3765,5396, - 5410,5411,1677,3636,3137,2074,3096,3556,3116,3635, - 579,3574,3093,3571,5396,5317,5032,5032,5032,5032, - 5032,5032,5324,5032,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5321, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5150,1,1,1,1, + 1,1,1,1,1,6842,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,135,1597,803,5571,1,563,5396,1, - 1,5407,661,48,3740,3205,5396,5410,1677,3636, - 3137,2074,3096,3556,3116,3635,579,3574,3093,3571, - 5396,5317,5032,5032,5032,5032,5032,5032,5324,5032, + 421,1,1,6914,1,1979,1,1443,762,7122, + 637,133,1,1,6914,6925,347,3918,3851,890, + 1859,3550,3026,3093,2992,3500,4744,3540,650,3538, + 4148,3505,6914,6838,6478,6478,6478,6478,6478,6478, + 6478,6845,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5321,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5410,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5801,1597, - 803,5571,1,563,5396,1,1,5407,5396,5410, - 5411,2322,432,2952,1677,3636,3137,2074,3096,3556, - 3116,3635,579,3574,3093,3571,5396,5317,5032,5032, - 5032,5032,5032,5032,5324,5032,1,1,1,1, + 1,6842,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1150,1,1,154, + 1,1979,1,337,762,7122,637,6914,1,1, + 6914,6925,1735,7250,1423,3690,1859,3550,3026,3093, + 2992,3500,4744,3540,650,3538,4148,3505,6914,6838, + 6478,6478,6478,6478,6478,6478,6478,6845,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5321,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5396,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2756,1597,803,5571,1,563, - 5396,1,1,5407,5396,6779,6607,48,5156,5153, - 1677,3636,3137,2074,3096,3556,3116,3635,579,3574, - 3093,3571,5396,5317,5032,5032,5032,5032,5032,5032, - 5324,5032,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5321,1,1, + 1,1,1,1,1,1,1,6842,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,443,1,1,1,1,1,1, + 1,1,91,1,1,6823,1,1979,1,6914, + 762,7122,637,3636,1,1,6914,6925,6914,10517, + 10485,2196,1859,3550,3026,3093,2992,3500,4744,3540, + 650,3538,4148,3505,6914,6838,6478,6478,6478,6478, + 6478,6478,6478,6845,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5396,1597,803,5571,1,563,399,1,1,5407, - 392,5396,37,5198,5198,5396,1677,3636,3137,2074, - 3096,3556,3116,3635,579,3574,3093,3571,39,5038, - 5035,4820,632,3826,3916,3125,5396,3939,877,5662, - 5660,5669,5668,5664,5665,5663,5666,5667,5670,5661, - 5657,5736,5737,5432,5651,5658,5654,5630,5656,5655, - 5652,5653,5631,3890,3867,3985,3962,5798,5415,1, - 3803,1769,1847,1451,5417,1770,3531,1813,5799,5418, - 5416,1727,5800,5412,5413,5414,5835,5836,5837,5396, - 1428,5396,5208,5208,230,5204,230,230,230,5212, - 230,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,230,1,1,1, - 1,1,1,1,1,1,5396,5410,5411,1045, - 1,5028,5201,448,1,1,1,1,3720,5186, - 118,1,5186,1181,114,1,401,5410,5411,304, - 680,1949,5812,5396,5038,5035,225,632,939,5699, - 3125,5396,420,230,139,5396,5051,5047,4370,5044, - 939,5159,3125,5396,5159,3070,2725,5900,5657,5736, - 5737,5402,5651,5658,5654,5630,5656,5655,5652,5653, - 5631,4008,1006,537,5835,5836,5837,5396,5208,5208, - 230,5204,230,230,230,5284,230,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,1,1,1,1,1, - 1,1,5396,4031,1902,4054,1,1098,5201,449, - 39,39,1,5434,5396,5293,5401,1,5293,5396, - 1796,1,1546,1312,5396,3989,680,1949,5812,5396, - 5038,5035,226,632,939,2248,3125,5396,419,230, - 4852,3448,1859,1816,1773,1730,1687,1644,1601,1558, - 1515,1472,361,5900,5657,5736,5737,458,5651,5658, - 5654,5630,5656,5655,5652,5653,5631,5396,5254,5251, - 5835,5836,5837,5396,5032,5032,230,5032,230,230, - 230,5061,230,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,230,1, - 1,8692,1,1,1,1,1,1,5432,5396, - 5410,5411,1,33,5029,5171,5195,5408,1,5195, - 304,5195,5195,1,38,5168,5165,1,121,5162, - 5699,3125,629,803,5608,5396,563,5396,5195,398, - 5064,5064,5756,285,220,5396,6779,6607,5195,5195, - 5195,5195,5396,5156,5153,43,5260,5260,1,5900, - 312,5051,5047,4370,5044,939,5159,3125,5269,5159, - 1,5195,113,2916,35,112,5407,5195,5296,649, - 285,5195,5195,5195,5195,5195,5195,1,5051,5047, - 583,5044,939,220,3125,5296,5257,5272,138,2569, - 5195,5195,5195,5195,5195,5195,5195,5195,5195,5195, - 5195,5195,5195,5195,5195,2858,2886,4008,1006,5195, - 5195,5195,5195,5195,5195,5195,5195,5195,5195,5195, - 5195,5195,5195,5396,1055,321,5305,5396,5183,5305, - 409,5305,5305,5299,1097,5406,350,5396,5278,3039, - 227,1055,1,5051,5047,5041,5044,5058,5305,5055, - 5299,4031,5405,4054,4031,5281,4054,5396,5305,5305, - 5305,5305,5657,5736,5737,5404,5651,5658,5654,5630, - 5656,5655,5652,5653,5631,228,92,1,1,378, - 1,5305,5354,5396,5396,5354,3412,5305,2287,1055, - 5396,5305,5305,5305,5305,5305,5305,5657,5736,5737, - 1055,5651,5658,5654,5630,5656,5655,5652,5653,5631, - 5305,5305,5305,5305,5305,5305,5305,5305,5305,5305, - 5305,5305,5305,5305,5305,1033,1010,5396,5403,5305, - 5305,5305,5305,5305,5305,5305,5305,5305,5305,5305, - 5305,5305,5305,5396,5032,5032,230,5032,230,230, - 230,230,230,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,230,1, - 1,8692,1,1,1,1,1,1,294,5410, - 5411,3720,1,5396,5029,5396,5038,5035,1,632, - 5308,5396,3125,1,5396,4479,39,1,3270,5406, - 5434,5396,629,803,5608,136,563,1,5051,5047, - 4370,5044,939,5396,3125,526,5405,133,2378,224, - 334,5038,5035,4370,632,939,612,3125,5396,5900, - 5662,5660,5669,5668,5664,5665,5663,5666,5667,5670, - 5661,5657,5736,5737,5396,5651,5658,5654,5630,5656, - 5655,5652,5653,5631,1,5051,5047,4370,5044,939, - 4100,3125,5396,221,5396,5032,5032,230,5032,230, - 230,230,230,230,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,230, - 1,1,8692,1,1,1,1,1,1,5835, - 5836,5837,1935,1,2322,5029,5396,5038,5035,1, - 632,5308,5912,3125,1,2355,314,1,1,1229, - 5396,5396,1050,629,803,5608,1098,563,5408,370, - 5051,5047,583,5044,939,1,3125,5396,1,348, - 5038,5035,583,632,939,334,3125,2458,334,323, - 5900,5396,5032,5032,230,5032,230,230,230,5275, - 230,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,230,1,1,8692, - 1,1,1,1,1,1,1150,5407,125,5855, - 1,5396,5029,1055,4174,139,1,134,39,1281, - 5396,1,5434,1055,5396,1,124,1,5400,462, - 629,803,5608,1055,563,5180,5396,1,5330,5330, - 3351,5327,221,334,5404,366,334,348,39,39, - 2916,5434,123,334,122,5396,334,5900,5396,5032, - 5032,230,5032,230,230,230,5275,230,1,1, + 1,1,1,6842,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,230,1,1,8692,1,1,1, - 1,1,1,5189,5407,2858,2886,1,5396,5029, - 95,39,39,1,5434,5396,5381,5403,1,5381, - 366,1055,1,2858,2886,2355,2248,629,803,5608, - 5396,563,3448,4593,3483,126,295,366,5396,221, - 1,5051,5047,583,5044,939,5402,3125,5399,2858, - 2886,2858,2886,461,5900,5396,5032,5032,230,5032, - 230,230,230,5275,230,1,1,1,1,1, + 1,1,1,1979,1,157,762,7122,637,1, + 1,1,5884,6925,327,6928,6929,328,1859,3550, + 3026,3093,2992,3500,4744,3540,650,3538,4148,3505, + 6914,6838,6478,6478,6478,6478,6478,6478,6478,6845, 1,1,1,1,1,1,1,1,1,1, - 230,1,1,8692,1,1,1,1,1,1, - 5396,5410,5411,2799,1,939,5029,3125,1,47, - 1,5396,2113,5287,1055,1,1237,4311,5269,1, - 339,5401,5396,1,629,803,5608,5192,563,5396, - 1,161,128,2916,1,5396,221,127,344,2697, - 2669,5396,366,5736,5737,91,29,5272,5302,2569, - 2152,5900,5396,5032,5032,230,5032,230,230,230, - 230,230,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,230,1,1, - 8692,1,1,1,1,1,1,37,5198,5198, - 2799,1,5198,5029,1055,2799,161,1,344,344, - 5342,120,1,344,1129,5345,1,366,1,3864, - 3483,629,803,5608,1,563,5290,8,428,36, - 5375,5372,533,365,366,5387,2697,2669,3567,5396, - 5396,2697,2669,45,5314,5314,3070,2725,5900,5396, - 5032,5032,230,5032,230,230,230,230,230,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,230,1,1,8692,1,1, - 1,1,1,1,5311,37,5198,5198,1,5403, - 5029,334,119,1,1,1,1,533,5387,1, - 5396,5406,783,1,191,1,1,5841,629,803, - 5608,5396,563,163,5402,293,1554,1554,5405,287, - 293,191,444,5396,157,5396,5432,3070,2725,29, - 5396,8684,8684,5396,5396,5900,5396,5032,5032,230, - 5032,230,230,230,230,230,1,1,1,1, + 1,1,1,1,1,1,1,1,1,6842, 1,1,1,1,1,1,1,1,1,1, - 1,230,1,1,8692,1,1,1,1,1, - 1,5432,1988,5396,5396,1,399,5029,163,5401, - 5174,1,37,5198,5198,5758,1,5177,5682,8231, - 1,1589,1129,1945,351,629,803,5608,37,563, - 1,5051,5047,4820,5044,3826,3916,3125,5396,3939, - 5215,5242,5248,5221,5224,5236,5233,5239,5230,5227, - 5218,5245,5900,2934,5396,1,5051,5047,5041,5044, - 5058,1050,5055,5406,1129,3890,3867,3985,3962,5432, - 5415,5396,3803,1769,1847,5396,5417,1770,3531,1813, - 5405,5418,5416,1727,430,5412,5413,5414,1055,5396, - 5368,5364,1428,5396,373,39,39,371,520,39, - 5038,5035,4820,632,3826,3916,3125,5378,3939,2493, - 5662,5660,5669,5668,5664,5665,5663,5666,5667,5670, - 5661,5396,3690,512,1,5051,5047,4370,5044,939, - 5432,3125,312,3268,3890,3867,3985,3962,5396,5415, - 5396,3803,1769,1847,5396,5417,1770,3531,1813,312, - 5418,5416,1727,4228,5412,5413,5414,5396,5396,5396, - 510,1428,424,5396,1336,75,5266,1385,4139,5396, - 5403,39,5038,5035,4820,632,3826,3916,3125,5263, - 3939,2493,5662,5660,5669,5668,5664,5665,5663,5666, - 5667,5670,5661,3650,238,5396,3428,5333,3562,5396, - 5396,1,5458,5459,4309,194,3890,3867,3985,3962, - 5396,5415,3702,3803,1769,1847,3591,5417,1770,3531, - 1813,3014,5418,5416,1727,3709,5412,5413,5414,2763, - 4145,3258,2161,1428,100,5396,5396,3710,5266,141, - 5038,5035,4820,632,3826,3916,3125,5396,3939,2493, - 5662,5660,5669,5668,5664,5665,5663,5666,5667,5670, - 5661,5396,5396,5396,4893,4918,2574,3295,5396,5396, - 5396,599,4923,3615,3890,3867,3985,3962,5396,5415, - 5361,3803,1769,1847,809,5417,1770,3531,1813,5396, - 5418,5416,1727,2409,5412,5413,5414,5396,4736,5396, - 4449,1428,4588,5396,39,39,1,5051,5047,4820, - 5044,3826,3916,3125,1,3939,5215,5242,5248,5221, - 5224,5236,5233,5239,5230,5227,5218,5245,5396,5396, - 5396,4654,4279,5396,5396,5396,4245,4519,4931,99, - 3350,3890,3867,3985,3962,525,5415,5396,3803,1769, - 1847,2766,5417,1770,3531,1813,5396,5418,5416,1727, - 5396,5412,5413,5414,103,2952,5396,4607,1428,73, - 5396,39,39,39,5038,5035,4820,632,3826,3916, - 3125,5263,3939,2493,5662,5660,5669,5668,5664,5665, - 5663,5666,5667,5670,5661,3302,1,514,2,2021, - 1097,5869,5863,2200,4182,5867,1,5396,3890,3867, - 3985,3962,5396,5415,5396,3803,1769,1847,185,5417, - 1770,3531,1813,5396,5418,5416,1727,5384,5412,5413, - 5414,5861,5862,5892,5893,1428,2031,5396,5870,5396, - 5266,280,3359,5396,5390,5396,665,3720,5396,5396, - 5396,5396,5396,5396,5872,5396,37,5396,5396,5396, - 571,1418,1495,5396,5873,5894,5871,945,5396,5396, - 5396,5396,5396,5396,5396,5396,5396,5396,5396,5396, - 5396,5396,5396,5883,5882,5895,5396,5396,5864,5865, - 5888,5889,5886,5887,5866,5868,5890,5891,5396,5396, - 5396,5396,5896,5396,5876,5877,5878,5874,5875,5884, - 5885,5880,5879,5881,39,5038,5035,4820,632,3826, - 3916,3125,5400,3939,2493,5662,5660,5669,5668,5664, - 5665,5663,5666,5667,5670,5661,5396,5396,5396,5393, - 5396,5396,5396,5396,5396,5396,5396,5396,5396,3890, - 3867,3985,3962,5396,5415,5396,3803,1769,1847,5396, - 5417,1770,3531,1813,5396,5418,5416,1727,5396,5412, - 5413,5414,39,5038,5035,4820,632,3826,3916,3125, - 5396,3939,2493,5662,5660,5669,5668,5664,5665,5663, - 5666,5667,5670,5661,5396,5396,5396,5396,5396,5396, - 5396,5396,5396,5396,5396,5396,5396,3890,3867,3985, - 3962,5396,5415,5396,3803,1769,1847,5396,5417,1770, - 3531,1813,5396,5418,5416,1727,5396,5412,5413,5414, - 5396,5396,5399,5396,1428,39,5038,5035,4820,632, - 3826,3916,3125,5396,3939,2493,5662,5660,5669,5668, - 5664,5665,5663,5666,5667,5670,5661,5396,5396,5396, - 5396,5396,5396,5396,5396,5396,5396,5396,5396,5396, - 3890,3867,3985,3962,5396,5415,5396,3803,1769,1847, - 5396,5417,1770,3531,1813,5396,5418,5416,1727,5396, - 5412,5413,5414,5396,5396,5396,5396,5396,5396,2452, - 39,5038,5035,4820,632,3826,3916,3125,5396,3939, - 2493,5662,5660,5669,5668,5664,5665,5663,5666,5667, - 5670,5661,5396,5396,5396,5396,5396,5396,5396,5396, - 5396,5396,5396,5396,5396,3890,3867,3985,3962,5396, - 5415,5396,3803,1769,1847,5396,5417,1770,3531,1813, - 5396,5418,5416,1727,5396,5412,5413,5414,5396,5396, - 5396,5396,1428,39,5038,5035,4865,632,3826,3916, - 3125,5396,3939,2493,5662,5660,5669,5668,5664,5665, - 5663,5666,5667,5670,5661,5396,5396,5396,5396,5396, - 5396,5396,5396,5396,5396,5396,5396,5396,3890,3867, - 3985,3962,5396,5415,5396,3803,1769,1847,5396,5417, - 1770,3531,1813,5396,5418,5416,1727,5396,5412,5413, - 5414,39,5038,5035,4820,632,3826,3916,3125,5396, - 3939,2493,5662,5660,5669,5668,5664,5665,5663,5666, - 5667,5670,5661,5396,5396,5396,5396,5396,5396,5396, - 5396,5396,5396,5396,5396,5396,3890,3867,3985,3962, - 5396,5415,5396,3803,1769,1847,5396,5417,1770,3531, - 1813,5396,5418,5416,1727,5396,5412,5413,5414,39, - 5038,5035,4820,632,3826,3916,3125,5396,3939,2493, - 5662,5660,5669,5668,5664,5665,5663,5666,5667,5670, - 5661,5396,5396,5396,5396,5396,5396,5396,5396,5396, - 5396,5396,5396,5396,3890,3867,3985,3962,5396,5415, - 5396,3803,1769,1847,5396,5417,1770,3531,1813,5396, - 5418,5416,1727,5396,5412,5413,5414,5396,5038,5035, - 5396,5434,5396,5396,5396,5396,5396,743,5662,5660, - 5669,5668,5664,5665,5663,5666,5667,5670,5661,5657, - 5736,5737,5396,5651,5658,5654,5630,5656,5655,5652, - 5653,5631,5396,5396,5396,5396,5798,5396,5396,5396, - 5396,5396,1451,5396,242,5143,5139,5799,5147,5396, - 5396,5800,5396,5396,743,5130,5136,5109,5112,5124, - 5121,5127,5118,5115,5106,5133,5085,5079,5076,5396, - 5103,5082,5094,5073,5088,5091,5100,5097,5070,5396, - 5396,5396,5396,5798,5396,5396,5396,5396,5396,1451, - 5396,5396,5396,5396,5799,5396,5396,5396,5800,29, - 391,391,5339,391,391,5339,391,5339,5339,5396, - 5396,5396,5396,5396,5396,5396,5396,5396,5396,5396, - 5396,391,391,391,5339,391,391,391,391,391, - 391,391,391,391,5396,5396,5396,5396,5396,5396, - 5396,5396,5396,5396,5396,5396,5396,5396,5396,5396, - 5396,5396,5396,5396,5396,5396,5396,5177,5396,5396, - 5396,5396,5396,5339,5396,5396,5396,5396,5396,5396, - 5396,5396,5339,32,392,392,5336,392,392,5336, - 392,5336,5336,5396,5396,5396,5396,5396,5396,5396, - 5396,5396,5396,5396,5396,392,392,392,5336,392, - 392,392,392,392,392,392,392,392,5396,5396, - 5396,5396,5396,5396,5396,5396,5396,5396,5396,5396, - 5396,5396,5396,5396,5396,5396,5396,5396,5396,5396, - 5396,5396,5396,5396,5396,5396,5396,5336,5396,5396, - 5396,5396,5396,5396,5396,5396,5336 + 1,1,1,1,152,1,1,3036,1,1979, + 1,3725,762,7122,637,7309,1,1,3887,6925, + 141,3446,121,406,1859,3550,3026,3093,2992,3500, + 4744,3540,650,3538,4148,3505,6914,6838,6478,6478, + 6478,6478,6478,6478,6478,6845,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,6842,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 6914,1,1,1348,1,1979,1,6914,762,7122, + 637,129,1,1,6914,6925,4423,4490,4423,4490, + 1859,3550,3026,3093,2992,3500,4744,3540,650,3538, + 4148,3505,6914,6838,6478,6478,6478,6478,6478,6478, + 6478,6845,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6842,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,271,1,1,6851, + 1,1979,1,6914,762,7122,637,6914,1,1, + 4751,6925,6914,3958,1264,6287,1859,3550,3026,3093, + 2992,3500,4744,3540,650,3538,4148,3505,39,6484, + 6481,6073,907,5600,5531,5623,1588,6474,1971,7213, + 7211,7220,7219,7215,7216,7214,7217,7218,7221,7212, + 7208,7287,7288,7202,7209,7205,7181,7207,7206,7203, + 7204,7182,5577,5554,5669,5646,6933,111,5508,7349, + 1863,1998,6935,1930,5829,1996,6936,6934,1857,6930, + 6931,6932,354,603,7350,6629,7351,424,1488,6914, + 6654,6654,263,6650,263,263,263,263,6658,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,323,6513,6513,6914,318,263,118, + 1,6914,6497,6493,1772,6490,6605,811,6605,1588, + 6914,6596,6914,1445,1,1,6647,1,2119,6918, + 137,1929,7363,1,6497,6493,6487,6490,5715,6504, + 263,6501,453,4708,4681,5738,6914,257,345,6497, + 6493,1772,6490,6605,811,6605,1588,7451,7213,7211, + 7220,7219,7215,7216,7214,7217,7218,7221,7212,7208, + 7287,7288,7202,7209,7205,7181,7207,7206,7203,7204, + 7182,126,2994,7386,7387,7388,6914,6654,6654,263, + 6650,263,263,263,263,6730,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 6914,6484,6481,6914,6952,263,3508,1,1,6497, + 6493,6487,6490,6914,6504,4272,6501,6924,6917,6914, + 132,1,1,6647,1,2119,6805,3776,1929,7363, + 1,6497,6493,1772,6490,6914,811,263,1588,452, + 6914,481,1,1,571,1,6632,6923,6632,6924, + 4218,4191,6914,6914,7451,7213,7211,7220,7219,7215, + 7216,7214,7217,7218,7221,7212,7208,7287,7288,7202, + 7209,7205,7181,7207,7206,7203,7204,7182,6109,6923, + 7386,7387,7388,6914,6478,6478,263,6478,263,263, + 263,263,6507,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 9636,1,1,1,1,1,1,6180,33,6914, + 3883,6641,263,6641,1,6641,6914,6641,6922,367, + 6484,6481,1772,907,1,811,258,1588,1,1, + 6475,1,1590,399,39,762,7159,637,6952,367, + 6914,367,6641,6641,6641,6641,253,6641,7208,7287, + 7288,7202,7209,7205,7181,7207,7206,7203,7204,7182, + 6914,7451,6641,381,39,39,4530,6952,367,6641, + 367,155,6914,6641,6914,47,6641,1068,6641,6641, + 6641,6641,6921,6926,403,6497,6493,4299,6490,1, + 811,1,1588,253,6641,6641,399,6641,6641,6641, + 6641,6641,6641,6641,6641,6641,6641,6641,6641,6641, + 6641,6641,6641,6641,6641,6641,6641,6641,6641,6641, + 6641,399,356,6914,1445,6641,6641,6641,6914,1096, + 433,6826,1341,6826,424,6826,495,6826,6914,6484, + 6481,485,907,6925,6829,1445,1588,6914,37,6929, + 6929,6929,6929,6929,1299,6929,6914,6484,6481,6914, + 6952,665,6826,6826,6826,6826,3545,6826,6914,6914, + 6929,6929,6929,6929,6929,6929,6929,6929,6929,6929, + 6929,6929,6826,1445,1427,1442,6914,6484,6481,6826, + 907,6914,6829,6826,1588,2102,6826,6635,6826,6826, + 6826,6826,1,6497,6493,1772,6490,139,811,6929, + 1588,345,927,6929,6826,6826,6929,6826,6826,6826, + 6826,6826,6826,6826,6826,6826,6826,6826,6826,6826, + 6826,6826,6826,6826,6826,6826,6826,6826,6826,6826, + 6826,345,6914,2168,491,6826,6826,6826,6914,6478, + 6478,263,6478,263,263,263,263,263,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,9636,1,1,1,1, + 1,1,1,6497,6493,4299,6490,263,811,1, + 1588,6817,482,39,39,6914,6952,6808,6617,6808, + 36,6885,6882,1,1,6475,1,1590,3407,4357, + 762,7159,637,39,6484,6481,6279,907,5600,5531, + 5623,1588,6914,1860,7213,7211,7220,7219,7215,7216, + 7214,7217,7218,7221,7212,159,7451,1,6799,6799, + 6914,6848,367,1445,367,6914,399,5577,5554,5669, + 5646,6933,477,5508,6820,1863,1998,6935,1930,5829, + 1996,6936,6934,1857,6930,6931,6932,6914,254,6914, + 6478,6478,263,6478,263,263,263,263,263,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,9636,1,1,1, + 1,1,1,6914,6914,2204,6620,39,263,399, + 1,6952,134,39,6914,6484,6481,6952,907,150, + 811,6914,1588,1143,1,1,6475,1,1590,2986, + 6920,762,7159,637,399,2767,3344,4151,2138,2072, + 2006,1940,1874,1808,1742,1676,1610,1544,381,6484, + 6481,4299,907,367,811,367,1588,7451,6914,6478, + 6478,263,6478,263,263,263,263,6721,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,9636,1,1,1,1, + 1,1,135,6919,114,372,145,263,115,1, + 92,1,1,5484,1,6872,3690,6872,130,1445, + 259,3918,3851,1,1,6475,1,1590,7287,7288, + 762,7159,637,494,37,6644,6644,7386,7387,7388, + 6644,254,7208,7287,7288,7202,7209,7205,7181,7207, + 7206,7203,7204,7182,344,6914,7451,6914,6478,6478, + 263,6478,263,263,263,263,6721,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,9636,1,1,1,1,1, + 1,2453,4423,4490,6638,5715,263,3600,1,95, + 39,39,5738,6952,6899,6914,6899,5460,4833,260, + 3958,1264,1,1,6475,1,1590,6914,6914,762, + 7159,637,1574,6914,6928,6929,6914,6928,6929,2406, + 254,7208,7287,7288,7202,7209,7205,7181,7207,7206, + 7203,7204,7182,37,552,7451,6914,6478,6478,263, + 6478,263,263,263,263,6721,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,9636,1,1,1,1,1,1, + 6914,6484,6481,7463,907,263,811,1,1588,38, + 6614,6611,5692,1195,1,6608,6914,1588,261,139, + 6950,1,1,6475,1,1590,6914,6914,762,7159, + 637,6914,934,431,6510,6510,6914,318,465,254, + 7208,7287,7288,7202,7209,7205,7181,7207,7206,7203, + 7204,7182,728,6914,7451,6914,6478,6478,263,6478, + 263,263,263,263,263,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,9636,1,1,1,1,1,1,2740, + 318,6914,6928,6929,263,117,1,811,116,1588, + 5484,3673,7352,5484,3883,218,6914,6914,6914,4759, + 1,1,6475,1,1590,6920,6922,762,7159,637, + 3407,4357,2693,2646,2599,2552,2505,2458,2411,2364, + 2317,2270,337,1,6497,6493,1772,6490,6914,811, + 6914,1588,7250,7451,6914,6478,6478,263,6478,263, + 263,263,263,263,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,9636,1,1,1,1,1,1,6919,3135, + 6921,6914,113,263,4894,1,156,572,112,144, + 6914,892,4423,4490,5460,4833,120,5460,4833,1, + 1,6475,1,1590,2994,7406,762,7159,637,7208, + 7287,7288,7202,7209,7205,7181,7207,7206,7203,7204, + 7182,1,6497,6493,4299,6490,6911,811,6914,1588, + 4708,4681,7451,6914,6478,6478,263,6478,263,263, + 263,263,263,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 9636,1,1,1,1,1,1,384,6914,6928, + 6929,6914,263,5715,1,4423,4490,6926,6914,5715, + 5738,3545,1445,6914,6914,1,5738,486,1,1, + 6475,1,1590,6920,6626,762,7159,637,1,6497, + 6493,3297,907,5600,5531,5623,1588,146,6661,6688, + 6694,6667,6670,6682,6679,6685,6676,6673,6664,6691, + 442,7451,1,6914,6602,6599,6914,1,1445,6724, + 4530,194,5577,5554,5669,5646,6933,6925,5508,148, + 1863,1998,6935,1930,5829,1996,6936,6934,1857,6930, + 6931,6932,5973,476,6925,2061,6919,6914,1488,6727, + 6320,4116,6914,553,39,39,39,6484,6481,6073, + 907,5600,5531,5623,1588,6896,1860,7213,7211,7220, + 7219,7215,7216,7214,7217,7218,7221,7212,1445,5692, + 1195,7392,577,4116,194,577,4089,1115,6914,6914, + 5577,5554,5669,5646,6933,398,5508,6924,1863,1998, + 6935,1930,5829,1996,6936,6934,1857,6930,6931,6932, + 6914,142,37,6644,6644,1,1488,367,4089,1115, + 326,1197,1197,320,6802,6712,119,6923,6914,6921, + 39,6484,6481,6073,907,5600,5531,5623,1588,6709, + 1860,7213,7211,7220,7219,7215,7216,7214,7217,7218, + 7221,7212,37,6644,6644,404,744,7386,7387,7388, + 4708,4681,326,3372,5577,5554,5669,5646,6933,6950, + 5508,125,1863,1998,6935,1930,5829,1996,6936,6934, + 1857,6930,6931,6932,6914,6700,6697,6914,6921,545, + 1488,7233,6914,383,543,190,2974,4423,4490,6712, + 174,6484,6481,6073,907,5600,5531,5623,1588,6950, + 1860,7213,7211,7220,7219,7215,7216,7214,7217,7218, + 7221,7212,1,1,1,1395,6914,457,158,6914, + 10052,6924,224,591,5577,5554,5669,5646,6933,29, + 5508,6950,1863,1998,6935,1930,5829,1996,6936,6934, + 1857,6930,6931,6932,1445,29,8,4423,4490,5874, + 1488,6923,224,2787,5883,6905,39,39,1,6497, + 6493,3297,907,5600,5531,5623,1588,147,6661,6688, + 6694,6667,6670,6682,6679,6685,6676,6673,6664,6691, + 1,3587,6914,6623,3588,6914,591,3192,411,196, + 3592,138,5577,5554,5669,5646,6933,6914,5508,1427, + 1863,1998,6935,1930,5829,1996,6936,6934,1857,6930, + 6931,6932,6914,124,3446,6914,461,123,1488,6905, + 6914,4116,6914,6914,39,39,39,6484,6481,6073, + 907,5600,5531,5623,1588,6709,1860,7213,7211,7220, + 7219,7215,7216,7214,7217,7218,7221,7212,1,463, + 3589,2077,196,7414,7420,7418,4089,1115,6914,122, + 5577,5554,5669,5646,6933,6914,5508,1662,1863,1998, + 6935,1930,5829,1996,6936,6934,1857,6930,6931,6932, + 3591,6914,7412,7413,7443,7444,1488,3508,7421,1, + 6914,2834,4530,4861,4923,6712,2406,573,6817,4423, + 4490,3592,7423,4423,4490,43,6706,6706,6914,625, + 6914,4358,2349,7424,1385,1425,7445,3481,7422,7208, + 7287,7288,7202,7209,7205,7181,7207,7206,7203,7204, + 7182,584,6914,6914,7434,7433,2900,7439,7440,7446, + 7437,7438,7417,7419,7441,4423,4490,7415,7416,7442, + 1445,7427,7428,7429,7425,7426,7435,7436,7431,7430, + 7432,6820,6703,6914,1427,7447,39,6484,6481,6073, + 907,5600,5531,5623,1588,6918,1860,7213,7211,7220, + 7219,7215,7216,7214,7217,7218,7221,7212,6914,45, + 6835,6835,6914,10808,10808,6914,11354,9100,6914,6914, + 5577,5554,5669,5646,6933,6914,5508,432,1863,1998, + 6935,1930,5829,1996,6936,6934,1857,6930,6931,6932, + 1,6497,6493,6796,6490,6745,6757,6748,6501,6914, + 6661,6688,6694,6667,6670,6682,6679,6685,6676,6673, + 6664,6691,4116,48,1,6914,6832,6929,136,6950, + 6914,547,6950,4324,6742,6739,6754,6751,6769,1143, + 6736,1427,6784,6793,6763,6787,6733,6790,6760,6766, + 6781,6778,6775,6772,1,48,6914,4089,1115,6928, + 1734,6914,6914,6920,6917,4369,6799,6799,39,6484, + 6481,6073,907,5600,5531,5623,1588,6929,1860,7213, + 7211,7220,7219,7215,7216,7214,7217,7218,7221,7212, + 1,6914,6914,4530,4533,4558,4985,1,6914,377, + 2947,2037,5577,5554,5669,5646,6933,6715,5508,6928, + 1863,1998,6935,1930,5829,1996,6936,6934,1857,6930, + 6931,6932,6914,3600,6914,4361,6919,4056,1488,39, + 6484,6481,6073,907,5600,5531,5623,1588,6718,1860, + 7213,7211,7220,7219,7215,7216,7214,7217,7218,7221, + 7212,1445,1786,6914,3220,377,4757,227,377,128, + 6914,6914,377,5577,5554,5669,5646,6933,6914,5508, + 6914,1863,1998,6935,1930,5829,1996,6936,6934,1857, + 6930,6931,6932,6914,100,103,4738,595,5116,6914, + 2394,39,6484,6481,3297,907,5600,5531,5623,1588, + 99,1860,7213,7211,7220,7219,7215,7216,7214,7217, + 7218,7221,7212,4272,1918,1984,6914,6914,6914,6256, + 127,37,6644,6644,6866,5577,5554,5669,5646,6933, + 6914,5508,6879,1863,1998,6935,1930,5829,1996,6936, + 6934,1857,6930,6931,6932,4620,6914,3679,4218,4191, + 6914,1488,39,6484,6481,3297,907,5600,5531,5623, + 1588,3234,1860,7213,7211,7220,7219,7215,7216,7214, + 7217,7218,7221,7212,4272,6914,6914,6914,2500,6914, + 6892,6888,6914,6914,4887,6869,5577,5554,5669,5646, + 6933,1712,5508,583,1863,1998,6935,1930,5829,1996, + 6936,6934,1857,6930,6931,6932,6914,6914,6914,4218, + 4191,1747,1488,39,6484,6481,6073,907,5600,5531, + 5623,1588,6914,1860,7213,7211,7220,7219,7215,7216, + 7214,7217,7218,7221,7212,75,6950,2885,3374,6914, + 6914,313,1,73,6908,6914,2,5577,5554,5669, + 5646,6933,6715,5508,6914,1863,1998,6935,1930,5829, + 1996,6936,6934,1857,6930,6931,6932,6914,6914,6914, + 6914,6976,6977,1488,39,6484,6481,6073,907,5600, + 5531,5623,1588,6718,1860,7213,7211,7220,7219,7215, + 7216,7214,7217,7218,7221,7212,4149,6902,6914,3220, + 37,6914,6914,6914,6914,6914,3592,6914,5577,5554, + 5669,5646,6933,6914,5508,6914,1863,1998,6935,1930, + 5829,1996,6936,6934,1857,6930,6931,6932,39,6484, + 6481,3297,907,5600,5531,5623,1588,6914,1860,7213, + 7211,7220,7219,7215,7216,7214,7217,7218,7221,7212, + 6914,6914,871,6914,1047,6914,6914,6914,6914,6914, + 6914,6914,5577,5554,5669,5646,6933,6914,5508,6914, + 1863,1998,6935,1930,5829,1996,6936,6934,1857,6930, + 6931,6932,39,6484,6481,3297,907,5600,5531,5623, + 1588,6914,1860,7213,7211,7220,7219,7215,7216,7214, + 7217,7218,7221,7212,6914,6914,6914,6914,6914,6914, + 6914,6914,6914,6914,6914,6914,5577,5554,5669,5646, + 6933,6914,5508,6914,1863,1998,6935,1930,5829,1996, + 6936,6934,1857,6930,6931,6932,39,6484,6481,6073, + 907,5600,5531,5623,1588,6914,1860,7213,7211,7220, + 7219,7215,7216,7214,7217,7218,7221,7212,6914,6914, + 6914,6914,6914,6914,6914,6914,6914,6914,6914,6914, + 5577,5554,5669,5646,6933,6914,5508,6914,1863,1998, + 6935,1930,5829,1996,6936,6934,1857,6930,6931,6932, + 6914,6484,6481,6914,6952,6914,6914,6914,6914,6914, + 641,7213,7211,7220,7219,7215,7216,7214,7217,7218, + 7221,7212,7208,7287,7288,7202,7209,7205,7181,7207, + 7206,7203,7204,7182,6914,6914,6914,6914,6914,6914, + 6914,7349,6914,6914,6914,6914,6914,6914,6914,275, + 6589,6585,6914,6593,6914,603,7350,6914,7351,641, + 6576,6582,6555,6558,6570,6567,6573,6564,6561,6552, + 6579,6531,6525,6522,6549,6528,6540,6519,6534,6537, + 6546,6543,6516,6914,6914,6914,6914,6914,6914,6914, + 7349,6914,6914,6914,6914,6914,6914,6914,6914,6928, + 6929,6914,6914,6914,603,7350,6914,7351,1796,7213, + 7211,7220,7219,7215,7216,7214,7217,7218,7221,7212, + 7208,7287,7288,7202,7209,7205,7181,7207,7206,7203, + 7204,7182,6914,6914,6914,6914,6914,6914,6914,7349, + 6914,6914,6914,6914,6914,6914,6914,275,6814,6811, + 6914,6914,6914,603,7350,6914,7351,1796,6576,6582, + 6555,6558,6570,6567,6573,6564,6561,6552,6579,6531, + 6525,6522,6549,6528,6540,6519,6534,6537,6546,6543, + 6516,6914,6914,6914,6914,6914,6914,6914,7349,29, + 424,424,6857,424,6857,424,6857,424,6857,6914, + 6914,6914,603,7350,6914,7351,6914,574,6914,6914, + 6914,424,424,424,424,424,424,424,424,424, + 424,424,424,6914,6914,6914,6914,6914,6857,7208, + 7287,7288,7202,7209,7205,7181,7207,7206,7203,7204, + 7182,6914,6914,6623,6914,6914,6914,6914,6914,6914, + 6857,32,425,425,6854,425,6854,425,6854,425, + 6854,6857,6914,6914,6914,6914,6914,6914,6914,6914, + 6914,6914,6914,425,425,425,425,425,425,425, + 425,425,425,425,425,6914,6914,6914,6914,6914, + 6854,6914,6914,6914,6914,6914,6914,6914,6914,6914, + 6914,6914,37,6928,6928,6928,6928,6928,6914,6928, + 6914,6914,6854,6914,575,6914,6914,6914,6914,6914, + 6914,6914,6914,6854,6928,6928,6928,6928,6928,6928, + 6928,6928,6928,6928,6928,6928,7208,7287,7288,7202, + 7209,7205,7181,7207,7206,7203,7204,7182,6914,6914, + 6914,6914,6914,6914,6914,6914,6914,6914,6914,6914, + 6914,6914,6914,6928,6914,6914,6914,6928,6914,6914, + 6928 }; }; public final static char termAction[] = TermAction.termAction; @@ -1825,61 +2199,67 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asb { public final static char asb[] = {0, - 935,1,1102,876,663,394,150,454,834,60, - 1063,778,1057,834,986,997,62,997,57,997, - 405,997,981,997,778,779,98,394,773,190, - 886,886,623,779,886,779,876,568,621,197, - 62,62,350,779,1058,550,103,59,147,60, - 778,286,779,779,148,693,413,413,978,44, - 44,776,51,53,773,779,402,550,286,286, - 883,283,550,886,886,568,886,779,237,9, - 119,1065,1065,1064,1064,62,778,779,1058,978, - 103,779,413,345,411,148,62,417,779,286, - 148,779,493,413,62,778,243,773,779,740, - 153,773,493,881,879,286,286,776,283,283, - 1058,9,119,1064,1064,1064,779,978,978,932, - 779,103,1120,60,568,338,1110,103,413,412, - 413,413,148,417,417,779,621,541,876,568, - 568,568,568,778,876,724,192,741,741,741, - 741,741,741,741,741,741,888,894,899,896, - 903,901,908,906,910,909,911,354,912,620, - 779,693,779,62,704,423,779,876,283,926, - 403,550,740,932,62,403,879,621,621,883, - 550,439,427,438,620,568,443,443,932,932, - 1064,779,237,1112,413,413,413,413,779,417, - 931,449,931,776,5,435,434,724,663,663, - 663,663,779,792,550,550,724,836,662,237, - 724,888,236,236,792,740,741,741,741,741, - 741,741,741,741,741,741,741,741,741,741, - 741,741,741,741,741,740,740,740,740,740, - 740,740,740,740,740,740,740,741,724,493, - 570,705,778,779,792,500,932,153,879,879, - 608,740,436,436,3,776,65,119,1065,119, - 619,619,932,978,1058,53,741,1120,52,561, - 413,413,553,931,932,741,779,541,550,7, - 9,550,550,621,621,621,621,148,550,741, - 572,1003,1003,778,192,283,662,740,550,1057, - 1059,1057,550,283,896,896,894,894,894,901, - 901,901,901,899,899,906,903,903,909,908, - 910,1120,911,570,704,1120,741,1120,978,703, - 876,876,876,705,876,779,361,978,978,779, - 62,550,740,153,879,878,608,740,740,7, - 427,119,663,663,978,1112,741,741,423,690, - 554,779,932,550,9,876,876,876,876,779, - 779,779,237,741,663,892,507,550,779,1059, - 237,740,695,876,695,705,1120,705,724,724, - 722,703,724,978,978,790,702,931,879,610, - 620,553,779,778,778,779,782,550,740,740, - 740,740,876,876,148,1058,550,892,776,693, - 779,1058,65,705,550,773,550,722,394,876, - 550,570,930,152,610,42,779,779,779,782, - 782,550,550,550,550,792,792,779,892,893, - 892,740,507,1061,888,693,550,550,1051,705, - 790,705,978,394,740,705,702,930,930,876, - 443,779,779,615,782,550,550,1038,892,792, - 741,283,1061,62,62,1053,740,703,792,978, - 550,10,619,615,615,893,550,283,705,550, - 978,549,1057,615,705,663 + 946,7,1159,258,563,419,53,1074,61,66, + 1120,519,330,61,997,1008,68,1008,63,1008, + 1,1008,992,1008,519,520,115,419,514,158, + 678,678,523,520,678,520,258,751,1072,9, + 68,68,273,520,331,112,165,65,987,66, + 519,277,520,520,51,212,432,432,270,260, + 260,517,267,269,514,520,427,112,277,277, + 675,376,112,678,678,751,678,520,49,861, + 181,1122,1122,1121,1121,68,519,520,331,270, + 165,520,432,595,430,51,68,633,520,277, + 51,520,1113,432,68,519,336,514,520,481, + 121,514,1113,673,671,277,277,517,376,376, + 331,861,181,1121,1121,1121,520,270,270,724, + 520,165,853,66,751,329,843,165,432,431, + 432,432,51,633,633,520,1072,564,250,258, + 751,751,751,751,519,258,160,482,482,482, + 482,482,482,482,482,482,680,686,691,688, + 465,1049,1047,1054,1052,1056,1055,1057,379,1058, + 1071,520,212,520,68,445,639,520,258,376, + 465,693,698,695,701,700,703,702,718,428, + 112,481,724,68,704,428,671,1072,1072,675, + 112,656,827,838,1071,751,55,55,724,724, + 1121,520,49,845,432,432,432,432,520,633, + 723,727,723,600,611,611,611,611,557,519, + 517,857,835,834,465,563,563,563,563,520, + 71,904,562,49,465,680,48,48,71,481, + 482,482,482,482,482,482,482,112,112,248, + 465,732,482,482,482,482,482,482,482,482, + 482,482,482,481,481,481,481,481,481,481, + 481,481,481,481,481,482,465,1113,643,446, + 519,520,71,482,482,482,482,482,482,482, + 482,482,482,481,482,737,724,121,481,481, + 481,481,481,481,481,481,481,481,481,671, + 671,645,481,836,836,855,517,753,181,1122, + 181,1070,1070,724,270,331,269,482,853,268, + 744,432,432,896,723,724,482,520,520,248, + 112,859,861,112,112,1072,1072,1072,1072,51, + 112,376,562,481,112,330,332,330,112,376, + 688,688,686,686,686,482,786,1014,1014,519, + 160,482,1047,1047,1047,691,691,1052,1049,1049, + 1055,1054,1056,853,1057,643,445,853,482,853, + 270,444,258,258,258,446,258,520,386,270, + 270,520,68,112,695,695,693,693,693,693, + 700,698,702,701,853,703,481,121,671,670, + 645,481,481,859,827,181,563,563,270,845, + 482,482,639,209,897,520,724,51,112,861, + 258,258,258,258,520,520,482,563,684,214, + 112,520,332,49,520,49,822,481,436,258, + 436,446,853,446,465,465,463,444,465,270, + 270,668,443,481,723,671,647,1071,896,520, + 519,519,520,520,660,112,481,481,481,481, + 258,258,112,684,517,212,520,331,51,331, + 753,446,112,514,112,463,419,258,112,643, + 722,120,647,593,520,520,520,660,660,112, + 112,112,112,71,71,684,685,684,481,214, + 334,680,212,520,112,112,810,446,668,446, + 270,419,481,446,443,722,722,258,55,520, + 520,652,660,112,112,684,71,482,376,334, + 797,68,68,936,481,444,71,270,112,862, + 1070,652,652,685,112,376,446,112,270,839, + 330,652,446,563 }; }; public final static char asb[] = Asb.asb; @@ -1887,119 +2267,123 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asr { public final static byte asr[] = {0, - 120,0,5,7,3,64,6,9,90,26, - 11,12,23,13,45,27,28,14,29,30, - 15,16,31,32,17,18,33,50,34,10, - 54,19,22,20,24,21,1,2,4,73, - 8,39,0,74,68,72,90,73,67,64, - 3,70,8,25,69,0,41,4,72,1, - 2,67,8,0,26,11,12,39,23,13, - 45,27,28,14,29,30,15,16,31,32, - 17,18,33,50,34,10,54,19,22,20, - 24,21,1,2,4,90,0,8,72,67, - 74,0,86,59,7,103,104,105,60,8, - 3,9,6,5,72,71,25,61,26,11, - 12,39,23,13,45,27,28,14,29,30, - 15,16,31,32,17,18,33,50,34,10, - 54,19,22,20,24,21,4,1,2,41, - 0,71,62,37,38,9,6,35,36,42, - 48,3,4,55,56,57,40,52,46,51, - 12,21,11,17,15,16,18,19,14,13, - 20,10,44,49,47,43,53,67,8,7, - 5,1,2,66,65,0,63,26,11,12, - 39,23,13,45,27,86,28,14,29,30, - 15,16,31,59,32,17,18,33,50,34, - 10,54,19,60,22,20,24,21,3,9, - 6,25,61,67,8,4,7,5,41,1, - 2,0,65,66,3,10,44,49,47,43, - 53,12,21,11,17,15,16,18,19,14, - 13,20,55,56,57,40,52,46,51,5, - 7,4,37,38,9,6,35,36,42,48, - 1,2,118,8,0,26,11,12,39,23, - 43,65,13,44,45,27,28,46,14,29, - 30,15,16,31,66,32,47,17,18,48, - 33,49,50,51,62,52,34,53,54,19, - 22,20,24,21,55,56,57,40,3,37, - 38,9,6,35,36,42,68,7,1,2, - 5,4,10,0,4,8,72,67,0,8, - 67,70,0,68,72,90,69,118,73,71, - 11,12,43,65,13,44,46,14,15,16, - 66,47,17,18,48,49,51,62,52,53, - 10,19,20,21,55,56,57,40,37,38, - 35,36,42,8,25,5,7,1,2,4, - 3,9,6,0,4,8,67,1,2,0, - 4,58,8,72,67,0,1,2,8,69, - 71,0,8,67,69,0,9,6,7,5, - 4,1,2,3,64,68,70,69,8,73, - 90,0,68,70,69,1,2,0,8,69, - 71,70,0,39,23,13,45,27,14,29, - 30,15,16,31,32,17,18,33,50,34, - 10,54,19,22,20,24,21,12,11,26, - 8,3,9,25,60,59,63,86,28,61, - 58,4,7,6,5,1,2,41,0,8, - 72,118,73,25,69,0,91,89,35,36, - 92,93,87,88,58,94,95,96,97,98, - 99,100,101,107,72,90,70,108,109,110, - 111,112,113,114,115,116,117,118,71,25, - 68,1,2,9,6,4,3,64,69,73, - 8,0,22,1,2,4,103,104,105,0, - 72,8,64,3,70,69,25,58,0,102, - 0,26,11,12,23,13,27,28,14,29, - 30,15,16,31,7,32,17,18,33,34, - 19,22,20,24,21,1,2,8,64,9, - 6,5,4,73,25,3,0,23,24,74, - 3,72,25,67,62,8,90,73,70,69, - 68,0,66,65,35,36,6,92,93,98, - 9,99,5,42,70,58,68,111,112,108, - 109,110,116,115,117,88,87,113,114,96, - 97,94,95,100,101,37,38,69,89,106, - 64,3,10,45,39,50,54,12,21,11, - 17,15,16,18,19,14,13,20,26,32, - 33,28,31,30,27,23,24,29,34,1, - 2,22,4,0,86,103,104,105,41,72, - 120,102,121,71,61,74,60,59,63,76, - 78,84,82,75,80,81,83,85,67,77, - 79,25,8,26,39,23,45,27,28,29, - 30,31,32,33,50,34,54,22,24,62, - 65,66,10,44,49,47,43,53,12,21, - 11,17,15,16,18,19,14,13,20,55, - 56,57,40,52,46,51,37,38,35,36, - 42,48,5,7,3,9,6,4,1,2, - 0,23,62,24,8,68,90,69,73,70, - 0,8,73,11,12,43,65,13,44,46, - 14,15,16,66,7,47,17,18,48,49, - 51,62,52,53,10,19,20,21,55,56, - 57,1,2,3,37,38,9,6,35,36, - 5,42,4,40,0,65,66,37,38,9, - 6,35,36,5,42,48,4,7,55,56, - 57,40,52,46,51,12,21,11,17,15, - 16,18,19,14,13,20,10,44,49,47, - 43,53,64,1,2,3,0,62,23,24, - 7,5,1,2,4,74,67,119,106,37, - 38,64,3,91,89,6,92,93,35,36, - 88,87,58,94,95,96,97,9,98,99, - 100,68,90,73,70,108,109,110,111,112, - 113,114,115,116,117,72,118,101,107,25, - 69,71,8,0,3,9,6,5,7,26, - 11,12,39,23,13,45,27,14,29,30, - 15,16,31,32,17,18,33,50,34,10, - 54,19,22,20,24,21,120,61,59,28, - 86,63,60,1,2,4,41,25,8,0, - 10,45,39,50,54,12,21,11,17,15, - 16,18,19,14,13,20,74,72,90,118, - 71,67,119,91,106,89,37,38,35,36, - 92,93,87,88,58,68,94,95,96,97, - 98,99,100,101,107,70,108,109,110,111, - 112,113,114,115,116,117,69,26,23,27, - 28,29,30,31,32,33,34,22,24,25, - 8,73,9,6,3,64,4,7,1,2, - 5,0,120,71,39,23,13,45,27,14, - 29,30,15,16,31,32,17,18,33,50, - 34,54,19,22,20,24,21,12,11,26, - 8,3,9,6,25,61,28,86,63,60, - 41,7,1,2,5,4,10,59,0,25, - 8,3,7,5,9,6,4,1,2,72, - 0 + 4,9,69,1,2,0,120,0,64,25, + 11,12,41,23,13,55,26,88,27,14, + 28,29,15,16,30,59,31,17,18,32, + 56,33,10,58,19,62,22,20,24,21, + 3,7,5,39,63,69,9,4,8,6, + 1,2,57,0,65,70,68,1,2,0, + 38,0,57,4,71,1,2,69,9,0, + 11,12,42,66,13,43,44,14,15,16, + 67,8,45,17,18,46,47,48,60,49, + 50,10,19,20,21,51,52,53,38,1, + 2,3,36,37,7,5,34,35,6,40, + 4,72,9,0,9,71,69,74,0,73, + 60,36,37,7,5,34,35,40,46,3, + 4,51,52,53,38,49,44,48,12,21, + 11,17,15,16,18,19,14,13,20,10, + 43,47,45,42,50,69,9,8,6,1, + 2,67,66,0,88,59,8,114,115,116, + 62,9,3,7,5,6,71,73,39,63, + 25,11,12,41,23,13,55,26,27,14, + 28,29,15,16,30,31,17,18,32,56, + 57,33,10,58,19,20,24,21,1,2, + 22,4,0,98,91,34,35,99,100,86, + 87,54,89,90,92,93,94,95,96,101, + 102,71,97,70,103,104,105,106,107,108, + 109,110,111,112,118,73,39,9,72,65, + 68,1,2,7,5,4,61,3,0,74, + 65,71,97,72,69,61,3,70,68,39, + 9,0,9,69,70,0,25,11,12,41, + 23,42,66,13,43,55,26,27,44,14, + 28,29,15,16,30,67,31,45,17,18, + 46,32,47,56,48,60,49,33,50,58, + 19,22,20,24,21,51,52,53,38,3, + 36,37,7,5,34,35,40,65,10,4, + 8,1,2,6,0,66,67,3,10,43, + 47,45,42,50,12,21,11,17,15,16, + 18,19,14,13,20,51,52,53,38,49, + 44,48,6,8,4,36,37,7,5,34, + 35,40,46,1,2,118,9,0,65,71, + 97,68,118,72,73,11,12,42,66,13, + 43,44,14,15,16,67,45,17,18,46, + 47,48,60,49,50,10,19,20,21,51, + 52,53,38,36,37,34,35,40,9,39, + 6,8,1,2,4,3,7,5,0,4, + 54,9,71,69,0,88,114,115,116,57, + 71,120,113,121,73,63,74,62,59,64, + 76,78,84,82,75,80,81,83,85,69, + 77,79,39,9,23,41,55,26,27,28, + 29,30,25,31,32,56,33,58,22,24, + 60,66,67,10,43,47,45,42,50,12, + 21,11,17,15,16,18,19,14,13,20, + 51,52,53,38,49,44,48,36,37,34, + 35,40,46,6,8,3,7,5,4,1, + 2,0,67,66,34,35,99,100,94,95, + 6,40,70,54,106,107,103,104,105,111, + 110,112,87,86,108,109,92,93,89,90, + 96,101,36,37,91,117,61,7,5,65, + 68,3,4,10,1,2,55,56,58,12, + 21,11,17,15,16,18,19,14,13,20, + 25,31,32,27,30,29,22,26,23,24, + 28,33,41,0,4,9,71,69,0,12, + 21,11,17,15,16,18,19,14,13,20, + 1,2,61,3,7,5,65,4,68,25, + 31,32,27,30,29,22,26,23,24,28, + 33,0,1,2,9,68,73,0,9,69, + 68,0,113,0,23,24,74,3,71,39, + 69,60,65,70,68,9,72,97,0,23, + 60,24,9,65,97,68,72,70,0,60, + 23,24,8,6,1,2,4,74,69,119, + 117,36,37,61,3,98,91,5,99,100, + 34,35,87,86,54,89,90,92,93,7, + 94,95,96,65,97,72,70,103,104,105, + 106,107,108,109,110,111,112,71,118,101, + 102,39,68,73,9,0,9,68,73,70, + 0,54,65,89,90,0,9,71,118,72, + 39,68,0,71,9,61,3,70,68,39, + 54,0,25,11,12,41,23,13,55,26, + 27,14,28,29,15,16,30,31,17,18, + 32,56,33,10,58,19,22,20,24,21, + 1,2,4,97,0,11,12,13,14,15, + 16,17,18,19,20,21,25,23,26,27, + 28,29,30,31,32,33,22,24,39,9, + 72,8,1,2,61,3,7,5,6,4, + 0,72,9,87,86,0,7,5,8,6, + 4,1,2,3,61,65,70,97,72,9, + 68,0,39,9,3,8,6,7,5,4, + 1,2,71,0,6,8,3,61,5,7, + 97,25,11,12,41,23,13,55,26,27, + 14,28,29,15,16,30,31,17,18,32, + 56,33,10,58,19,22,20,24,21,1, + 2,4,72,9,0,22,1,2,4,114, + 115,116,0,66,67,36,37,34,35,40, + 46,51,52,53,38,49,44,48,12,21, + 11,17,15,16,18,19,14,13,20,10, + 43,47,45,42,50,7,5,3,61,8, + 6,4,1,2,0,9,3,7,5,6, + 8,39,25,11,12,41,23,13,55,26, + 14,28,29,15,16,30,31,17,18,32, + 56,33,10,58,19,22,20,24,21,120, + 63,59,27,88,64,62,57,1,2,4, + 0,10,55,41,56,58,12,21,11,17, + 15,16,18,19,14,13,20,74,71,97, + 118,73,69,8,31,32,33,22,24,1, + 2,30,29,28,27,26,6,4,23,25, + 119,98,117,91,36,37,34,35,99,100, + 9,61,3,5,72,39,87,86,54,89, + 90,92,93,7,94,95,96,101,102,103, + 104,105,106,107,108,109,110,111,112,70, + 68,65,0,41,23,13,55,26,14,28, + 29,15,16,30,31,17,18,32,56,33, + 10,58,19,22,20,24,21,12,11,25, + 9,3,7,39,62,59,64,88,27,63, + 54,4,8,5,6,1,2,57,0,120, + 73,41,23,13,55,26,14,28,29,15, + 16,30,31,17,18,32,56,33,58,19, + 22,20,24,21,12,11,25,9,3,7, + 5,39,63,27,88,64,62,57,8,1, + 2,6,4,10,59,0 }; }; public final static byte asr[] = Asr.asr; @@ -2007,61 +2391,67 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasb { public final static char nasb[] = {0, - 236,12,75,12,5,258,12,142,12,31, - 142,95,95,12,251,252,165,252,67,252, - 113,252,245,12,10,204,23,126,18,200, - 12,12,188,233,12,204,12,12,12,164, - 165,32,12,207,207,218,23,167,95,81, - 95,23,204,11,12,12,23,122,184,34, - 34,131,77,12,196,204,12,218,23,23, - 44,102,218,12,12,12,12,11,49,23, - 23,142,142,23,23,165,95,55,200,184, - 265,168,57,57,12,207,165,23,207,59, - 51,168,40,122,116,36,97,196,204,106, - 89,18,213,133,133,59,59,131,102,102, - 200,275,275,236,236,23,207,184,184,73, - 204,184,12,54,12,75,257,265,57,57, - 23,23,51,23,234,11,12,157,12,12, - 12,12,12,95,12,278,204,91,91,229, - 91,91,91,91,91,91,12,12,12,12, - 12,12,12,12,12,12,12,91,12,12, - 168,12,11,116,72,12,207,12,102,12, - 133,218,91,23,165,12,23,12,12,222, - 218,12,16,12,12,12,135,135,73,73, - 236,55,49,126,23,23,13,13,168,234, - 109,12,12,131,156,34,34,278,64,64, - 64,64,204,226,218,218,1,91,86,49, - 278,12,25,25,226,175,91,91,91,91, - 91,91,91,91,91,91,91,91,91,91, - 91,91,91,91,91,91,91,91,91,91, - 91,91,91,91,91,91,175,91,59,40, - 23,161,36,11,226,12,73,23,133,111, - 23,91,12,12,15,131,275,275,142,23, - 12,12,73,184,200,184,91,12,104,12, - 13,13,152,109,73,91,234,220,218,272, - 23,218,218,12,12,12,12,48,218,91, - 12,12,12,10,204,102,64,106,218,199, - 204,199,218,102,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12, - 12,12,12,84,171,12,91,12,184,12, - 12,12,12,172,12,234,182,184,184,234, - 119,218,91,89,23,111,111,91,91,272, - 194,275,64,64,184,18,91,91,12,95, - 124,207,73,218,275,12,12,12,12,168, - 11,204,49,91,64,23,149,218,204,210, - 49,91,192,12,12,172,12,172,282,282, - 137,12,282,184,184,12,23,73,111,23, - 12,241,207,95,95,11,23,218,175,175, - 175,175,12,12,47,168,218,186,222,12, - 233,168,64,172,218,18,218,178,23,12, - 218,84,79,88,70,12,11,207,207,111, - 23,218,218,218,218,226,226,168,23,147, - 12,175,222,211,12,12,218,218,23,172, - 12,172,184,18,175,172,192,79,12,12, - 135,11,11,23,111,218,218,12,186,226, - 91,102,211,119,119,16,91,12,254,184, - 218,216,12,70,23,147,218,102,172,218, - 184,218,199,70,172,64 + 270,12,41,12,5,166,12,284,12,117, + 284,80,80,12,281,282,221,282,49,282, + 13,282,275,12,10,173,188,156,183,240, + 12,12,113,267,12,173,12,12,12,220, + 221,118,12,227,227,97,188,43,80,70, + 80,188,173,11,12,12,188,68,178,85, + 85,161,16,12,236,173,12,97,188,188, + 34,104,97,12,12,12,12,11,22,188, + 188,284,284,188,188,221,80,135,240,178, + 297,44,91,91,12,227,221,188,227,24, + 123,44,93,68,120,64,99,236,173,61, + 74,183,131,163,163,24,24,161,104,104, + 240,208,208,270,270,188,227,178,178,109, + 173,178,12,134,12,41,165,297,91,91, + 188,188,123,188,268,11,12,253,212,12, + 12,12,12,12,80,12,173,76,76,263, + 76,76,76,76,76,76,12,12,12,12, + 143,12,12,12,12,12,12,12,76,12, + 12,44,12,11,120,108,12,227,12,104, + 148,12,12,12,12,12,12,12,12,163, + 97,76,188,221,12,12,188,12,12,192, + 97,12,181,12,12,12,32,32,109,109, + 270,135,22,156,188,188,39,39,44,268, + 37,12,12,281,282,282,282,282,289,10, + 161,211,85,85,148,305,305,305,305,173, + 58,76,89,22,148,12,52,52,58,149, + 76,76,76,76,76,76,76,97,97,212, + 1,12,76,76,76,76,76,76,76,76, + 76,76,76,76,76,76,76,76,76,76, + 76,76,76,76,149,76,24,93,188,199, + 64,11,58,76,76,76,76,76,76,76, + 76,76,76,149,76,12,109,188,76,76, + 76,76,76,76,76,76,76,76,76,163, + 141,188,76,12,12,180,161,208,208,284, + 188,12,12,109,178,240,178,76,12,137, + 12,39,39,230,37,109,76,268,173,190, + 97,205,188,97,97,12,12,12,12,21, + 97,104,305,61,97,239,173,239,97,104, + 12,12,12,12,12,76,12,12,12,10, + 173,76,12,12,12,12,12,12,12,12, + 12,12,12,12,12,47,216,12,76,12, + 178,12,12,12,12,217,12,268,176,178, + 178,268,126,97,12,12,12,12,12,12, + 12,12,12,12,12,12,76,74,188,141, + 141,76,76,205,234,208,305,305,178,183, + 76,76,12,80,139,227,109,123,97,208, + 12,12,12,12,44,11,76,305,188,82, + 97,173,260,22,173,22,97,76,111,12, + 12,217,12,217,223,223,244,12,223,178, + 178,12,188,76,109,141,188,12,152,227, + 80,80,11,44,188,97,149,149,149,149, + 12,12,97,18,192,12,267,44,20,44, + 305,217,97,183,97,249,188,12,97,47, + 106,73,87,12,11,227,227,141,188,97, + 97,97,97,58,58,188,129,12,149,192, + 261,12,12,44,97,97,188,217,12,217, + 178,183,149,217,111,106,12,12,32,11, + 11,188,141,97,97,18,58,76,104,261, + 12,126,126,181,76,12,196,178,97,304, + 12,87,188,129,97,104,217,97,178,97, + 239,87,217,305 }; }; public final static char nasb[] = Nasb.nasb; @@ -2069,35 +2459,37 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasr { public final static char nasr[] = {0, - 3,13,10,9,153,151,120,150,149,5, - 2,0,111,0,33,94,93,65,5,2, - 9,10,4,0,5,2,9,10,140,0, - 1,122,0,79,0,174,5,173,0,66, - 139,138,0,4,197,0,2,137,66,0, - 2,66,0,122,105,0,110,0,5,10, - 9,2,13,4,46,0,154,190,0,126, - 0,4,68,0,158,0,186,0,164,0, - 43,1,0,163,0,177,0,68,130,43, - 13,2,9,10,5,0,13,2,9,10, - 5,82,0,193,0,4,31,0,155,0, - 63,0,154,185,0,43,162,0,43,57, - 0,161,0,195,0,4,10,9,2,65, - 5,89,55,0,109,0,40,4,23,183, - 0,4,49,80,83,0,142,0,4,179, - 0,5,101,194,0,33,93,94,4,0, - 49,40,181,4,43,0,45,2,3,0, - 68,43,49,69,4,40,0,46,4,182, - 0,4,40,39,0,144,0,4,46,198, - 0,114,0,94,93,55,65,59,5,10, - 9,2,0,2,45,0,2,58,0,2, - 115,0,66,55,0,46,4,33,0,94, - 93,55,5,59,0,4,96,0,5,10, - 9,13,3,1,0,104,80,49,4,0, - 5,101,170,0,2,5,120,116,117,118, - 13,86,0,4,180,0,39,5,2,9, - 10,4,160,0,4,49,80,101,47,5, - 0,55,5,89,23,4,0,4,46,40, - 0,4,46,103,0 + 3,13,10,9,137,136,113,135,134,4, + 2,0,166,200,0,201,0,161,0,2, + 154,75,0,4,10,9,2,13,129,5, + 0,123,0,5,212,0,167,0,125,0, + 170,0,44,2,3,0,175,0,166,205, + 0,4,2,9,10,157,0,5,105,0, + 5,28,0,186,4,185,0,173,0,42, + 1,0,81,148,42,13,2,9,10,4, + 0,5,194,0,80,0,144,0,192,0, + 124,0,75,156,155,0,30,0,13,2, + 9,10,4,94,0,176,0,5,81,0, + 131,0,5,52,213,0,1,140,0,42, + 174,0,2,75,0,42,66,0,159,0, + 75,59,0,140,119,0,208,0,210,0, + 51,0,13,2,9,10,4,52,5,37, + 0,4,115,182,0,5,10,9,2,78, + 4,98,59,0,39,4,2,9,10,5, + 172,0,2,44,0,5,37,39,0,30, + 101,100,78,4,2,9,10,5,0,101, + 100,59,4,68,0,5,195,0,5,49, + 42,37,196,0,59,4,98,27,5,0, + 30,100,101,5,0,81,37,49,82,5, + 42,0,5,52,117,0,2,67,0,4, + 115,209,0,101,100,59,78,68,4,10, + 9,2,0,37,5,27,198,0,52,5, + 197,0,137,214,136,113,135,134,0,2, + 132,0,4,10,9,13,3,1,0,118, + 92,49,5,0,2,4,113,110,111,112, + 13,69,0,5,49,92,95,0,113,69, + 13,110,111,112,190,0,5,49,92,115, + 47,4,0,30,5,52,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2105,18 +2497,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TerminalIndex { public final static char terminalIndex[] = {0, - 113,114,2,31,13,10,79,115,9,100, + 113,114,2,31,10,13,9,79,115,100, 48,52,60,68,74,75,86,87,102,105, - 107,104,54,106,120,47,64,66,70,73, - 76,83,89,98,11,12,7,8,53,112, - 93,14,55,61,63,67,84,88,90,91, - 94,97,99,101,109,110,111,19,77,103, - 122,95,46,1,58,78,121,20,44,33, - 119,30,118,96,108,49,50,56,57,59, - 69,71,72,85,92,65,17,18,6,32, - 4,15,16,21,22,23,24,25,26,27, - 28,51,80,81,82,5,29,34,35,36, - 37,38,39,40,41,42,43,117,3,123, + 107,104,54,106,47,64,66,70,73,76, + 83,89,98,11,12,7,8,112,120,14, + 53,55,61,67,84,88,90,94,97,99, + 109,110,111,19,63,91,93,101,77,95, + 1,103,122,46,20,58,78,44,121,33, + 30,118,119,96,108,49,50,56,57,59, + 69,71,72,85,92,17,18,65,21,22, + 6,23,24,25,26,27,32,4,15,16, + 28,29,34,35,36,37,38,39,40,41, + 42,43,51,80,81,82,5,117,3,123, 62,116 }; }; @@ -2125,27 +2517,29 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 129,134,135,0,0,133,0,0,228,234, + 129,134,135,0,0,133,0,0,236,242, 132,0,142,0,131,0,0,141,147,0, - 0,148,179,157,158,159,160,161,162,163, - 150,164,125,165,140,166,167,0,127,130, - 168,0,128,137,136,151,176,0,0,0, - 0,0,0,0,0,144,171,0,154,0, - 203,0,186,200,204,0,0,126,170,0, - 0,0,0,0,0,0,0,0,205,0, - 174,124,177,0,0,185,0,0,201,211, - 156,207,208,209,0,0,145,0,0,206, - 219,0,173,178,195,0,0,210,0,0, - 0,0,239,240,146,188,189,190,191,192, - 194,0,197,0,198,0,213,216,0,0, - 218,0,237,0,238,0,0,138,139,143, - 0,0,153,155,0,169,0,180,181,182, - 183,184,187,0,0,0,193,0,196,202, - 0,214,215,0,0,220,223,0,225,227, - 0,231,232,233,236,0,0,149,152,0, - 172,0,175,0,0,199,212,217,0,0, - 221,222,224,226,0,229,230,235,241,242, - 0,0,0 + 0,148,157,158,159,160,187,150,0,125, + 161,140,162,163,164,165,130,166,127,167, + 0,128,137,136,169,168,184,0,0,170, + 194,151,171,0,0,0,0,0,0,172, + 173,174,175,0,176,179,0,154,193,0, + 0,0,211,0,0,144,208,212,0,213, + 126,178,0,0,0,0,0,0,0,0, + 0,0,182,124,185,0,0,209,215,216, + 217,0,219,156,0,145,0,0,214,196, + 197,198,200,226,227,0,181,186,203,0, + 0,218,0,0,0,0,247,0,250,0, + 251,146,188,189,190,191,195,199,202,0, + 205,0,206,0,221,224,0,0,0,245, + 0,246,0,0,138,139,143,0,0,153, + 155,0,177,0,192,0,0,0,201,0, + 204,210,0,222,223,0,0,228,231,0, + 233,235,0,239,240,241,244,0,0,248, + 0,0,149,152,0,180,0,183,0,0, + 207,220,225,0,0,229,230,232,234,0, + 237,238,243,249,252,253,0,0,0,0, + 0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2153,18 +2547,19 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopePrefix { public final static char scopePrefix[] = { - 159,311,589,608,304,319,540,556,567,578, - 372,267,281,298,333,42,292,392,430,167, - 597,483,20,51,71,80,85,90,130,195, - 326,341,346,144,273,287,511,27,144,382, - 346,616,27,217,246,1,14,61,76,106, - 351,361,365,448,476,505,532,536,626,630, - 634,97,7,97,410,426,439,460,524,116, - 116,232,439,547,563,574,585,207,494,56, - 56,156,222,225,56,241,262,225,225,56, - 369,473,480,156,56,649,110,355,414,454, - 467,56,355,401,177,104,452,638,645,638, - 645,65,420,137,104,104,251 + 172,324,608,627,317,332,559,575,586,597, + 372,280,294,311,344,55,305,392,430,180, + 616,502,20,33,64,84,93,98,103,143, + 208,339,350,20,467,157,286,300,530,40, + 157,382,20,635,40,230,259,1,14,27, + 74,89,119,27,361,365,448,495,524,551, + 555,645,649,653,110,7,110,410,426,439, + 460,479,543,129,129,245,439,566,582,593, + 604,220,513,69,69,169,235,238,69,254, + 275,238,238,69,369,492,499,169,69,668, + 123,355,414,454,486,472,69,355,401,190, + 117,452,657,664,657,664,78,420,150,117, + 117,264 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2172,18 +2567,19 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,135,5,5,135,135,5,5,5,5, - 379,135,95,135,339,48,278,398,436,173, - 67,489,25,25,25,59,59,95,135,200, - 331,331,339,149,278,101,516,38,152,387, - 603,621,32,211,211,5,18,5,59,95, - 331,95,95,135,244,5,5,5,5,5, - 244,647,11,101,379,379,379,464,516,120, - 125,236,443,551,551,551,551,211,498,59, - 59,5,5,228,230,244,5,265,265,230, - 95,5,244,5,509,5,113,358,417,457, - 470,528,519,404,180,95,95,640,640,642, - 642,67,422,139,202,187,253 + 18,148,5,5,148,148,5,5,5,5, + 379,148,108,148,25,61,291,398,436,186, + 80,508,25,38,38,38,72,72,108,148, + 213,31,31,25,5,162,291,114,535,51, + 165,387,622,640,45,224,224,5,18,31, + 5,72,108,31,108,108,148,257,5,5, + 5,5,5,257,666,11,114,379,379,379, + 464,483,535,133,138,249,443,570,570,570, + 570,224,517,72,72,5,5,241,243,257, + 5,278,278,243,108,5,257,5,528,5, + 126,358,417,457,489,475,547,538,404,193, + 108,108,659,659,661,661,80,422,152,215, + 200,266 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2191,18 +2587,19 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 47,118,18,18,78,118,18,18,18,18, - 72,85,48,78,117,76,53,72,71,47, - 18,20,3,7,8,170,170,166,116,47, - 117,117,119,129,54,48,140,134,129,72, - 18,18,134,95,60,136,75,173,170,166, - 119,184,51,57,144,19,18,18,18,18, - 18,12,114,166,72,71,71,38,140,131, - 131,59,71,18,18,18,18,95,20,174, - 170,186,93,100,62,79,61,160,81,119, - 73,145,144,177,140,17,166,119,103,70, - 22,140,140,72,47,166,67,138,45,138, - 45,173,103,116,47,47,60 + 47,112,18,18,91,112,18,18,18,18, + 85,97,48,91,111,89,57,85,84,47, + 18,20,190,3,7,8,182,182,178,110, + 47,111,111,138,45,147,58,48,157,151, + 147,85,18,18,151,102,72,153,88,190, + 185,182,178,138,199,55,66,161,19,18, + 18,18,18,18,12,131,178,85,84,84, + 64,41,157,114,114,68,84,18,18,18, + 18,102,20,186,182,201,100,109,74,80, + 73,172,93,138,86,162,161,192,157,17, + 178,138,117,83,22,45,157,157,85,47, + 178,79,155,44,155,44,185,117,110,47, + 47,72 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2210,18 +2607,19 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLa { public final static byte scopeLa[] = { - 102,71,73,73,71,71,73,73,73,73, - 73,71,25,71,1,68,1,73,121,67, - 3,73,68,68,68,1,1,25,71,67, - 1,1,1,71,1,1,4,68,69,25, - 1,1,68,73,73,73,102,73,1,25, - 1,25,25,71,118,73,73,73,73,73, - 118,1,73,1,73,73,73,72,4,1, - 1,6,73,68,68,68,68,73,3,1, - 1,73,73,3,1,118,73,1,1,1, - 25,73,118,73,5,73,1,41,70,72, - 73,1,41,75,74,25,25,4,4,4, - 4,3,1,67,1,1,3 + 113,73,72,72,73,73,72,72,72,72, + 72,73,39,73,1,65,1,72,121,69, + 3,72,1,65,65,65,1,1,39,73, + 69,1,1,1,72,73,1,1,4,65, + 68,39,1,1,65,72,72,72,113,1, + 72,1,39,1,39,39,73,118,72,72, + 72,72,72,118,1,72,1,72,72,72, + 71,71,4,1,1,5,72,65,65,65, + 65,72,3,1,1,72,72,3,1,118, + 72,1,1,1,39,72,118,72,6,72, + 1,57,70,71,72,65,1,57,75,74, + 39,39,4,4,4,4,3,1,69,1, + 1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2229,18 +2627,19 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeStateSet { public final static char scopeStateSet[] = { - 284,280,213,213,307,280,213,213,213,213, - 295,309,284,307,280,307,286,295,295,284, - 213,213,145,189,189,21,21,69,280,284, - 280,280,280,276,286,284,37,42,276,295, - 213,213,42,78,126,4,295,46,21,69, - 280,35,286,49,8,213,213,213,213,213, - 213,193,16,69,295,295,295,245,37,280, - 280,86,295,213,213,213,213,78,213,46, - 21,72,78,80,126,74,126,142,131,280, - 295,1,8,40,37,213,69,280,11,295, - 214,37,37,295,284,69,24,66,102,66, - 102,46,11,280,284,284,126 + 342,336,245,245,365,336,245,245,245,245, + 353,367,342,365,336,365,344,353,353,342, + 245,245,42,175,221,221,21,21,97,336, + 342,336,336,338,72,332,344,342,37,45, + 332,353,245,245,45,106,156,4,353,42, + 49,21,97,338,35,344,52,8,245,245, + 245,245,245,245,225,16,97,353,353,353, + 80,305,37,336,336,115,353,245,245,245, + 245,106,245,49,21,100,106,108,156,102, + 156,172,161,338,353,1,8,40,37,245, + 97,338,11,353,246,72,37,37,353,342, + 97,24,69,131,69,131,49,11,336,342, + 342,156 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2248,72 +2647,73 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 322,3,62,0,125,0,321,3,102,0, - 125,171,0,126,179,74,0,215,0,254, - 126,58,124,0,20,0,297,126,58,41, - 0,20,53,0,33,131,0,20,53,0, - 0,297,126,58,41,202,0,20,177,0, - 254,126,58,132,0,180,127,0,140,0, - 218,3,296,0,296,0,2,0,125,0, - 254,126,58,131,0,180,127,223,0,180, - 127,22,223,0,180,127,317,22,0,128, - 188,167,127,0,127,0,188,167,127,0, - 133,127,0,171,0,313,126,171,0,126, - 171,0,221,127,0,167,312,242,0,135, - 0,0,0,0,134,0,0,0,0,311, - 126,165,253,0,126,0,253,0,128,0, - 0,126,0,310,126,165,252,0,126,0, - 0,44,126,0,0,153,3,0,126,284, - 283,126,74,282,171,0,283,126,74,282, - 171,0,214,0,215,0,282,171,0,96, - 0,0,214,0,215,0,202,96,0,0, - 214,0,215,0,283,126,282,171,0,214, - 0,202,0,0,214,0,228,126,3,0, - 125,0,0,0,0,0,228,126,3,215, - 0,222,3,0,211,126,0,207,0,145, - 0,177,167,127,0,10,0,0,0,0, - 213,64,0,124,0,228,126,3,183,0, - 183,0,2,0,0,125,0,0,0,0, - 0,203,3,0,200,0,224,126,165,40, - 28,0,180,127,59,60,0,195,127,0, - 128,180,127,280,60,0,180,127,280,60, - 0,180,127,70,123,59,0,224,126,165, - 244,59,0,224,126,165,244,227,59,0, - 277,278,126,165,123,307,45,0,277,278, - 126,165,307,45,0,180,127,276,45,0, - 134,0,188,180,127,276,242,0,135,0, - 180,127,276,242,0,188,167,127,10,0, - 167,127,10,0,167,127,0,93,135,0, - 269,126,145,0,269,126,171,0,162,84, - 0,302,161,304,305,3,81,0,125,170, - 0,304,305,3,81,0,127,0,125,170, - 0,162,3,75,191,80,0,125,127,0, - 191,80,0,108,2,130,125,127,0,225, - 3,75,0,203,168,0,33,168,0,168, - 0,174,33,168,0,225,3,85,0,191, - 155,225,3,83,0,62,170,0,225,3, - 83,0,125,170,62,170,0,303,126,165, - 0,162,0,213,77,0,30,170,0,162, - 107,159,0,30,168,0,178,3,0,125, - 148,0,218,3,0,213,64,266,0,162, - 64,0,178,3,299,66,127,0,125,0, - 0,0,0,299,66,127,0,2,144,125, - 0,0,0,0,178,3,48,0,146,0, - 125,41,167,127,0,31,146,0,93,135, - 31,146,0,219,180,127,0,145,31,146, - 0,178,3,53,0,162,3,53,0,162, - 3,68,178,58,43,0,178,58,43,0, - 20,2,130,125,0,162,3,68,178,58, - 47,0,178,58,47,0,162,3,68,178, - 58,49,0,178,58,49,0,162,3,68, - 178,58,44,0,178,58,44,0,218,3, - 125,188,167,127,10,0,125,188,167,127, - 10,0,135,2,0,125,0,218,3,124, - 259,167,127,10,0,259,167,127,10,0, - 134,2,0,125,0,218,3,135,0,218, - 3,140,0,162,64,140,0,261,0,31, - 0,31,138,0,166,0,133,0,162,3, - 0 + 338,3,60,0,125,0,337,3,113,0, + 125,179,0,127,188,74,0,223,0,197, + 166,126,10,0,135,0,166,126,10,0, + 134,0,271,127,54,124,0,20,0,309, + 127,54,57,0,20,53,0,33,131,0, + 20,53,0,0,309,127,54,57,214,0, + 20,185,0,271,127,54,132,0,189,126, + 0,140,0,227,3,308,0,308,0,2, + 0,125,0,271,127,54,131,0,189,126, + 237,0,189,126,22,237,0,189,126,332, + 22,0,128,197,166,126,0,127,0,197, + 166,126,0,133,127,0,171,0,328,127, + 171,0,127,171,0,229,127,0,166,327, + 235,0,135,0,0,0,0,134,0,0, + 0,0,326,127,164,236,0,126,0,236, + 0,128,0,0,126,0,325,127,164,270, + 0,126,0,0,44,126,0,0,150,3, + 0,127,296,295,127,74,294,171,0,295, + 127,74,294,171,0,222,0,223,0,294, + 171,0,96,0,0,222,0,223,0,210, + 96,0,0,222,0,223,0,295,127,294, + 171,0,222,0,210,0,0,222,0,242, + 127,3,0,125,0,0,0,0,0,242, + 127,3,222,0,231,3,0,220,127,0, + 215,0,145,0,181,166,126,0,10,0, + 0,0,0,226,61,0,124,0,242,127, + 3,195,0,195,0,2,0,0,125,0, + 0,0,0,0,215,3,0,208,0,238, + 127,164,38,27,0,189,126,59,62,0, + 203,127,0,128,189,126,292,62,0,189, + 126,292,62,0,189,126,70,123,59,0, + 238,127,164,262,59,0,238,127,164,262, + 241,59,0,289,290,127,164,123,322,55, + 0,289,290,127,164,322,55,0,189,126, + 288,55,0,197,189,126,288,235,0,189, + 126,288,235,0,166,126,0,93,135,0, + 286,127,149,0,286,127,171,0,159,84, + 0,317,161,319,320,3,81,0,125,178, + 0,319,320,3,81,0,127,0,125,178, + 0,159,3,75,204,80,0,125,127,0, + 204,80,0,108,2,130,125,127,0,239, + 3,75,0,215,174,0,33,168,0,174, + 0,182,33,168,0,239,3,85,0,204, + 152,239,3,83,0,62,178,0,239,3, + 83,0,125,178,62,178,0,318,127,164, + 0,159,0,226,77,0,30,178,0,159, + 102,185,0,30,176,0,148,65,167,3, + 0,167,3,0,20,160,125,0,159,102, + 162,0,30,168,0,198,3,0,125,148, + 0,227,3,0,226,61,283,0,159,61, + 0,198,3,314,67,126,0,125,0,0, + 0,0,314,67,126,0,2,144,125,0, + 0,0,0,198,3,46,0,146,0,125, + 57,166,126,0,31,146,0,93,135,31, + 146,0,228,189,126,0,145,31,146,0, + 198,3,50,0,159,3,50,0,159,3, + 65,198,54,42,0,198,54,42,0,20, + 2,130,125,0,159,3,65,198,54,45, + 0,198,54,45,0,159,3,65,198,54, + 47,0,198,54,47,0,159,3,65,198, + 54,43,0,198,54,43,0,227,3,125, + 197,166,126,10,0,125,197,166,126,10, + 0,135,2,0,125,0,227,3,124,276, + 166,126,10,0,276,166,126,10,0,134, + 2,0,125,0,227,3,135,0,227,3, + 140,0,159,61,140,0,278,0,31,0, + 31,138,0,165,0,133,0,159,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2321,38 +2721,44 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 3177,2620,0,2097,1335,749,0,3196,3123,0, - 2996,4923,4918,4893,0,3341,2196,3134,927,0, - 4228,2756,0,3664,3609,3553,3442,3387,3350,3295, - 3258,3116,2981,2917,2574,0,809,599,0,1006, - 0,4819,3483,4704,0,2494,650,0,3664,3609, - 1849,1763,3553,3442,3387,3350,3295,3258,1677,3116, - 2981,2917,1591,1505,0,3270,661,0,4613,4604, - 0,813,0,1777,1225,1198,646,3192,3374,3057, - 583,2916,2542,2755,0,1316,737,3192,4692,4683, - 3374,4148,4147,2584,3261,3634,4412,4399,3633,2416, - 0,4813,4809,4805,4912,4899,4801,4783,4717,4884, - 4710,4829,4721,4699,4349,4621,4490,4298,2535,2928, - 3586,3238,3234,3230,0,3192,4573,4412,4399,3100, - 3057,3518,4436,4100,583,2584,2542,3790,4370,2416, - 0,4573,3100,0,3140,2615,3669,4813,4809,2244, - 3567,2952,2934,2157,4805,3242,4912,4899,2851,4801, - 4783,4717,935,4884,2608,4710,1381,2530,4829,4721, - 4699,4349,2152,4621,4490,1141,3500,4298,3475,2535, - 2928,3586,3238,3234,939,3230,4272,2827,2558,2482, - 1324,632,945,3057,3518,4436,4100,3192,2458,612, - 583,809,599,2584,2542,4573,3790,4412,4399,4370, - 2416,3100,3531,4113,4077,2248,2287,2355,2322,2501, - 2429,2386,2886,2858,2799,2771,2697,2669,3765,3740, - 3205,3070,2725,4054,4031,4008,3985,3962,3939,3916, - 3890,3867,3826,3803,2031,2200,1988,2161,2113,1385, - 1336,1945,2074,1237,1098,1281,888,1902,1859,1816, - 1773,1730,1687,1644,1601,1558,1515,1472,540,1194, - 1428,830,752,1055,694,1010,966,1150,0,540, - 4272,2827,0,4613,4604,4593,4243,4204,4146,4518, - 4479,4462,2577,4136,3664,3609,3553,3442,3387,3350, - 3295,3258,3116,2981,2917,0,4613,4604,4593,4243, - 4204,4146,4518,4479,4462,2577,4136,0 + 2721,1967,0,2438,1974,1194,0,1326,640,0, + 4993,6320,6287,4751,0,2510,1533,1572,802,0, + 3481,4759,0,5371,5309,5211,5109,5047,4985,4923, + 4861,4744,4579,4517,4894,0,1047,871,0,1195, + 0,6230,5171,0,3477,3883,3385,0,2061,927, + 0,5371,5309,2123,1991,5211,5109,5047,4985,4923, + 4861,1859,4744,4579,4517,1665,1595,0,1443,1375, + 0,3344,3446,3636,3545,3918,3851,3725,3297,2834, + 934,2204,2138,2072,2006,1940,1874,1808,1742,1676, + 1610,1544,841,770,677,0,6262,6246,0,626, + 0,2944,2862,1848,1189,4805,4316,4668,4299,3393, + 4530,3945,3082,0,3327,760,4805,5056,4521,4316, + 3376,3273,3990,1039,3163,4469,3831,1473,3752,0, + 6064,6028,5905,5913,5404,5825,5379,5286,5400,5300, + 5180,5230,4612,5076,3771,5014,4956,4952,673,765, + 4869,4752,4550,4027,0,4805,4003,4469,3831,652, + 4668,5198,1904,744,4299,3990,3945,1574,1772,3752, + 0,4003,652,0,2359,2312,2547,6064,6028,1390, + 2500,2453,2406,2260,1259,5905,5913,5217,5404,2192, + 5825,5379,5286,5400,973,5300,1840,5180,3089,1437, + 5230,4612,5076,3771,1341,5014,4956,964,3187,4952, + 2782,673,765,4869,4752,4550,811,4027,5992,4351, + 2864,2234,1199,907,2037,4668,5198,1904,744,4805, + 2168,2102,4299,1047,871,3990,3945,4003,1574,4469, + 3831,1772,3752,652,5829,2834,5784,4324,5761,3407, + 3600,3508,3776,3690,4272,4245,4218,4191,3958,1264, + 934,3344,2204,2138,2072,2006,1940,1874,1808,1742, + 1676,1610,1544,3446,3636,3545,3918,3851,3725,4490, + 4423,4116,4089,1115,5484,5460,4833,4708,4681,5738, + 5715,5692,3297,5669,5646,5623,5600,5577,5554,5531, + 5508,841,770,677,2947,3234,2900,3192,3135,1395, + 1348,2787,3093,3036,2994,1299,2740,2693,2646,2599, + 2552,2505,2458,2411,2364,2317,2270,598,1217,1488, + 1445,1068,1000,1150,0,6230,5171,598,5992,4351, + 0,6262,6246,6180,5961,5885,5873,6168,6109,6086, + 6027,5807,5371,5309,5211,5109,5047,4985,4923,4861, + 4744,4579,4517,0,6262,6246,6180,5961,5885,5873, + 6168,6109,6086,6027,5807,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2360,61 +2766,67 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,298,60,63,126,171,202,41,28,59, - 226,59,280,3,270,271,253,272,242,273, - 45,274,275,124,10,127,282,126,3,4, - 132,131,7,5,124,127,183,41,58,40, - 244,227,123,127,127,40,165,312,276,307, - 276,58,127,180,167,166,74,126,269,187, - 183,126,247,281,211,127,177,203,58,58, - 168,64,3,65,66,124,123,180,167,3, - 58,68,126,165,165,244,70,180,180,155, - 126,167,231,125,124,127,123,165,127,126, - 167,41,4,126,283,72,64,211,127,3, - 70,69,167,9,6,126,126,126,64,64, - 188,126,126,126,126,165,127,227,128,311, - 127,169,223,59,41,60,171,314,125,124, - 232,232,180,165,126,180,254,168,53,43, - 47,49,44,10,135,3,127,48,42,5, - 36,35,6,9,38,37,140,146,148,147, - 150,149,152,151,156,154,158,62,159,257, - 188,261,188,283,165,295,127,296,213,159, - 167,153,126,165,252,177,177,254,254,211, - 228,229,145,230,297,41,10,39,224,224, - 126,180,167,126,232,232,126,126,188,126, - 278,123,279,126,3,216,215,3,58,58, - 58,58,127,3,178,162,126,65,66,167, - 3,125,106,119,3,64,89,91,36,35, - 93,92,6,95,94,68,58,87,88,9, - 97,96,99,98,100,117,116,115,114,113, - 112,111,110,109,108,70,107,101,69,4, - 284,126,69,180,3,268,126,165,6,126, - 155,70,222,203,3,126,69,69,68,58, - 231,231,224,227,188,313,72,291,203,124, - 126,126,72,278,277,70,69,211,222,126, - 3,178,162,178,178,178,178,167,218,155, - 135,125,124,10,127,64,299,3,178,41, - 127,41,218,162,147,147,146,146,146,149, - 149,149,149,148,148,151,150,150,154,152, - 156,162,158,126,303,79,77,1,162,8, - 85,83,81,80,75,82,84,78,76,59, - 74,218,69,126,177,185,126,70,70,126, - 211,126,70,70,128,69,72,70,316,223, - 22,127,277,228,126,68,68,68,68,188, - 259,127,167,204,3,300,168,153,127,180, - 167,72,285,102,8,72,213,72,3,3, - 3,191,3,123,162,123,179,310,126,220, - 297,69,127,22,317,180,155,228,3,3, - 3,3,125,124,167,41,178,126,126,219, - 5,41,3,72,225,168,225,305,145,75, - 225,126,190,69,126,68,180,127,127,126, - 155,162,162,162,162,3,3,188,155,263, - 266,64,181,4,123,125,90,321,168,155, - 203,155,304,126,3,155,285,190,8,62, - 39,180,180,220,126,218,218,125,126,3, - 64,162,4,155,155,126,70,191,161,269, - 162,3,231,126,220,263,218,213,121,302, - 155,322,70,126,155,69 + 0,313,62,64,127,171,214,57,27,59, + 240,59,292,3,255,256,236,257,235,258, + 55,287,259,124,10,126,294,127,3,4, + 132,131,8,6,124,126,195,57,54,38, + 262,241,123,126,126,38,164,327,288,322, + 288,54,126,189,166,165,74,127,286,200, + 195,127,265,293,220,126,181,215,54,54, + 174,61,3,66,67,124,123,189,166,3, + 54,65,127,164,164,262,70,189,189,152, + 127,166,245,125,124,126,123,164,126,127, + 166,57,4,127,295,71,61,220,126,3, + 70,68,166,7,5,127,127,127,61,61, + 197,127,127,127,127,164,126,241,128,326, + 126,169,237,59,57,62,171,329,125,124, + 246,246,189,164,127,189,271,127,251,50, + 42,45,47,43,10,135,126,46,40,6, + 35,34,5,7,37,36,140,145,147,146, + 3,167,148,175,172,183,182,184,60,185, + 274,197,278,197,295,164,307,126,308,226, + 3,148,155,153,157,156,160,158,162,166, + 150,127,164,270,162,181,181,271,271,220, + 242,243,149,244,309,57,10,41,238,238, + 127,189,166,127,246,246,127,127,197,127, + 290,123,291,255,256,257,258,336,259,10, + 127,3,223,222,3,54,54,54,54,126, + 3,66,67,166,3,125,117,119,3,61, + 91,98,35,34,100,99,5,198,159,174, + 127,167,90,89,54,86,87,7,93,92, + 95,94,96,112,111,110,109,108,107,106, + 105,104,103,70,102,101,68,4,296,127, + 68,189,3,93,92,90,89,65,54,94, + 7,96,95,102,101,285,127,164,112,111, + 110,109,108,107,106,105,104,103,70,5, + 127,152,70,231,215,3,127,68,68,65, + 54,245,245,238,241,197,328,71,303,215, + 124,127,127,71,290,289,70,68,126,220, + 231,127,3,198,159,198,198,198,198,166, + 227,61,314,3,198,57,126,57,227,159, + 146,146,145,145,145,152,135,125,124,10, + 126,65,148,148,148,147,147,172,167,167, + 182,175,183,159,184,127,318,79,77,1, + 159,9,85,83,81,80,75,82,84,78, + 76,59,74,227,153,153,148,148,148,148, + 156,155,158,157,159,160,68,127,181,173, + 127,70,70,127,220,127,70,70,128,68, + 71,70,331,237,22,126,289,166,242,127, + 65,65,65,65,197,276,216,3,315,174, + 150,126,189,166,126,166,148,71,297,113, + 9,71,226,71,3,3,3,204,3,123, + 159,123,188,71,325,127,229,309,68,126, + 22,332,189,197,152,242,3,3,3,3, + 125,124,198,127,127,228,6,57,166,57, + 3,71,239,174,239,320,149,75,239,127, + 203,68,127,65,189,126,126,127,152,159, + 159,159,159,3,3,152,280,283,61,190, + 4,123,125,197,97,337,174,152,215,152, + 319,127,3,152,297,203,9,60,41,189, + 189,229,127,227,227,127,3,61,159,4, + 125,152,152,127,70,204,161,286,159,3, + 245,127,229,280,227,226,121,317,152,338, + 70,127,152,68 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2593,6 +3005,20 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "logical_and_expression", "logical_or_expression", "assignment_expression", + "relational_expression_inTempla" + + "te", + "equality_expression_inTemplate", + "and_expression_inTemplate", + "exclusive_or_expression_inTemp" + + "late", + "inclusive_or_expression_inTemp" + + "late", + "logical_and_expression_inTempl" + + "ate", + "logical_or_expression_inTempla" + + "te", + "assignment_expression_inTempla" + + "te", "expression_list_actual", "statement", "compound_statement", @@ -2668,6 +3094,10 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "template_parameter", "template_argument_list", "template_argument", + "type_name_specifier_inTemplate", + "type_name_declaration_specifie" + + "rs_inTemplate", + "type_specifier_seq_inTemplate", "handler", "exception_declaration", "type_id_list" @@ -2677,10 +3107,10 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 61, - SCOPE_UBOUND = 116, - SCOPE_SIZE = 117, - MAX_NAME_LENGTH = 37; + ERROR_SYMBOL = 63, + SCOPE_UBOUND = 121, + SCOPE_SIZE = 122, + MAX_NAME_LENGTH = 43; public final int getErrorSymbol() { return ERROR_SYMBOL; } public final int getScopeUbound() { return SCOPE_UBOUND; } @@ -2688,20 +3118,20 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 546, + NUM_STATES = 604, NT_OFFSET = 122, - LA_STATE_OFFSET = 5935, + LA_STATE_OFFSET = 7511, MAX_LA = 2147483647, - NUM_RULES = 539, - NUM_NONTERMINALS = 203, - NUM_SYMBOLS = 325, + NUM_RULES = 597, + NUM_NONTERMINALS = 224, + NUM_SYMBOLS = 346, SEGMENT_SIZE = 8192, - START_STATE = 4136, + START_STATE = 5807, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, - ACCEPT_ACTION = 5028, - ERROR_ACTION = 5396; + ACCEPT_ACTION = 6474, + ERROR_ACTION = 6914; 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 6cbe37bc364..6d61b19dfce 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,127 +15,127 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPParsersym { public final static int - TK_asm = 63, - TK_auto = 26, + TK_asm = 64, + TK_auto = 25, TK_bool = 11, TK_break = 76, TK_case = 77, - TK_catch = 102, + TK_catch = 113, TK_char = 12, - TK_class = 39, + TK_class = 41, TK_const = 23, - TK_const_cast = 43, + TK_const_cast = 42, TK_continue = 78, TK_default = 79, - TK_delete = 65, + TK_delete = 66, TK_do = 80, TK_double = 13, - TK_dynamic_cast = 44, + TK_dynamic_cast = 43, TK_else = 121, - TK_enum = 45, - TK_explicit = 27, - TK_export = 86, - TK_extern = 28, - TK_false = 46, + TK_enum = 55, + TK_explicit = 26, + TK_export = 88, + TK_extern = 27, + TK_false = 44, TK_float = 14, TK_for = 81, - TK_friend = 29, + TK_friend = 28, TK_goto = 82, TK_if = 83, - TK_inline = 30, + TK_inline = 29, TK_int = 15, TK_long = 16, - TK_mutable = 31, + TK_mutable = 30, TK_namespace = 59, - TK_new = 66, - TK_operator = 7, - TK_private = 103, - TK_protected = 104, - TK_public = 105, - TK_register = 32, - TK_reinterpret_cast = 47, + TK_new = 67, + TK_operator = 8, + TK_private = 114, + TK_protected = 115, + TK_public = 116, + TK_register = 31, + TK_reinterpret_cast = 45, TK_return = 84, TK_short = 17, TK_signed = 18, - TK_sizeof = 48, - TK_static = 33, - TK_static_cast = 49, - TK_struct = 50, + TK_sizeof = 46, + TK_static = 32, + TK_static_cast = 47, + TK_struct = 56, TK_switch = 85, - TK_template = 41, - TK_this = 51, - TK_throw = 62, + TK_template = 57, + TK_this = 48, + TK_throw = 60, TK_try = 74, - TK_true = 52, - TK_typedef = 34, - TK_typeid = 53, + TK_true = 49, + TK_typedef = 33, + TK_typeid = 50, TK_typename = 10, - TK_union = 54, + TK_union = 58, TK_unsigned = 19, - TK_using = 60, + TK_using = 62, TK_virtual = 22, TK_void = 20, TK_volatile = 24, TK_wchar_t = 21, TK_while = 75, - TK_integer = 55, - TK_floating = 56, - TK_charconst = 57, - TK_stringlit = 40, + TK_integer = 51, + TK_floating = 52, + TK_charconst = 53, + TK_stringlit = 38, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 8, + TK_EndOfCompletion = 9, TK_Invalid = 122, - TK_LeftBracket = 64, + TK_LeftBracket = 61, TK_LeftParen = 3, TK_Dot = 119, - TK_DotStar = 91, - TK_Arrow = 106, - TK_ArrowStar = 89, - TK_PlusPlus = 37, - TK_MinusMinus = 38, - TK_And = 9, - TK_Star = 6, - TK_Plus = 35, - TK_Minus = 36, - TK_Tilde = 5, - TK_Bang = 42, - TK_Slash = 92, - TK_Percent = 93, - TK_RightShift = 87, - TK_LeftShift = 88, - TK_LT = 58, - TK_GT = 68, - TK_LE = 94, - TK_GE = 95, - TK_EQ = 96, - TK_NE = 97, - TK_Caret = 98, - TK_Or = 99, - TK_AndAnd = 100, + TK_DotStar = 98, + TK_Arrow = 117, + TK_ArrowStar = 91, + TK_PlusPlus = 36, + TK_MinusMinus = 37, + TK_And = 7, + TK_Star = 5, + TK_Plus = 34, + TK_Minus = 35, + TK_Tilde = 6, + TK_Bang = 40, + TK_Slash = 99, + TK_Percent = 100, + TK_RightShift = 86, + TK_LeftShift = 87, + TK_LT = 54, + TK_GT = 65, + TK_LE = 89, + TK_GE = 90, + TK_EQ = 92, + TK_NE = 93, + TK_Caret = 94, + TK_Or = 95, + TK_AndAnd = 96, TK_OrOr = 101, - TK_Question = 107, - TK_Colon = 72, + TK_Question = 102, + TK_Colon = 71, TK_ColonColon = 4, - TK_DotDotDot = 90, + TK_DotDotDot = 97, TK_Assign = 70, - TK_StarAssign = 108, - TK_SlashAssign = 109, - TK_PercentAssign = 110, - TK_PlusAssign = 111, - TK_MinusAssign = 112, - TK_RightShiftAssign = 113, - TK_LeftShiftAssign = 114, - TK_AndAssign = 115, - TK_CaretAssign = 116, - TK_OrAssign = 117, - TK_Comma = 69, + TK_StarAssign = 103, + TK_SlashAssign = 104, + TK_PercentAssign = 105, + TK_PlusAssign = 106, + TK_MinusAssign = 107, + TK_RightShiftAssign = 108, + TK_LeftShiftAssign = 109, + TK_AndAssign = 110, + TK_CaretAssign = 111, + TK_OrAssign = 112, + TK_Comma = 68, TK_RightBracket = 118, - TK_RightParen = 73, - TK_RightBrace = 71, - TK_SemiColon = 25, - TK_LeftBrace = 67, - TK_ERROR_TOKEN = 61, + TK_RightParen = 72, + TK_RightBrace = 73, + TK_SemiColon = 39, + TK_LeftBrace = 69, + TK_ERROR_TOKEN = 63, TK_EOF_TOKEN = 120; public final static String orderedTerminalSymbols[] = { @@ -144,11 +144,11 @@ public interface CPPParsersym { "Completion", "LeftParen", "ColonColon", - "Tilde", "Star", + "Tilde", + "And", "operator", "EndOfCompletion", - "And", "typename", "bool", "char", @@ -164,7 +164,6 @@ public interface CPPParsersym { "virtual", "const", "volatile", - "SemiColon", "auto", "explicit", "extern", @@ -178,41 +177,42 @@ public interface CPPParsersym { "Minus", "PlusPlus", "MinusMinus", - "class", "stringlit", - "template", + "SemiColon", "Bang", + "class", "const_cast", "dynamic_cast", - "enum", "false", "reinterpret_cast", "sizeof", "static_cast", - "struct", "this", "true", "typeid", - "union", "integer", "floating", "charconst", "LT", + "enum", + "struct", + "template", + "union", "namespace", + "throw", + "LeftBracket", "using", "ERROR_TOKEN", - "throw", "asm", - "LeftBracket", + "GT", "delete", "new", - "LeftBrace", - "GT", "Comma", + "LeftBrace", "Assign", - "RightBrace", "Colon", "RightParen", + "RightBrace", "try", "while", "break", @@ -225,27 +225,22 @@ public interface CPPParsersym { "if", "return", "switch", - "export", "RightShift", "LeftShift", - "ArrowStar", - "DotDotDot", - "DotStar", - "Slash", - "Percent", + "export", "LE", "GE", + "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd", + "DotDotDot", + "DotStar", + "Slash", + "Percent", "OrOr", - "catch", - "private", - "protected", - "public", - "Arrow", "Question", "StarAssign", "SlashAssign", @@ -257,6 +252,11 @@ public interface CPPParsersym { "AndAssign", "CaretAssign", "OrAssign", + "catch", + "private", + "protected", + "public", + "Arrow", "RightBracket", "Dot", "EOF_TOKEN", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java index 2065a0c2ea5..89a385389bb 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java @@ -248,7 +248,13 @@ public void setTokens(List tokens) { public CPPSizeofExpressionParser(ITokenStream stream, Map properties) { // constructor for creating secondary parser initActions(properties); tokenMap = new TokenMap(CPPSizeofExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); -} +} + + public CPPSizeofExpressionParser(ITokenStream stream, IScanner scanner, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map properties) { // constructor for creating secondary parser + initActions(properties); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + tokenMap = new TokenMap(CPPSizeofExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); +} public void ruleAction(int ruleNumber) @@ -803,1131 +809,1359 @@ public CPPSizeofExpressionParser(ITokenStream stream, Map propert } // - // Rule 139: throw_expression ::= throw + // Rule 140: relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression // - case 139: { action. consumeExpressionThrow(false); break; + case 140: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 140: throw_expression ::= throw assignment_expression + // Rule 141: relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression ) // - case 140: { action. consumeExpressionThrow(true); break; + case 141: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 143: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 142: relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression // - case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 142: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 144: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 143: relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression // - case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 145: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 145: equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate // - case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 146: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 146: equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate // - case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 147: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 148: and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate // - case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 148: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 150: exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate // - case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 149: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 152: inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate // - case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 150: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 154: logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate // - case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 151: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 156: logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate // - case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 156: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 152: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 158: conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate // - case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 158: { action. consumeExpressionConditional(); break; } // - // Rule 153: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 161: assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate // - case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 161: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 155: expression_list ::= expression_list_actual + // Rule 162: assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate // - case 155: { action. consumeExpressionList(); break; + case 162: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 159: expression_list_opt ::= $Empty + // Rule 163: assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate // - case 159: { action. consumeEmpty(); break; + case 163: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 161: expression_opt ::= $Empty + // Rule 164: assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate // - case 161: { action. consumeEmpty(); break; + case 164: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 164: constant_expression_opt ::= $Empty + // Rule 165: assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate // - case 164: { action. consumeEmpty(); break; + case 165: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 173: statement ::= ERROR_TOKEN + // Rule 166: assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate // - case 173: { action. consumeStatementProblem(); break; + case 166: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 174: labeled_statement ::= identifier : statement + // Rule 167: assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate // - case 174: { action. consumeStatementLabeled(); break; + case 167: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 175: labeled_statement ::= case constant_expression : statement + // Rule 168: assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate // - case 175: { action. consumeStatementCase(); break; + case 168: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 176: labeled_statement ::= default : statement + // Rule 169: assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate // - case 176: { action. consumeStatementDefault(); break; + case 169: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 177: expression_statement ::= expression ; + // Rule 170: assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate // - case 177: { action. consumeStatementExpression(); break; + case 170: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 178: expression_statement ::= ; + // Rule 171: assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate // - case 178: { action. consumeStatementNull(); break; + case 171: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 179: compound_statement ::= { statement_seq } + // Rule 172: throw_expression ::= throw // - case 179: { action. consumeStatementCompoundStatement(true); break; + case 172: { action. consumeExpressionThrow(false); break; } // - // Rule 180: compound_statement ::= { } + // Rule 173: throw_expression ::= throw assignment_expression // - case 180: { action. consumeStatementCompoundStatement(false); break; + case 173: { action. consumeExpressionThrow(true); break; } // - // Rule 183: selection_statement ::= if ( condition ) statement + // Rule 176: assignment_expression ::= logical_or_expression = assignment_expression // - case 183: { action. consumeStatementIf(false); break; + case 176: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 184: selection_statement ::= if ( condition ) statement else statement + // Rule 177: assignment_expression ::= logical_or_expression *= assignment_expression // - case 184: { action. consumeStatementIf(true); break; + case 177: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 185: selection_statement ::= switch ( condition ) statement + // Rule 178: assignment_expression ::= logical_or_expression /= assignment_expression // - case 185: { action. consumeStatementSwitch(); break; + case 178: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 187: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 179: assignment_expression ::= logical_or_expression %= assignment_expression // - case 187: { action. consumeConditionDeclaration(); break; + case 179: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 189: condition_opt ::= $Empty + // Rule 180: assignment_expression ::= logical_or_expression += assignment_expression // - case 189: { action. consumeEmpty(); break; + case 180: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 190: iteration_statement ::= while ( condition ) statement + // Rule 181: assignment_expression ::= logical_or_expression -= assignment_expression // - case 190: { action. consumeStatementWhileLoop(); break; + case 181: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 191: iteration_statement ::= do statement while ( expression ) ; + // Rule 182: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 191: { action. consumeStatementDoLoop(true); break; + case 182: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 192: iteration_statement ::= do statement + // Rule 183: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 192: { action. consumeStatementDoLoop(false); break; + case 183: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 193: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 184: assignment_expression ::= logical_or_expression &= assignment_expression // - case 193: { action. consumeStatementForLoop(); break; + case 184: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 195: for_init_statement ::= simple_declaration_with_declspec + // Rule 185: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 195: { action. consumeStatementDeclaration(); break; + case 185: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 196: jump_statement ::= break ; + // Rule 186: assignment_expression ::= logical_or_expression |= assignment_expression // - case 196: { action. consumeStatementBreak(); break; + case 186: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 197: jump_statement ::= continue ; + // Rule 188: expression_list ::= expression_list_actual // - case 197: { action. consumeStatementContinue(); break; + case 188: { action. consumeExpressionList(); break; } // - // Rule 198: jump_statement ::= return expression ; + // Rule 192: expression_list_opt ::= $Empty // - case 198: { action. consumeStatementReturn(true); break; + case 192: { action. consumeEmpty(); break; } // - // Rule 199: jump_statement ::= return ; + // Rule 194: expression_opt ::= $Empty // - case 199: { action. consumeStatementReturn(false); break; + case 194: { action. consumeEmpty(); break; } // - // Rule 200: jump_statement ::= goto identifier_token ; + // Rule 197: constant_expression_opt ::= $Empty // - case 200: { action. consumeStatementGoto(); break; + case 197: { action. consumeEmpty(); break; } // - // Rule 201: declaration_statement ::= block_declaration + // Rule 206: statement ::= ERROR_TOKEN // - case 201: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 206: { action. consumeStatementProblem(); break; } // - // Rule 202: declaration_statement ::= function_definition + // Rule 207: labeled_statement ::= identifier : statement // - case 202: { action. consumeStatementDeclaration(); break; + case 207: { action. consumeStatementLabeled(); break; } // - // Rule 210: declaration ::= ERROR_TOKEN + // Rule 208: labeled_statement ::= case constant_expression : statement // - case 210: { action. consumeDeclarationProblem(); break; + case 208: { action. consumeStatementCase(); break; } // - // Rule 220: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 209: labeled_statement ::= default : statement // - case 220: { action. consumeDeclarationSimple(true); break; + case 209: { action. consumeStatementDefault(); break; } // - // Rule 221: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 210: expression_statement ::= expression ; // - case 221: { action. consumeDeclarationSimple(true); break; + case 210: { action. consumeStatementExpression(); break; } // - // Rule 222: declaration_specifiers ::= simple_declaration_specifiers + // Rule 211: expression_statement ::= ; // - case 222: { action. consumeDeclarationSpecifiersSimple(); break; + case 211: { action. consumeStatementNull(); break; } // - // Rule 223: declaration_specifiers ::= class_declaration_specifiers + // Rule 212: compound_statement ::= { statement_seq } // - case 223: { action. consumeDeclarationSpecifiersComposite(); break; + case 212: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 224: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 213: compound_statement ::= { } // - case 224: { action. consumeDeclarationSpecifiersComposite(); break; + case 213: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 225: declaration_specifiers ::= enum_declaration_specifiers + // Rule 216: selection_statement ::= if ( condition ) statement // - case 225: { action. consumeDeclarationSpecifiersComposite(); break; + case 216: { action. consumeStatementIf(false); break; } // - // Rule 226: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 217: selection_statement ::= if ( condition ) statement else statement // - case 226: { action. consumeDeclarationSpecifiersTypeName(); break; + case 217: { action. consumeStatementIf(true); break; } // - // Rule 228: declaration_specifiers_opt ::= $Empty + // Rule 218: selection_statement ::= switch ( condition ) statement // - case 228: { action. consumeEmpty(); break; + case 218: { action. consumeStatementSwitch(); break; } // - // Rule 232: no_type_declaration_specifier ::= friend + // Rule 220: condition ::= type_specifier_seq declarator = assignment_expression // - case 232: { action. consumeToken(); break; + case 220: { action. consumeConditionDeclaration(); break; } // - // Rule 233: no_type_declaration_specifier ::= typedef + // Rule 222: condition_opt ::= $Empty // - case 233: { action. consumeToken(); break; + case 222: { action. consumeEmpty(); break; } // - // Rule 253: storage_class_specifier ::= auto + // Rule 223: iteration_statement ::= while ( condition ) statement // - case 253: { action. consumeToken(); break; + case 223: { action. consumeStatementWhileLoop(); break; } // - // Rule 254: storage_class_specifier ::= register + // Rule 224: iteration_statement ::= do statement while ( expression ) ; // - case 254: { action. consumeToken(); break; + case 224: { action. consumeStatementDoLoop(true); break; } // - // Rule 255: storage_class_specifier ::= static + // Rule 225: iteration_statement ::= do statement // - case 255: { action. consumeToken(); break; + case 225: { action. consumeStatementDoLoop(false); break; } // - // Rule 256: storage_class_specifier ::= extern + // Rule 226: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 256: { action. consumeToken(); break; + case 226: { action. consumeStatementForLoop(); break; } // - // Rule 257: storage_class_specifier ::= mutable + // Rule 228: for_init_statement ::= simple_declaration_with_declspec // - case 257: { action. consumeToken(); break; + case 228: { action. consumeStatementDeclaration(); break; } // - // Rule 258: function_specifier ::= inline + // Rule 229: jump_statement ::= break ; // - case 258: { action. consumeToken(); break; + case 229: { action. consumeStatementBreak(); break; } // - // Rule 259: function_specifier ::= virtual + // Rule 230: jump_statement ::= continue ; // - case 259: { action. consumeToken(); break; + case 230: { action. consumeStatementContinue(); break; } // - // Rule 260: function_specifier ::= explicit + // Rule 231: jump_statement ::= return expression ; // - case 260: { action. consumeToken(); break; + case 231: { action. consumeStatementReturn(true); break; } // - // Rule 261: simple_type_specifier ::= simple_type_specifier_token + // Rule 232: jump_statement ::= return ; // - case 261: { action. consumeToken(); break; + case 232: { action. consumeStatementReturn(false); break; } // - // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 233: jump_statement ::= goto identifier_token ; // - case 275: { action. consumeQualifiedId(false); break; + case 233: { action. consumeStatementGoto(); break; } // - // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 234: declaration_statement ::= block_declaration // - case 276: { action. consumeQualifiedId(false); break; + case 234: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 235: declaration_statement ::= function_definition // - case 277: { action. consumeQualifiedId(false); break; + case 235: { action. consumeStatementDeclaration(); break; } // - // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 243: declaration ::= ERROR_TOKEN // - case 278: { action. consumeQualifiedId(true); break; + case 243: { action. consumeDeclarationProblem(); break; } // - // Rule 280: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 253: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 280: { action. consumeTypeSpecifierElaborated(false); break; + case 253: { action. consumeDeclarationSimple(true); break; } // - // Rule 281: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 254: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 281: { action. consumeTypeSpecifierElaborated(true); break; + case 254: { action. consumeDeclarationSimple(true); break; } // - // Rule 282: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 255: declaration_specifiers ::= simple_declaration_specifiers // - case 282: { action. consumeTypeSpecifierElaborated(false); break; + case 255: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 286: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 256: declaration_specifiers ::= class_declaration_specifiers // - case 286: { action. consumeTypeSpecifierEnumeration(false); break; + case 256: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 287: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 257: declaration_specifiers ::= elaborated_declaration_specifiers // - case 287: { action. consumeTypeSpecifierEnumeration(true); break; + case 257: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 293: enumerator_definition ::= identifier_token + // Rule 258: declaration_specifiers ::= enum_declaration_specifiers // - case 293: { action. consumeEnumerator(false); break; + case 258: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 294: enumerator_definition ::= identifier_token = constant_expression + // Rule 259: declaration_specifiers ::= type_name_declaration_specifiers // - case 294: { action. consumeEnumerator(true); break; + case 259: { action. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 296: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } + // Rule 261: declaration_specifiers_opt ::= $Empty // - case 296: { action. consumeNamespaceDefinition(true); break; + case 261: { action. consumeEmpty(); break; } // - // Rule 297: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } + // Rule 265: no_type_declaration_specifier ::= friend // - case 297: { action. consumeNamespaceDefinition(false); break; + case 265: { action. consumeToken(); break; } // - // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 266: no_type_declaration_specifier ::= typedef // - case 299: { action. consumeNamespaceAliasDefinition(); break; + case 266: { action. consumeToken(); break; } // - // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 286: storage_class_specifier ::= auto // - case 300: { action. consumeUsingDeclaration(); break; + case 286: { action. consumeToken(); break; } // - // Rule 301: typename_opt ::= typename + // Rule 287: storage_class_specifier ::= register // - case 301: { action. consumePlaceHolder(); break; + case 287: { action. consumeToken(); break; } // - // Rule 302: typename_opt ::= $Empty + // Rule 288: storage_class_specifier ::= static // - case 302: { action. consumeEmpty(); break; + case 288: { action. consumeToken(); break; } // - // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 289: storage_class_specifier ::= extern // - case 303: { action. consumeUsingDirective(); break; + case 289: { action. consumeToken(); break; } // - // Rule 304: asm_definition ::= asm ( stringlit ) ; + // Rule 290: storage_class_specifier ::= mutable // - case 304: { action. consumeDeclarationASM(); break; + case 290: { action. consumeToken(); break; } // - // Rule 305: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 291: function_specifier ::= inline // - case 305: { action. consumeLinkageSpecification(); break; + case 291: { action. consumeToken(); break; } // - // Rule 306: linkage_specification ::= extern stringlit declaration + // Rule 292: function_specifier ::= virtual // - case 306: { action. consumeLinkageSpecification(); break; + case 292: { action. consumeToken(); break; } // - // Rule 311: init_declarator_complete ::= init_declarator + // Rule 293: function_specifier ::= explicit // - case 311: { action. consumeInitDeclaratorComplete(); break; + case 293: { action. consumeToken(); break; } // - // Rule 313: init_declarator ::= complete_declarator initializer + // Rule 294: simple_type_specifier ::= simple_type_specifier_token // - case 313: { action. consumeDeclaratorWithInitializer(true); break; + case 294: { action. consumeToken(); break; } // - // Rule 316: declarator ::= ptr_operator_seq direct_declarator + // Rule 308: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 316: { action. consumeDeclaratorWithPointer(true); break; + case 308: { action. consumeQualifiedId(false); break; } // - // Rule 318: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 309: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 318: { action. consumeDeclaratorWithPointer(true); break; + case 309: { action. consumeQualifiedId(false); break; } // - // Rule 322: basic_direct_declarator ::= declarator_id_name + // Rule 310: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 322: { action. consumeDirectDeclaratorIdentifier(); break; + case 310: { action. consumeQualifiedId(false); break; } // - // Rule 323: basic_direct_declarator ::= ( declarator ) + // Rule 311: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 323: { action. consumeDirectDeclaratorBracketed(); break; + case 311: { action. consumeQualifiedId(true); break; } // - // Rule 324: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 313: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 324: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 313: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 325: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 314: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 325: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 314: { action. consumeTypeSpecifierElaborated(true); break; } // - // Rule 326: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 315: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 326: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 315: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 327: array_modifier ::= [ constant_expression ] + // Rule 319: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 327: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 319: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 328: array_modifier ::= [ ] + // Rule 320: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 328: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 320: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 329: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 326: enumerator_definition ::= identifier_token // - case 329: { action. consumePointer(); break; + case 326: { action. consumeEnumerator(false); break; } // - // Rule 330: ptr_operator ::= pointer_hook & pointer_hook + // Rule 327: enumerator_definition ::= identifier_token = constant_expression // - case 330: { action. consumeReferenceOperator(); break; + case 327: { action. consumeEnumerator(true); break; } // - // Rule 331: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 329: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } // - case 331: { action. consumePointerToMember(); break; + case 329: { action. consumeNamespaceDefinition(true); break; } // - // Rule 338: cv_qualifier ::= const + // Rule 330: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } // - case 338: { action. consumeToken(); break; + case 330: { action. consumeNamespaceDefinition(false); break; } // - // Rule 339: cv_qualifier ::= volatile + // Rule 332: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 339: { action. consumeToken(); break; + case 332: { action. consumeNamespaceAliasDefinition(); break; } // - // Rule 341: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 333: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 341: { action. consumeQualifiedId(false); break; + case 333: { action. consumeUsingDeclaration(); break; } // - // Rule 342: type_id ::= type_specifier_seq + // Rule 334: typename_opt ::= typename // - case 342: { action. consumeTypeId(false); break; + case 334: { action. consumePlaceHolder(); break; } // - // Rule 343: type_id ::= type_specifier_seq abstract_declarator + // Rule 335: typename_opt ::= $Empty // - case 343: { action. consumeTypeId(true); break; + case 335: { action. consumeEmpty(); break; } // - // Rule 346: abstract_declarator ::= ptr_operator_seq + // Rule 336: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 346: { action. consumeDeclaratorWithPointer(false); break; + case 336: { action. consumeUsingDirective(); break; } // - // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 337: asm_definition ::= asm ( stringlit ) ; // - case 347: { action. consumeDeclaratorWithPointer(true); break; + case 337: { action. consumeDeclarationASM(); break; } // - // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 338: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 351: { action. consumeDirectDeclaratorBracketed(); break; + case 338: { action. consumeLinkageSpecification(); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( ) + // Rule 339: linkage_specification ::= extern stringlit declaration // - case 352: { action. consumeAbstractDeclaratorEmpty(); break; + case 339: { action. consumeLinkageSpecification(); break; } // - // Rule 353: array_direct_abstract_declarator ::= array_modifier + // Rule 344: init_declarator_complete ::= init_declarator // - case 353: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 344: { action. consumeInitDeclaratorComplete(); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 346: init_declarator ::= complete_declarator initializer // - case 354: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 346: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 349: declarator ::= ptr_operator_seq direct_declarator // - case 355: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 349: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 351: function_declarator ::= ptr_operator_seq direct_declarator // - case 356: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 351: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 355: basic_direct_declarator ::= declarator_id_name // - case 357: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; + case 355: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 356: basic_direct_declarator ::= ( declarator ) // - case 358: { action. consumePlaceHolder(); break; + case 356: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 357: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 359: { action. consumeEmpty(); break; + case 357: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 358: array_direct_declarator ::= array_direct_declarator array_modifier // - case 360: { action. consumePlaceHolder(); break; + case 358: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 366: abstract_declarator_opt ::= $Empty + // Rule 359: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 366: { action. consumeEmpty(); break; + case 359: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 360: array_modifier ::= [ constant_expression ] // - case 367: { action. consumeParameterDeclaration(); break; + case 360: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers + // Rule 361: array_modifier ::= [ ] // - case 368: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 361: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 362: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 370: { action. consumeDeclaratorWithInitializer(true); break; + case 362: { action. consumePointer(); break; } // - // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 363: ptr_operator ::= pointer_hook & pointer_hook // - case 372: { action. consumeDeclaratorWithInitializer(true); break; + case 363: { action. consumeReferenceOperator(); break; } // - // Rule 373: parameter_init_declarator ::= = parameter_initializer + // Rule 364: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 373: { action. consumeDeclaratorWithInitializer(false); break; + case 364: { action. consumePointerToMember(); break; } // - // Rule 374: parameter_initializer ::= assignment_expression + // Rule 371: cv_qualifier ::= const // - case 374: { action. consumeInitializer(); break; + case 371: { action. consumeToken(); break; } // - // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 372: cv_qualifier ::= volatile // - case 375: { action. consumeFunctionDefinition(false); break; + case 372: { action. consumeToken(); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 374: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 376: { action. consumeFunctionDefinition(true); break; + case 374: { action. consumeQualifiedId(false); break; } // - // Rule 379: initializer ::= ( expression_list ) + // Rule 375: type_id ::= type_specifier_seq // - case 379: { action. consumeInitializerConstructor(); break; + case 375: { action. consumeTypeId(false); break; } // - // Rule 380: initializer_clause ::= assignment_expression + // Rule 376: type_id ::= type_specifier_seq abstract_declarator // - case 380: { action. consumeInitializer(); break; + case 376: { action. consumeTypeId(true); break; } // - // Rule 381: initializer_clause ::= initializer_list + // Rule 379: abstract_declarator ::= ptr_operator_seq // - case 381: { action. consumeInitializer(); break; + case 379: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 382: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // Rule 380: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 382: { action. consumeInitializerList(); break; + case 380: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 383: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // Rule 384: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 383: { action. consumeInitializerList(); break; + case 384: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 384: initializer_list ::= { } + // Rule 385: basic_direct_abstract_declarator ::= ( ) // - case 384: { action. consumeInitializerList(); break; + case 385: { action. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 385: start_initializer_list ::= $Empty + // Rule 386: array_direct_abstract_declarator ::= array_modifier // - case 385: { action. initializerListStart(); break; + case 386: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 386: end_initializer_list ::= $Empty + // Rule 387: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 386: { action. initializerListEnd(); break; + case 387: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 391: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 388: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 391: { action. consumeClassSpecifier(); break; + case 388: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 392: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // Rule 389: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 392: { action. consumeClassHead(false); break; + case 389: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 393: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // Rule 390: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 393: { action. consumeClassHead(false); break; + case 390: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 394: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // Rule 391: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 394: { action. consumeClassHead(true); break; + case 391: { action. consumePlaceHolder(); break; } // - // Rule 395: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // Rule 392: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 395: { action. consumeClassHead(true); break; + case 392: { action. consumeEmpty(); break; } // - // Rule 399: identifier_name_opt ::= $Empty + // Rule 393: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 393: { action. consumePlaceHolder(); break; + } + + // + // Rule 399: abstract_declarator_opt ::= $Empty // case 399: { action. consumeEmpty(); break; + } + + // + // Rule 400: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 400: { action. consumeParameterDeclaration(); break; + } + + // + // Rule 401: parameter_declaration ::= declaration_specifiers + // + case 401: { action. consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // Rule 403: parameter_init_declarator ::= declarator = parameter_initializer + // + case 403: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 405: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 405: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 406: parameter_init_declarator ::= = parameter_initializer + // + case 406: { action. consumeDeclaratorWithInitializer(false); break; + } + + // + // Rule 407: parameter_initializer ::= assignment_expression + // + case 407: { action. consumeInitializer(); break; + } + + // + // Rule 408: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // + case 408: { action. consumeFunctionDefinition(false); break; + } + + // + // Rule 409: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // + case 409: { action. consumeFunctionDefinition(true); break; + } + + // + // Rule 412: initializer ::= ( expression_list ) + // + case 412: { action. consumeInitializerConstructor(); break; + } + + // + // Rule 413: initializer_clause ::= assignment_expression + // + case 413: { action. consumeInitializer(); break; + } + + // + // Rule 414: initializer_clause ::= initializer_list + // + case 414: { action. consumeInitializer(); break; + } + + // + // Rule 415: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // + case 415: { action. consumeInitializerList(); break; + } + + // + // Rule 416: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // + case 416: { action. consumeInitializerList(); break; + } + + // + // Rule 417: initializer_list ::= { } + // + case 417: { action. consumeInitializerList(); break; + } + + // + // Rule 418: start_initializer_list ::= $Empty + // + case 418: { action. initializerListStart(); break; + } + + // + // Rule 419: end_initializer_list ::= $Empty + // + case 419: { action. initializerListEnd(); break; + } + + // + // Rule 424: class_specifier ::= class_head { member_declaration_list_opt } + // + case 424: { action. consumeClassSpecifier(); break; + } + + // + // Rule 425: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // + case 425: { action. consumeClassHead(false); break; + } + + // + // Rule 426: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // + case 426: { action. consumeClassHead(false); break; + } + + // + // Rule 427: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // + case 427: { action. consumeClassHead(true); break; + } + + // + // Rule 428: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // + case 428: { action. consumeClassHead(true); break; + } + + // + // Rule 432: identifier_name_opt ::= $Empty + // + case 432: { action. consumeEmpty(); break; } // - // Rule 403: visibility_label ::= access_specifier_keyword : + // Rule 436: visibility_label ::= access_specifier_keyword : // - case 403: { action. consumeVisibilityLabel(); break; + case 436: { action. consumeVisibilityLabel(); break; } // - // Rule 404: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 437: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 404: { action. consumeDeclarationSimple(true); break; + case 437: { action. consumeDeclarationSimple(true); break; } // - // Rule 405: member_declaration ::= declaration_specifiers_opt ; + // Rule 438: member_declaration ::= declaration_specifiers_opt ; // - case 405: { action. consumeDeclarationSimple(false); break; + case 438: { action. consumeDeclarationSimple(false); break; } // - // Rule 408: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 441: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 408: { action. consumeMemberDeclarationQualifiedId(); break; + case 441: { action. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 414: member_declaration ::= ERROR_TOKEN + // Rule 447: member_declaration ::= ERROR_TOKEN // - case 414: { action. consumeDeclarationProblem(); break; + case 447: { action. consumeDeclarationProblem(); break; } // - // Rule 423: member_declarator ::= declarator constant_initializer + // Rule 456: member_declarator ::= declarator constant_initializer // - case 423: { action. consumeMemberDeclaratorWithInitializer(); break; + case 456: { action. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 424: member_declarator ::= bit_field_declarator : constant_expression + // Rule 457: member_declarator ::= bit_field_declarator : constant_expression // - case 424: { action. consumeBitField(true); break; + case 457: { action. consumeBitField(true); break; } // - // Rule 425: member_declarator ::= : constant_expression + // Rule 458: member_declarator ::= : constant_expression // - case 425: { action. consumeBitField(false); break; + case 458: { action. consumeBitField(false); break; } // - // Rule 426: bit_field_declarator ::= identifier_name + // Rule 459: bit_field_declarator ::= identifier_name // - case 426: { action. consumeDirectDeclaratorIdentifier(); break; + case 459: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 427: constant_initializer ::= = constant_expression + // Rule 460: constant_initializer ::= = constant_expression // - case 427: { action. consumeInitializer(); break; + case 460: { action. consumeInitializer(); break; } // - // Rule 433: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 466: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 433: { action. consumeBaseSpecifier(false, false); break; + case 466: { action. consumeBaseSpecifier(false, false); break; } // - // Rule 434: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 467: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 434: { action. consumeBaseSpecifier(true, true); break; + case 467: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 435: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 468: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 435: { action. consumeBaseSpecifier(true, true); break; + case 468: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 436: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 469: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 436: { action. consumeBaseSpecifier(true, false); break; + case 469: { action. consumeBaseSpecifier(true, false); break; } // - // Rule 437: access_specifier_keyword ::= private + // Rule 470: access_specifier_keyword ::= private // - case 437: { action. consumeToken(); break; + case 470: { action. consumeToken(); break; } // - // Rule 438: access_specifier_keyword ::= protected + // Rule 471: access_specifier_keyword ::= protected // - case 438: { action. consumeToken(); break; + case 471: { action. consumeToken(); break; } // - // Rule 439: access_specifier_keyword ::= public + // Rule 472: access_specifier_keyword ::= public // - case 439: { action. consumeToken(); break; + case 472: { action. consumeToken(); break; } // - // Rule 441: access_specifier_keyword_opt ::= $Empty + // Rule 474: access_specifier_keyword_opt ::= $Empty // - case 441: { action. consumeEmpty(); break; + case 474: { action. consumeEmpty(); break; } // - // Rule 443: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 476: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 443: { action. consumeTemplateId(); break; + case 476: { action. consumeTemplateId(); break; } // - // Rule 444: conversion_function_id ::= operator conversion_type_id + // Rule 477: conversion_function_id ::= operator conversion_type_id // - case 444: { action. consumeConversionName(); break; + case 477: { action. consumeConversionName(); break; } // - // Rule 445: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 478: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 445: { action. consumeTypeId(true); break; + case 478: { action. consumeTypeId(true); break; } // - // Rule 446: conversion_type_id ::= type_specifier_seq + // Rule 479: conversion_type_id ::= type_specifier_seq // - case 446: { action. consumeTypeId(false); break; + case 479: { action. consumeTypeId(false); break; } // - // Rule 447: conversion_declarator ::= ptr_operator_seq + // Rule 480: conversion_declarator ::= ptr_operator_seq // - case 447: { action. consumeDeclaratorWithPointer(false); break; + case 480: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 453: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 486: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 453: { action. consumeConstructorChainInitializer(); break; + case 486: { action. consumeConstructorChainInitializer(); break; } // - // Rule 454: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 487: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 454: { action. consumeQualifiedId(false); break; + case 487: { action. consumeQualifiedId(false); break; } // - // Rule 457: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 490: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 457: { action. consumeTemplateId(); break; + case 490: { action. consumeTemplateId(); break; } // - // Rule 458: operator_id_name ::= operator overloadable_operator + // Rule 491: operator_id_name ::= operator overloadable_operator // - case 458: { action. consumeOperatorName(); break; + case 491: { action. consumeOperatorName(); break; } // - // Rule 501: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 534: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 501: { action. consumeTemplateDeclaration(); break; + case 534: { action. consumeTemplateDeclaration(); break; } // - // Rule 502: export_opt ::= export + // Rule 535: export_opt ::= export // - case 502: { action. consumePlaceHolder(); break; + case 535: { action. consumePlaceHolder(); break; } // - // Rule 503: export_opt ::= $Empty + // Rule 536: export_opt ::= $Empty // - case 503: { action. consumeEmpty(); break; + case 536: { action. consumeEmpty(); break; } // - // Rule 507: template_parameter ::= parameter_declaration + // Rule 540: template_parameter ::= parameter_declaration // - case 507: { action. consumeTemplateParamterDeclaration(); break; + case 540: { action. consumeTemplateParamterDeclaration(); break; } // - // Rule 508: type_parameter ::= class identifier_name_opt + // Rule 541: type_parameter ::= class identifier_name_opt // - case 508: { action. consumeSimpleTypeTemplateParameter(false); break; + case 541: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 509: type_parameter ::= class identifier_name_opt = type_id + // Rule 542: type_parameter ::= class identifier_name_opt = type_id // - case 509: { action. consumeSimpleTypeTemplateParameter(true); break; + case 542: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 510: type_parameter ::= typename identifier_name_opt + // Rule 543: type_parameter ::= typename identifier_name_opt // - case 510: { action. consumeSimpleTypeTemplateParameter(false); break; + case 543: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 511: type_parameter ::= typename identifier_name_opt = type_id + // Rule 544: type_parameter ::= typename identifier_name_opt = type_id // - case 511: { action. consumeSimpleTypeTemplateParameter(true); break; + case 544: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 512: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 545: type_parameter ::= template < template_parameter_list > class identifier_name_opt // - case 512: { action. consumeTemplatedTypeTemplateParameter(false); break; + case 545: { action. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 513: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 546: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 513: { action. consumeTemplatedTypeTemplateParameter(true); break; + case 546: { action. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 514: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 547: template_id_name ::= identifier_name < template_argument_list_opt > // - case 514: { action. consumeTemplateId(); break; + case 547: { action. consumeTemplateId(); break; } // - // Rule 519: template_argument ::= assignment_expression + // Rule 554: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 519: { action. consumeTemplateArgumentExpression(); break; + case 554: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 520: template_argument ::= type_id + // Rule 555: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: // - case 520: { action. consumeTemplateArgumentTypeId(); break; + case 555: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 521: explicit_instantiation ::= template declaration + // Rule 556: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 521: { action. consumeTemplateExplicitInstantiation(); break; + case 556: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 522: explicit_specialization ::= template < > declaration + // Rule 557: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: // - case 522: { action. consumeTemplateExplicitSpecialization(); break; + case 557: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 523: try_block ::= try compound_statement handler_seq + // Rule 558: class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate // - case 523: { action. consumeStatementTryBlock(true); break; + case 558: { action. consumeNameWithTemplateKeyword(); break; } // - // Rule 524: try_block ::= try compound_statement + // Rule 560: nested_name_specifier_opt_inTemplate ::= $Empty // - case 524: { action. consumeStatementTryBlock(false); break; + case 560: { action. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 527: handler ::= catch ( exception_declaration ) compound_statement + // Rule 563: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name // - case 527: { action. consumeStatementCatchHandler(false); break; + case 563: { action. consumeQualifiedId(false); break; } // - // Rule 528: handler ::= catch ( ... ) compound_statement + // Rule 564: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 528: { action. consumeStatementCatchHandler(true); break; + case 564: { action. consumeQualifiedId(true); break; } // - // Rule 529: exception_declaration ::= type_specifier_seq declarator + // Rule 569: declaration_specifiers_inTemplate ::= simple_declaration_specifiers // - case 529: { action. consumeDeclarationSimple(true); break; + case 569: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 530: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 570: declaration_specifiers_inTemplate ::= class_declaration_specifiers // - case 530: { action. consumeDeclarationSimple(true); break; + case 570: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 531: exception_declaration ::= type_specifier_seq + // Rule 571: declaration_specifiers_inTemplate ::= elaborated_declaration_specifiers // - case 531: { action. consumeDeclarationSimple(false); break; + case 571: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 533: exception_specification ::= throw ( ) + // Rule 572: declaration_specifiers_inTemplate ::= enum_declaration_specifiers // - case 533: { action. consumePlaceHolder(); break; + case 572: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 539: no_sizeof_type_id_start ::= ERROR_TOKEN + // Rule 573: declaration_specifiers_inTemplate ::= type_name_declaration_specifiers_inTemplate // - case 539: { action. consumeEmpty(); break; + case 573: { action. consumeDeclarationSpecifiersTypeName(); break; + } + + // + // Rule 575: type_id_inTemplate ::= type_specifier_seq_inTemplate + // + case 575: { action. consumeTypeId(false); break; + } + + // + // Rule 576: type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator + // + case 576: { action. consumeTypeId(true); break; + } + + // + // Rule 577: template_argument ::= assignment_expression_inTemplate + // + case 577: { action. consumeTemplateArgumentExpression(); break; + } + + // + // Rule 578: template_argument ::= type_id_inTemplate + // + case 578: { action. consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 579: explicit_instantiation ::= template declaration + // + case 579: { action. consumeTemplateExplicitInstantiation(); break; + } + + // + // Rule 580: explicit_specialization ::= template < > declaration + // + case 580: { action. consumeTemplateExplicitSpecialization(); break; + } + + // + // Rule 581: try_block ::= try compound_statement handler_seq + // + case 581: { action. consumeStatementTryBlock(true); break; + } + + // + // Rule 582: try_block ::= try compound_statement + // + case 582: { action. consumeStatementTryBlock(false); break; + } + + // + // Rule 585: handler ::= catch ( exception_declaration ) compound_statement + // + case 585: { action. consumeStatementCatchHandler(false); break; + } + + // + // Rule 586: handler ::= catch ( ... ) compound_statement + // + case 586: { action. consumeStatementCatchHandler(true); break; + } + + // + // Rule 587: exception_declaration ::= type_specifier_seq declarator + // + case 587: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 588: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 588: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 589: exception_declaration ::= type_specifier_seq + // + case 589: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 591: exception_specification ::= throw ( ) + // + case 591: { action. consumePlaceHolder(); break; + } + + // + // Rule 597: no_sizeof_type_id_start ::= ERROR_TOKEN + // + case 597: { action. consumeEmpty(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java index e261e4643eb..94775ef3936 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java @@ -50,484 +50,581 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,2,1,3,1,0,1, - 0,1,1,0,1,1,1,1,1,1, - 1,1,1,3,4,3,2,1,4,2, - 1,2,5,7,5,1,4,1,0,5, - 7,2,8,1,1,2,2,3,2,3, + 1,3,1,3,1,3,1,5,1,3, + 5,3,3,1,3,3,1,3,1,3, + 1,3,1,3,1,3,1,5,1,1, + 3,3,3,3,3,3,3,3,3,3, + 3,1,2,1,1,3,3,3,3,3, + 3,3,3,3,3,3,1,2,1,3, + 1,0,1,0,1,1,0,1,1,1, + 1,1,1,1,1,1,3,4,3,2, + 1,4,2,1,2,5,7,5,1,4, + 1,0,5,7,2,8,1,1,2,2, + 3,2,3,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,2, + 1,0,4,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,2,1,0,4, - 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,3,4,4,5,2,5, - 6,5,0,1,0,7,8,0,1,3, - 1,0,1,3,1,7,6,0,7,6, - 1,0,6,5,6,4,1,3,1,0, - 1,1,2,1,1,3,1,3,1,1, - 1,1,3,9,2,2,3,2,5,3, - 7,0,1,2,2,1,0,1,1,1, - 3,1,2,1,1,2,3,1,1,1, - 3,2,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, - 1,7,6,3,0,0,1,3,1,1, - 5,6,6,7,7,0,0,1,0,1, - 1,1,2,4,2,2,1,5,1,1, - 1,1,1,1,1,2,1,0,1,3, - 1,1,2,3,2,1,2,2,1,0, - 1,3,3,5,5,4,1,1,1,1, - 0,1,5,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,3,4,4, + 5,2,5,6,5,0,1,0,7,8, + 0,1,3,1,0,1,3,1,7,6, + 0,7,6,1,0,6,5,6,4,1, + 3,1,0,1,1,2,1,1,3,1, + 3,1,1,1,1,3,9,2,2,3, + 2,5,3,7,0,1,2,2,1,0, + 1,1,1,3,1,2,1,1,2,3, + 1,1,1,3,2,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,1,7,6,3,0,0,1, + 3,1,1,5,6,6,7,7,0,0, + 1,0,1,1,1,2,4,2,2,1, + 5,1,1,1,1,1,1,1,2,1, + 0,1,3,1,1,2,3,2,1,2, + 2,1,0,1,3,3,5,5,4,1, + 1,1,1,0,1,5,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,2,2, - 7,1,0,1,3,1,1,2,4,2, - 4,7,9,5,1,3,1,0,1,1, - 2,4,4,2,1,2,5,5,3,3, - 1,4,3,1,0,1,3,1,1,-62, - 0,0,0,-422,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,-123, - 0,0,0,0,0,-49,0,0,-406,0, - 0,0,0,-314,-281,0,0,0,0,0, - 0,0,0,0,0,0,0,-382,-19,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,-1,0,0,0,0,0, - -10,-16,0,0,0,0,0,0,0,0, + 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,3,1, + 0,1,1,3,2,3,2,2,1,0, + 1,1,4,5,2,1,2,2,2,2, + 2,2,2,1,1,2,1,1,2,4, + 4,2,1,2,5,5,3,3,1,4, + 3,1,0,1,3,1,1,-62,0,0, 0,0,-2,0,0,0,0,0,0,0, - -58,0,0,0,0,0,0,0,0,0, - 0,0,-53,0,0,-146,0,0,0,-4, 0,0,0,0,0,0,0,0,0,0, - -482,-126,0,0,0,0,0,0,0,0, - 0,0,0,-114,0,0,0,0,0,0, + 0,0,0,0,-4,-10,0,0,0,0, + 0,0,0,-123,0,0,-5,0,0,-472, + 0,0,0,0,-279,0,0,-136,0,-137, + -594,-428,0,0,0,0,0,0,0,0, + 0,0,0,0,-198,0,0,0,0,-6, + 0,-18,0,0,0,-114,0,0,0,0, 0,0,0,0,0,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,-186,-118,0,0,-120,0,0,0, - -71,0,0,0,0,0,0,0,0,0, - 0,0,0,-219,0,0,-115,0,0,0, + 0,0,0,0,0,-282,0,0,0,0, + 0,0,-49,-42,0,0,-61,0,0,0, 0,0,0,0,0,0,0,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,0,0,-136,0,0,0,0, - 0,-5,0,0,0,-72,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-147,-119,0,-310, - -6,-130,0,0,0,0,0,0,0,0, + 0,0,-415,0,-71,0,0,0,0,0, + 0,0,0,0,0,0,0,-126,0,0, + 0,0,0,-196,0,0,0,-115,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,0,-7,0,0,0,0, - 0,0,0,0,0,0,-8,0,-357,0, - 0,-141,0,0,-188,-377,0,-405,0,0, - -9,0,0,0,-218,0,0,0,0,0, + 0,0,0,0,0,0,0,-53,0,0, + 0,0,0,0,-522,0,0,0,-58,0, + 0,0,0,-7,0,0,0,0,0,0, + -121,0,-385,0,0,0,0,0,0,0, + 0,0,0,0,-8,-130,0,0,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,-128,0,-72,0,0, + 0,0,-9,0,0,0,0,0,0,0, + 0,0,0,-51,0,-50,-54,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-596,0,0,0,0,-117,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-261,-47,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,0, + 0,0,0,0,0,-64,0,-65,0,0, + 0,0,0,0,-325,0,0,0,-444,-141, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-311,0,0,-11,0,0,0,0, + 0,0,0,-571,0,0,0,0,-262,0, + 0,0,0,0,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,-13, + 0,0,0,0,0,0,-177,0,0,0, + -16,0,0,0,-526,0,0,0,0,0, + 0,0,0,0,0,0,-595,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,-197,0,0,-215,0,0, + 0,0,0,0,0,0,0,0,0,-272, + 0,0,0,0,-92,0,0,0,0,-367, + 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,-211,0,0,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,0,0,0,-112, + -15,0,0,0,0,0,0,0,0,0, + 0,-28,0,0,0,-235,0,0,0,0, + 0,-146,0,0,0,-368,0,0,0,0, + 0,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,0,0,0, + 0,0,0,0,0,0,0,-199,0,0, + 0,0,0,0,0,0,0,-176,0,0, + 0,0,-91,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,-57, + -30,0,0,-31,0,0,0,0,0,0, + 0,-329,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,0, + 0,0,-195,0,0,0,0,0,0,0, + -32,0,0,-264,0,0,0,0,0,-570, + -375,0,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,-209,0,0, + 0,-129,0,0,0,0,-402,0,0,-143, + 0,0,-273,0,0,0,0,-376,0,0, + 0,0,-316,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,-214,0, + 0,0,0,0,0,0,-357,0,0,-280, + 0,0,0,0,-345,-34,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,-145,0,0,0,0,0, + 0,0,0,0,0,0,-152,0,0,-286, + 0,0,0,0,-356,0,-440,-41,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-205,0,0,-270,0, + 0,0,0,0,0,0,0,0,0,-326, + 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,0,0,0,0,0,0,0, - 0,0,0,-51,-11,0,0,0,0,0, - 0,0,0,0,-224,0,-12,0,0,0, - -121,-335,0,0,0,-129,0,0,0,0, - 0,0,-13,0,0,0,0,-137,-15,-513, - 0,0,0,-54,0,0,0,0,0,0, + 0,0,0,-388,0,0,-287,0,0,0, + 0,-95,0,0,0,0,-35,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,-242,0,0,0,0,0,0, - 0,0,0,-537,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,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,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-57,0,0, - 0,0,0,-228,0,0,-29,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,-255,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-297,0, - 0,0,0,0,-187,0,0,-342,0,-207, - 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,-30,0,0, - 0,0,0,0,0,0,0,0,0,-31, - 0,0,0,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,0, - 0,-32,0,0,0,0,0,-395,0,0, - 0,0,0,-299,0,0,0,0,0,0, - -330,0,0,0,-59,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-220,0,0,0,0,0, - 0,0,0,0,-116,0,0,0,0,0, - 0,0,0,0,-275,0,0,0,-221,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -262,0,0,-296,0,0,0,-375,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,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-328, - 0,0,0,0,0,-33,0,0,-204,-64, - 0,0,0,-414,0,0,0,-319,0,0, - 0,-60,0,0,0,0,0,0,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,-376,0,0,-34,0,0,0, - -39,0,0,0,-107,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-287,0,0,0,0,0, - 0,0,0,0,-389,0,0,0,0,-184, - 0,0,0,0,-41,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,-337,0,0,0,-469,0, - 0,0,0,0,0,0,0,-94,0,0, - 0,-354,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,0,0,0,-308,0, + 0,0,-321,0,0,0,0,0,0,0, + -421,0,0,-327,0,0,0,0,-96,0, 0,0,0,-36,0,0,0,0,0,0, - -95,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-322,-37,0,0,-324, + 0,0,0,0,0,0,0,0,0,0, + -339,0,0,0,0,-97,0,0,0,0, + -371,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-328,-38,0,0,-340,0,0,0, + 0,0,0,0,0,0,0,-369,0,0, + 0,0,-98,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,-360, + -55,0,0,0,-405,0,0,0,-423,0, + 0,-56,0,0,-390,0,0,0,0,-99, + 0,0,0,0,-66,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-361,0,0,0, + -365,0,0,0,0,0,0,0,-366,0, + 0,-59,-60,0,-409,0,-100,0,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,-69,0, + 0,0,-353,0,0,-377,0,0,-107,-113, + 0,-410,0,-101,0,0,0,0,-70,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-383,-108,0,0,0,0, + 0,0,-443,0,0,0,0,-400,-309,0, + -102,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,-391,-110,0,0,0,0,0,0,-394, + 0,0,-434,-332,0,-111,0,-103,0,0, + 0,0,0,0,0,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,0,0,-447,0,0,-131,0,0,-460, + 0,0,-138,0,-104,0,0,0,0,-540, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-397,-139,0,0,0, + 0,0,0,-140,0,0,-323,0,0,-221, + 0,-134,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,-411,-116, + 0,0,0,0,0,0,0,-341,0,0, + 0,0,0,-222,0,0,0,0,-354,0, + 0,0,0,0,0,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,0,0,0,0,0,-266,0,0,0, + -436,0,0,-374,0,0,0,0,-154,0, + -246,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,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,-229,0,-399,-313, + 0,0,0,0,0,0,0,-155,-319,0, + 0,0,0,0,0,0,-247,0,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,-147,-355,0,0,0,-413,0, + 0,0,0,0,0,-446,0,0,0,-333, + 0,0,-118,0,-157,0,0,0,0,0, + 0,-158,-492,0,0,-320,0,0,0,0, + 0,0,-248,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-475, + -457,0,-159,0,0,-14,0,-284,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-431,0,0, + -392,-160,0,0,0,0,0,0,-249,0, + 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,-151,0,-363,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-120,0,-379,0,0,0, + 0,-416,0,-461,0,0,0,-412,0,0, + 0,0,0,0,-250,0,0,0,0,-600, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-501,-389,0,-419,0,0,0,0,-162, + 0,0,0,0,0,0,0,0,0,0, + -163,0,0,0,0,0,0,0,0,0, + -192,0,0,0,0,0,0,0,0,0, + -251,0,0,0,0,-164,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-207,0, + -564,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-350, + 0,0,0,-165,0,-572,0,0,0,-435, + 0,0,0,0,0,0,-252,0,0,0, + 0,-166,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,-168,-450,-169, + -464,0,0,0,0,0,0,0,-430,0, + 0,0,-480,0,-170,0,-425,-463,0,0, + 0,0,-171,0,0,0,0,0,0,0, + 0,0,-253,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,0,0, + -216,0,-148,0,0,0,0,-173,0,0, + 0,0,0,0,0,-174,0,0,0,0, + 0,-470,-449,0,0,0,0,0,-506,0, + 0,-418,0,0,0,0,0,0,-254,0, + 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,-274,0,-150,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-474,0,0,-478,0,0,-471,0,0, + 0,0,0,-178,-537,0,0,-422,0,0, + 0,0,0,0,-255,0,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,-281,0,-393,0,0,0,0,0, + 0,0,0,0,0,0,-476,-487,0,0, + -483,0,0,0,0,-453,0,-490,0,-462, + 0,-499,0,-583,0,0,0,0,0,0, + -256,0,0,0,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, + -433,0,0,0,0,0,0,0,0,0, + 0,0,0,-532,-43,0,-122,0,0,0, + -184,-536,0,-185,0,-283,0,-479,-527,0, + -586,0,0,0,0,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,0,0,-186,0,0,0,0,0, + 0,-187,0,-188,0,-288,-344,-535,0,-554, + 0,0,0,0,0,0,0,0,0,-556, + 0,-504,0,0,0,0,0,0,0,0, + 0,0,-589,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-558,-189,0,0,0,0,0, + 0,-515,0,0,0,-289,-290,-190,0,-387, + 0,0,0,0,-587,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-567,0,0,0, + 0,0,0,0,0,0,0,0,-524,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,0,0,0,0,-278,-191, + 0,0,-194,0,0,0,0,0,0,0, + -575,0,0,0,-202,0,0,-533,-525,-203, + -206,-538,0,-291,-338,0,-557,-348,-414,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-96,0,0,0,-113,0,0, + 0,0,0,0,-217,0,0,-349,0,0, + -438,0,0,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,-37,0,0,0,-528,0,-38, - 0,0,0,0,0,0,-97,0,0,0, - -525,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-227,0, + 0,0,-228,0,0,0,0,0,0,-236, + 0,0,-267,-275,-277,-285,0,0,0,-551, + -552,-296,-297,-218,0,0,0,-439,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,0,0,-291,-143,0,0,-98, + 0,0,0,0,0,-298,-299,0,0,0, + 0,0,0,-300,0,0,0,0,0,-513, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-55,0,0,0,0,0,-56, - 0,0,0,-529,0,-66,0,0,-67,-152, - 0,0,-99,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-180,-301,-351,0, + -302,0,0,0,0,-303,0,0,-304,0, + 0,-124,-305,-306,-307,-312,-230,-437,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-69,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-332,-194,0,0,-100,0,0,0,0, + 0,0,-181,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-198,0,0,0,0, - 0,0,0,0,-70,-331,0,0,-101,0, - 0,0,-151,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-200,0,0,0,0,0,-203,0, - 0,0,0,0,0,0,0,-108,0,0, - 0,-102,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,-229,0,0,0,0,0,0,0,0, - -109,0,0,0,-103,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,-254,0,0,0,0,0, - -267,0,0,-110,0,0,0,-104,0,0, - 0,-205,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-111,0,0,0,0,0,-268,0,0, - 0,0,0,-131,0,0,-138,0,0,0, - -211,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,0,0,0, - -270,0,0,0,0,0,-274,0,0,-373, - 0,0,0,-531,0,0,0,-225,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-139,0,0, - 0,0,0,-278,0,0,0,-303,0,-140, - 0,0,0,-279,0,0,-345,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -417,0,0,0,0,0,-286,0,0,0, - 0,0,-153,0,0,-356,0,0,0,-344, + 0,-314,0,-315,-584,-330,-331,0,0,-220, + 0,0,0,0,-73,0,-342,0,-346,0, + 0,0,0,-347,-133,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-358, + 0,-559,0,-380,-420,0,0,-448,-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,0,0,0,0,0,0,0, - 0,0,0,0,-176,0,0,0,0,-435, - 0,0,0,-380,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-258,0,0, 0,0,0,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,-154, - 0,0,-381,0,0,0,0,0,0,0, + 0,0,0,0,-482,0,-337,-359,-417,0, + -364,0,0,0,-201,0,0,0,-372,-373, + -384,-404,0,-406,0,-426,0,0,0,0, + 0,0,-579,0,-429,0,0,-528,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,-592,-599,0, + 0,0,-442,0,0,0,-531,0,-245,0, + 0,0,0,-534,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, + -456,0,-458,-459,-465,0,-467,-473,-481,-488, + 0,-489,-512,0,-514,0,0,0,0,-563, + 0,-516,0,-517,-243,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-155,0,0,0,0,0,-233,0, - 0,-223,0,0,0,-355,-437,0,0,0, - -455,0,0,0,0,0,0,0,0,0, + 0,0,-518,-378,0,0,0,-519,-231,-521, + -539,-541,-336,-542,-544,-549,0,-553,-560,0, + -568,0,-577,-370,0,-565,0,-585,0,-244, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-156,0,-265,0,0,-93, + 0,0,0,0,0,0,-590,0,-601,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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,0,0,0,0,0, + 0,-569,0,-573,-574,0,-240,0,0,0, + 0,-593,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-148,0,0,0,-157,0,0, - 0,0,0,0,0,0,-158,-91,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,0,0, - 0,-159,0,0,0,0,0,-365,0,0, - -92,0,0,0,-363,0,0,0,0,0, + 0,0,0,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, - -240,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,-160,0,0,0, - 0,0,-89,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,0,0,0,0,0,0,0, - 0,-90,0,0,0,-266,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-161,0,0,0,0, - -396,0,0,0,0,0,0,0,0,0, - 0,0,0,-82,0,0,0,-162,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-145,0,0, - 0,0,-490,-402,0,0,0,-403,0,0, - 0,-163,-283,-231,0,0,0,-385,0,0, - 0,0,0,-133,0,0,0,0,0,-272, - 0,0,0,-378,0,0,0,0,0,-164, - -298,0,0,0,-247,-83,0,0,0,0, + 0,0,0,-454,0,0,0,0,0,0, + 0,0,0,0,0,0,-242,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-404,-471,0,0,0,0, - 0,0,-165,0,0,0,-538,0,0,0, - -166,0,0,0,0,0,0,0,0,-311, - -421,0,0,-434,0,0,0,0,0,0, - 0,-248,0,0,0,-84,0,0,0,0, + 0,0,0,-193,0,0,0,0,0,-135, + -598,0,0,0,0,0,0,-493,0,0, + 0,0,-495,0,0,0,0,0,0,0, + 0,0,-232,0,0,0,0,0,0,0, + 0,0,0,-233,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,-523,0,0, + 0,0,0,0,0,0,0,-529,0,0, + 0,0,0,0,0,0,0,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,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-84,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,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,0,-322,0,0, - 0,-235,0,0,0,0,0,0,0,0, - 0,0,0,0,-452,0,0,-190,0,0, - 0,-167,-305,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -127,0,0,0,-399,-52,0,0,0,0, - 0,0,-514,0,0,-238,0,0,0,0, - 0,0,0,0,-168,0,0,-249,-142,0, - 0,0,0,-250,0,-169,-388,0,0,0, - 0,0,0,0,0,0,0,0,-321,0, - 0,0,-284,0,0,0,0,0,-392,0, - -433,0,0,0,0,0,0,0,0,0, - -193,0,0,0,0,0,-472,0,0,0, - -122,0,0,-304,0,0,0,0,0,-181, - 0,0,0,0,0,-232,0,0,0,0, - 0,-308,0,0,0,0,-170,0,0,0, - 0,0,0,0,0,0,0,-512,-171,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,-172,0, - -448,0,0,0,-351,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-347, - -173,-446,0,0,0,0,0,0,0,-86, + 0,0,0,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,0,0,-174,0,0,-87,0,0,0, + 0,0,0,0,-239,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -453,0,0,-175,0,-150,0,0,0,0, - 0,0,0,0,0,0,0,0,-479,0, - 0,0,-498,0,0,-209,0,0,0,-178, - 0,-48,-309,0,0,0,0,-179,-237,0, - 0,-359,0,0,-180,0,-320,0,0,0, - 0,0,0,0,0,0,0,-294,-183,0, - 0,0,0,-124,-243,0,-361,0,0,0, - 0,0,0,0,0,0,-530,0,0,0, - 0,0,0,0,0,0,0,0,0,-77, + 0,-276,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,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-352,0,-464,0,-191,-259,0, - 0,0,0,-468,0,-326,0,0,0,0, - 0,0,0,-192,-61,0,0,0,0,0, + 0,0,0,0,-335,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-362,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-325,0,0,0,0,0, - 0,0,0,0,0,0,0,-457,0,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,-418,0,-149,0, - 0,0,0,0,0,-42,0,-195,0,0, - 0,0,0,0,0,0,-295,-206,0,0, - -462,0,0,0,0,-216,0,0,0,0, - 0,-217,0,-226,0,0,-18,0,0,0, - 0,-234,0,0,0,0,0,0,0,0, - 0,-412,0,-43,-236,0,0,0,-485,0, - 0,-353,0,0,0,-244,0,0,0,0, - 0,0,0,0,0,0,0,0,-253,-258, - 0,0,0,-239,0,0,0,0,0,0, - 0,0,0,0,0,0,-487,0,0,0, - 0,0,-260,-282,-323,0,0,0,0,0, - 0,0,0,0,0,0,-245,0,0,0, - 0,-246,0,0,0,0,0,0,0,0, - 0,0,0,0,-504,0,0,-317,0,0, - 0,-350,-362,0,0,0,0,0,0,0, - 0,0,0,0,-273,0,0,0,0,-390, - -261,0,0,0,0,0,0,0,0,0, - 0,0,-518,0,0,-333,0,0,0,0, - -336,0,0,0,0,0,0,0,0,0, - 0,0,0,-339,-341,0,0,0,0,0, + 0,-127,0,0,0,0,0,0,0,0, + 0,-530,0,0,0,0,0,0,0,-292, 0,0,0,0,0,0,0,0,0,0, - -520,0,0,-358,0,0,-276,0,-73,0, - 0,0,0,0,0,0,0,0,0,-367, - 0,0,-475,0,0,0,0,-271,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-277,-391,0,-288,0,0,0,0,0, - -466,0,0,0,0,0,0,-185,0,0, - 0,-47,0,0,0,-292,-293,0,-301,0, - 0,0,0,0,0,0,-522,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-372,0,0,0,-416,-269,0,0, - 0,0,0,-524,0,0,0,0,-263,0, + 0,0,0,0,0,0,-52,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-302,-313,0,-420,-44,-135,0,0,0, - 0,-334,-307,0,-413,0,0,0,-315,0, - 0,0,0,0,-424,-470,0,0,0,0, + 0,0,0,0,0,0,0,-200,0,0, + 0,0,-77,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -425,-473,0,0,0,0,-467,0,0,0, - 0,0,0,0,0,0,0,0,0,-316, - 0,0,-68,0,0,-539,0,0,-327,0, - -285,0,0,0,0,0,-346,0,-348,0, - 0,0,0,-45,-360,0,-364,0,-441,0, - -368,-371,0,-429,0,0,-384,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-480,0,0,0,0,0,0,0,0, - 0,0,-544,0,-465,-397,0,-74,0,0, - -476,0,0,-536,0,0,0,0,0,0, - 0,-312,0,0,0,0,0,0,0,0, - 0,0,0,-398,0,-400,-432,0,0,0, - 0,0,0,0,0,0,0,0,-474,0, - 0,0,0,0,0,0,0,0,0,-542, - -401,-407,0,0,0,0,0,0,-409,0, - -505,0,0,0,0,0,0,0,-79,0, - 0,0,-415,0,0,0,0,0,0,0, + -468,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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,0,0,0,0,0,0,0,0,0, + -293,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, + 0,0,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,-491,0,0,0,0,0,0,0, + 0,0,0,-208,0,0,-44,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-142,0,0,0,0,0,-1,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-511,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-144,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-210,0,0,0,0,0,-68, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-588,0,0,0,0,0,0, + 0,0,0,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, + 0,0,0,-382,0,0,0,0,0,0, + 0,0,0,0,0,0,-441,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,0,0,-204,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,-520,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-543,0,-548,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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,0,0,-545,0,0, + 0,0,0,0,0,0,-268,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-271,0,0,0, + 0,0,0,0,0,-485,0,0,-105,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-562, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-334,0, + 0,0,-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,-576,0,0,0,0,0,0,0,-408, + 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,-591,0,0,0, + 0,0,-224,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-578,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-219,0,0,0,-225,0,-226,0, + 0,0,0,0,0,0,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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-580,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,0, + 0,0,-494,0,-582,0,0,0,0,0, + 0,0,0,-407,0,0,0,0,0,0, + 0,0,0,0,-294,0,0,0,0,0, + 0,0,0,0,0,0,0,-17,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-597,0,-257,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,0,0,0,0,0,0, + 0,0,-343,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-602,0,0,0,0,0, + 0,0,0,-445,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-581,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 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,0,0, + 0,0,0,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,0,0,0,0,0,0,0,0,0, + 0,-179,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,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,0,-22,0,0,0,0,0,0, 0,0,0,0,0,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,-81,0,0,0, - -423,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -20,0,0,0,-430,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-22,0,0,0, - -431,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,0,0, - 0,0,-24,0,0,0,-454,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-25,0,0,0,-456, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-26,0, - 0,0,-458,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-27,0,0,0,-459,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-63,0,0,0,-460,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-75,0,0, - 0,-461,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -76,0,0,0,-463,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-132,0,0,0,-481,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-201,0,0,0, - -483,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-379, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-493,-445,0,0,0,0,0,0, - 0,0,0,0,0,0,-477,-105,-484,-496, - 0,0,-366,0,-486,-500,0,-491,-410,0, - -495,-443,-46,0,-394,0,0,-502,0,-509, - -290,0,-510,0,-519,0,0,0,0,0, - 0,-527,-532,0,0,-374,0,0,0,0, - -494,0,0,0,0,-501,0,0,0,0, - 0,0,-543,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-212,-213,-533,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-182,0, - 0,0,0,0,0,0,-442,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,-507,-511,0,-517,0,-521,0, - 0,-214,0,0,0,0,0,0,0,-189, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-125,0,0,0,0,0,-144,0, - 0,0,0,0,-499,0,0,0,0,0, - -515,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,0,0,0,0, - -227,0,0,0,0,-516,0,-535,0,0, - 0,0,0,0,-526,0,-343,0,0,0, - -534,0,0,0,0,0,0,0,0,-540, - 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,0,-251,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-541,0, - 0,0,0,0,-383,0,0,0,0,0, - 0,0,0,0,0,0,0,-506,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-503,0,-338,0,0,0, - 0,0,0,0,0,-252,-427,-202,-369,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,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,0,-26,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, 0,0,0,0,0,0,0,0,0,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,-289,0,-393,-523,0,0, - 0,0,0,0,0,0,0,0,-419,0, + 0,0,0,0,0,-75,0,0,0,0, + 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,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-230,0, + 0,-132,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-428,0,0,0,0,0, - 0,0,0,0,0,0,0,-329,0,0, + 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,-19,0,0, 0,0,0,0,0,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, - -370,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,-264,0,0,0, - 0,0,-197,0,0,0,0,0,0,0, - 0,-324,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,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,-340,0,0,0,-449,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-349,0,0,0,0,0,0,0, - -450,0,0,0,0,0,0,0,0,-387, - 0,0,0,-408,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-411,0,0, - 0,-426,0,0,0,0,0,0,0,0, - 0,0,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,0,0,0,-438,0,0, - 0,0,0,0,0,0,-488,0,0,0, - 0,-439,0,0,0,-447,0,0,0,0, - 0,0,0,-17,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,0,0,0,0,0,0,-14,0, - 0,0,0,0,0,0,0,0,0,0, - -489,-492,0,0,0,0,0,0,0,-451, - 0,0,0,0,0,0,-208,0,0,0, - -256,0,0,0,0,0,0,0,-497,0, + 0,0,0,0,0,0,0,0,0,-424, + 0,0,0,-46,0,0,0,0,0,0, + 0,-452,0,0,0,0,0,-566,0,0, + 0,0,0,-500,0,0,0,0,0,0, + 0,-466,0,0,0,0,0,-561,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -536,6 +633,47 @@ public class CPPSizeofExpressionParserprs 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,-125,0,0,0,0,0,-396,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-546,0,0,0,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,0,0,0,-427,0, + 0,0,0,0,0,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,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-451,0, + 0,0,0,0,0,0,0,0,0,0, + -477,0,0,0,0,0,0,0,-507,-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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -486,-234,0,0,0,0,0,0,0,0, + 0,0,0,0,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,-381,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-318,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,-496,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -497,0,0,0,0,0,0,0,-213,0, + 0,0,0,0,-505,0,0,0,0,0, + 0,0,0,0,0,0,0,-547,0,0, + 0,0,0,-550,0,0,0,-508,0,0, + 0,0,0,0,0,0,0,-509,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-555,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -543,7 +681,8 @@ public class CPPSizeofExpressionParserprs 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 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -553,550 +692,696 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 176,4,137,82,82,36,36,68,68,39, - 39,43,43,202,1,1,16,16,16,16, + 191,5,154,94,94,32,32,80,80,39, + 39,42,42,218,1,1,16,16,16,16, 16,16,16,17,17,17,15,11,11,6, - 6,6,6,6,6,2,66,66,5,5, - 12,12,45,45,138,138,139,57,57,44, + 6,6,6,6,6,2,75,75,4,4, + 12,12,44,44,155,155,156,67,67,43, 18,18,18,18,18,18,18,18,18,18, - 18,18,18,18,18,18,18,18,18,140, - 140,140,114,114,19,19,19,19,19,19, - 19,19,19,19,19,19,20,20,177,177, - 178,178,179,143,143,144,144,141,141,145, - 142,142,21,21,22,22,23,23,23,25, - 25,25,25,26,26,26,27,27,27,28, - 28,28,28,28,29,29,29,31,31,32, - 32,33,33,35,35,37,37,38,38,42, - 42,41,41,41,41,41,41,41,41,41, - 41,41,41,41,40,30,146,146,96,96, - 180,180,91,203,203,69,69,69,69,69, - 69,69,69,69,70,70,70,67,67,56, - 56,181,181,71,71,71,102,102,182,182, - 72,72,72,72,183,183,73,73,73,73, - 73,74,74,83,83,83,83,83,83,83, - 83,51,51,51,51,51,115,115,113,113, - 52,184,24,24,24,24,24,49,49,86, - 86,86,86,86,153,153,148,148,148,148, - 148,149,149,149,150,150,150,151,151,151, - 152,152,152,87,87,87,87,87,88,88, - 88,13,14,14,14,14,14,14,14,14, - 14,14,14,97,119,119,119,119,119,119, - 117,117,117,154,155,155,118,118,185,157, - 157,156,156,121,121,103,80,80,122,54, - 48,158,158,55,53,85,85,159,159,147, - 147,123,124,124,125,77,77,160,160,64, - 64,64,60,60,59,65,65,76,76,58, - 58,58,50,89,89,99,98,98,63,63, - 61,61,62,62,46,100,100,100,92,92, - 92,93,93,94,94,94,95,95,104,104, - 104,106,106,105,105,204,204,90,90,187, - 187,187,187,187,127,47,47,162,186,186, - 128,128,129,129,129,130,164,188,188,34, - 34,116,131,131,131,131,190,108,107,107, - 120,120,120,165,166,166,166,166,166,166, - 166,166,166,166,166,192,192,189,189,191, - 191,167,168,168,168,168,169,193,110,109, - 109,194,194,170,170,170,170,101,101,101, - 195,195,8,8,9,196,196,197,171,161, - 161,172,172,173,174,174,7,7,10,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,78,81,81,175,175,133,133,134,134, - 134,134,134,134,3,135,135,132,132,111, - 111,84,79,75,75,163,163,112,112,199, - 199,199,136,136,126,126,200,200,176,176, - 1119,35,2070,2058,1356,2769,27,30,31,963, - 969,26,28,1987,261,25,23,50,1018,104, - 75,76,106,1097,1312,1190,1178,1376,1222,1499, - 241,1427,1634,1554,273,1640,49,1683,141,1882, - 694,156,142,2801,2315,1892,35,947,32,4632, - 4657,27,30,31,963,969,340,28,1777,3072, - 35,947,32,231,3197,27,30,31,963,969, - 26,28,935,261,25,23,50,1018,85,75, - 76,352,587,35,3192,2253,234,229,230,1198, - 666,155,1504,35,947,32,3432,274,41,30, - 31,963,969,1791,320,2074,322,180,3239,315, - 2064,587,1757,1984,34,154,241,244,247,250, - 951,353,3265,1088,666,538,1718,35,947,32, - 73,828,40,30,31,963,969,345,968,796, - 350,2770,327,35,279,1866,670,4230,862,734, - 737,2821,3024,4243,2320,35,947,32,2746,3197, - 27,30,31,963,969,26,28,935,261,25, - 23,50,1018,104,75,76,106,1097,344,1190, - 1178,1376,1222,1499,885,1427,1634,1554,1088,1640, - 313,1683,141,155,1225,519,142,1240,4291,2246, - 3095,1217,35,947,32,500,3159,27,30,31, - 963,969,57,28,56,1145,520,2320,35,947, - 32,2746,3197,27,30,31,963,969,26,28, - 935,261,25,23,50,1018,104,75,76,106, - 1097,344,1190,1178,1376,1222,1499,49,1427,1634, - 1554,757,1640,526,1683,141,1456,231,519,142, - 231,643,71,3095,3239,515,1381,35,947,32, - 462,3159,27,30,31,963,969,56,28,520, - 243,229,230,246,229,230,2990,1352,1611,2998, - 2425,1592,2320,35,947,32,2746,3197,27,30, - 31,963,969,26,28,935,261,25,23,50, - 1018,104,75,76,106,1097,344,1190,1178,1376, - 1222,1499,3353,1427,1634,1554,1766,1640,515,1683, - 141,1470,354,519,142,238,261,1853,3095,587, - 3509,61,327,35,279,155,1611,4843,1611,3005, - 4519,2086,2998,1150,520,2528,35,947,32,2746, - 3197,27,30,31,963,969,26,28,935,261, - 25,23,50,1018,104,75,76,106,1097,344, - 1190,1178,1376,1222,1499,231,1427,1634,1554,579, - 1640,579,1683,141,1603,1377,519,142,1275,392, - 429,3095,377,515,377,69,60,2229,239,229, - 230,1229,1718,35,947,32,1088,520,2368,30, - 31,963,969,2230,3094,42,3178,2998,1877,2246, - 2663,35,947,32,1618,3197,27,30,31,963, - 969,26,28,935,261,25,23,50,1018,104, - 75,76,106,1097,1631,1190,1178,1376,1222,1499, - 290,1427,1634,1554,1446,1640,516,1683,141,4179, - 499,380,142,4087,2389,35,947,32,2249,3197, - 27,30,31,963,969,26,28,935,261,25, - 23,50,1018,104,75,76,106,1097,461,1190, - 1178,1376,1222,1499,355,1427,1634,1554,375,1640, - 3647,1683,141,1941,3019,380,142,4087,2837,35, - 947,32,4111,3197,27,30,31,963,969,26, - 28,935,261,25,23,50,1018,104,75,76, - 106,1097,3670,1190,1178,1376,1222,1499,49,1427, - 1634,1554,832,1640,1611,3168,162,413,387,381, - 1628,3127,35,947,32,733,3197,27,30,31, - 963,969,26,28,935,261,25,23,50,1018, - 104,75,76,106,1097,752,1190,1178,1376,1222, - 1499,445,1427,1634,1554,1455,2859,2021,3415,1800, - 328,3428,388,381,1628,2275,1094,92,2437,1773, - 587,35,1729,390,2595,35,947,32,4305,3197, - 27,30,31,963,969,26,28,935,261,25, - 23,50,1018,104,75,76,106,1097,1449,1190, - 1178,1376,1222,1499,49,1427,1634,1554,1892,1640, - 64,1683,141,391,46,380,142,4087,2892,35, - 947,32,3502,3197,27,30,31,963,969,26, - 28,935,261,25,23,50,1018,104,75,76, - 106,1097,2288,1190,1178,1376,1222,1499,2075,1427, - 1634,1554,4489,1640,1611,1683,141,329,336,156, - 142,3127,35,947,32,1618,3197,27,30,31, - 963,969,26,28,935,261,25,23,50,1018, - 104,75,76,106,1097,56,1190,1178,1376,1222, - 1499,3495,1427,1634,1554,1446,1640,3341,3168,162, - 4179,4014,378,381,1628,2892,35,947,32,56, - 3197,27,30,31,963,969,26,28,935,261, - 25,23,50,1018,104,75,76,106,1097,886, - 1190,1178,1376,1222,1499,330,1427,1634,1554,449, - 1640,322,1683,141,56,3019,374,142,1718,35, - 947,32,2375,333,2605,30,31,963,969,1935, - 2892,35,947,32,670,3197,27,30,31,963, - 969,26,28,935,261,25,23,50,1018,104, - 75,76,106,1097,2830,1190,1178,1376,1222,1499, - 1631,1427,1634,1554,3336,1640,330,1683,141,2125, - 1547,374,142,1004,587,35,1729,390,2892,35, - 947,32,1618,3197,27,30,31,963,969,26, - 28,935,261,25,23,50,1018,104,75,76, - 106,1097,373,1190,1178,1376,1222,1499,433,1427, - 1634,1554,1621,1640,2437,1683,141,494,24,374, - 142,2461,35,947,32,1618,3197,27,30,31, - 963,969,26,28,935,261,25,23,50,1018, - 104,75,76,106,1097,2619,1190,1178,1376,1222, - 1499,406,1427,1634,1554,1906,1640,372,1683,141, - 49,68,140,142,4606,2892,35,947,32,2068, - 3197,27,30,31,963,969,26,28,935,261, - 25,23,50,1018,104,75,76,106,1097,1243, - 1190,1178,1376,1222,1499,1611,1427,1634,1554,1611, - 1640,3027,1683,141,3415,370,157,142,2892,35, - 947,32,2315,3197,27,30,31,963,969,26, - 28,935,261,25,23,50,1018,104,75,76, - 106,1097,1951,1190,1178,1376,1222,1499,3390,1427, - 1634,1554,579,1640,400,1683,141,4249,91,153, - 142,2892,35,947,32,4090,3197,27,30,31, - 963,969,26,28,935,261,25,23,50,1018, - 104,75,76,106,1097,888,1190,1178,1376,1222, - 1499,357,1427,1634,1554,449,1640,86,1683,141, - 100,534,152,142,2892,35,947,32,1618,3197, - 27,30,31,963,969,26,28,935,261,25, - 23,50,1018,104,75,76,106,1097,1611,1190, - 1178,1376,1222,1499,1409,1427,1634,1554,1611,1640, - 1105,1683,141,440,53,151,142,2892,35,947, - 32,2783,3197,27,30,31,963,969,26,28, - 935,261,25,23,50,1018,104,75,76,106, - 1097,4096,1190,1178,1376,1222,1499,2777,1427,1634, - 1554,579,1640,1620,1683,141,666,1088,150,142, - 2892,35,947,32,528,3197,27,30,31,963, - 969,26,28,935,261,25,23,50,1018,104, - 75,76,106,1097,416,1190,1178,1376,1222,1499, - 1447,1427,1634,1554,1611,1640,1174,1683,141,2563, - 1088,149,142,2892,35,947,32,3505,3197,27, - 30,31,963,969,26,28,935,261,25,23, - 50,1018,104,75,76,106,1097,1324,1190,1178, - 1376,1222,1499,526,1427,1634,1554,579,1640,4037, - 1683,141,666,1088,148,142,2892,35,947,32, - 527,3197,27,30,31,963,969,26,28,935, - 261,25,23,50,1018,104,75,76,106,1097, - 69,1190,1178,1376,1222,1499,49,1427,1634,1554, - 2999,1640,51,1683,141,1445,1088,147,142,2892, - 35,947,32,1618,3197,27,30,31,963,969, - 26,28,935,261,25,23,50,1018,104,75, - 76,106,1097,1864,1190,1178,1376,1222,1499,49, - 1427,1634,1554,994,1640,327,1683,141,160,52, - 146,142,2892,35,947,32,1618,3197,27,30, - 31,963,969,26,28,935,261,25,23,50, - 1018,104,75,76,106,1097,70,1190,1178,1376, - 1222,1499,49,1427,1634,1554,3398,1640,95,1683, - 141,246,351,145,142,2892,35,947,32,666, - 3197,27,30,31,963,969,26,28,935,261, - 25,23,50,1018,104,75,76,106,1097,1336, - 1190,1178,1376,1222,1499,49,1427,1634,1554,1139, - 1640,49,1683,141,590,830,144,142,2892,35, - 947,32,1618,3197,27,30,31,963,969,26, - 28,935,261,25,23,50,1018,104,75,76, - 106,1097,848,1190,1178,1376,1222,1499,49,1427, - 1634,1554,2630,1640,2687,1683,141,1878,88,143, - 142,2892,35,947,32,666,3197,27,30,31, - 963,969,26,28,935,261,25,23,50,1018, - 104,75,76,106,1097,1280,1190,1178,1376,1222, - 1499,49,1427,1634,1554,3493,1640,49,1683,141, - 1706,3298,138,142,3011,35,947,32,2448,3197, - 27,30,31,963,969,26,28,935,261,25, - 23,50,1018,104,75,76,106,1097,3327,1190, - 1178,1376,1222,1499,1988,1427,1634,1554,155,1640, - 1457,1683,141,4675,1964,187,142,3127,35,947, - 32,2155,3197,27,30,31,963,969,26,28, - 935,261,25,23,50,1018,104,75,76,106, - 1097,1906,1190,1178,1376,1222,1499,49,1427,1634, - 1554,1370,1640,408,3168,162,3127,35,947,32, - 2556,3197,27,30,31,963,969,26,28,935, - 261,25,23,50,1018,104,75,76,106,1097, - 325,1190,1178,1376,1222,1499,1978,1427,1634,1554, - 326,1640,622,3168,162,587,35,1984,3186,404, - 587,35,1729,390,3127,35,947,32,425,3197, - 27,30,31,963,969,26,28,935,261,25, - 23,50,1018,104,75,76,106,1097,2068,1190, - 1178,1376,1222,1499,454,1427,1634,1554,135,1640, - 580,3168,162,3127,35,947,32,294,3197,27, - 30,31,963,969,26,28,935,261,25,23, - 50,1018,104,75,76,106,1097,356,1190,1178, - 1376,1222,1499,1015,1427,1634,1554,534,1640,1618, - 3168,162,587,35,2466,2287,752,587,35,1729, - 390,3182,35,947,32,424,3197,27,30,31, - 963,969,26,28,935,261,25,23,50,1018, - 104,75,76,106,1097,2027,1190,1178,1376,1222, - 1499,436,1427,1634,1554,1234,1640,69,3168,162, - 3127,35,947,32,427,3197,27,30,31,963, - 969,26,28,935,261,25,23,50,1018,104, - 75,76,106,1097,286,1190,1178,1376,1222,1499, - 1505,1427,1634,2776,1785,35,947,32,1378,4897, - 27,30,31,963,969,59,28,846,3127,35, - 947,32,4095,3197,27,30,31,963,969,26, - 28,935,261,25,23,50,1018,104,75,76, - 106,1097,932,1190,1178,1376,1222,1499,1795,1427, - 2722,3127,35,947,32,1088,3197,27,30,31, - 963,969,26,28,935,261,25,23,50,1018, - 104,75,76,106,1097,2842,1190,1178,1376,1222, - 1499,1618,2765,3127,35,947,32,408,3197,27, - 30,31,963,969,26,28,935,261,25,23, - 50,1018,104,75,76,106,1097,1311,1190,1178, - 1376,1222,2570,3127,35,947,32,2107,3197,27, - 30,31,963,969,26,28,935,261,25,23, - 50,1018,104,75,76,106,1097,96,1190,1178, - 1376,2613,3127,35,947,32,2694,3197,27,30, - 31,963,969,26,28,935,261,25,23,50, - 1018,104,75,76,106,1097,1548,1190,1178,1376, - 2621,1522,35,947,32,3302,4723,27,30,31, - 963,969,340,28,3127,35,947,32,1591,3197, - 27,30,31,963,969,26,28,935,261,25, - 23,50,1018,104,75,76,106,1097,49,1190, - 1178,2337,1198,2560,1016,35,398,540,1016,35, - 398,3019,1679,2328,2375,35,277,2746,2631,333, - 320,2074,322,4758,1446,315,2064,4110,1952,4179, - 587,35,282,154,327,35,455,2702,314,4744, - 1278,1312,178,3128,2993,1618,3127,35,947,32, - 4307,3197,27,30,31,963,969,26,28,935, - 261,25,23,50,1018,104,75,76,106,1097, - 194,1190,1178,2362,3019,1795,587,35,1729,390, - 3315,67,333,2562,307,311,544,2347,35,947, - 32,2643,4897,27,30,31,963,969,26,28, - 2425,1795,513,362,843,35,455,952,2631,4744, - 435,3765,1618,2811,300,3811,3127,35,947,32, - 3741,3197,27,30,31,963,969,26,28,935, - 261,25,23,50,1018,104,75,76,106,1097, - 220,1190,1178,2427,3127,35,947,32,66,3197, - 27,30,31,963,969,26,28,935,261,25, - 23,50,1018,104,75,76,106,1097,2488,1190, - 1178,2486,2067,35,947,32,3264,4657,27,30, - 31,963,969,340,28,2762,4790,195,587,35, - 1729,390,1707,1401,35,3569,32,3302,4723,27, - 30,31,963,969,340,28,448,3672,3679,393, - 429,674,35,1729,390,155,3237,35,1729,390, - 4762,2741,273,1016,35,398,2411,35,277,236, - 261,320,2074,322,666,2139,315,2064,1618,2216, - 35,1729,390,3019,1618,49,486,752,353,3412, - 273,333,320,2074,322,1726,3078,315,2064,587, - 35,1729,390,1618,345,968,796,350,2718,752, - 2900,259,3377,49,65,540,452,3672,3679,231, - 64,1980,4307,1726,1843,275,4179,587,35,1729, - 390,1610,3561,273,2576,227,2718,525,1148,3086, - 2038,154,234,229,230,4179,587,35,1984,276, - 178,3128,49,274,579,287,2885,2066,202,214, - 4591,434,201,211,212,213,215,167,2762,1127, - 4122,3019,241,244,247,250,951,297,166,334, - 181,165,168,169,170,171,172,828,681,2132, - 3019,587,35,295,231,2425,341,353,334,367, - 419,421,3567,622,862,734,737,2821,3024,4243, - 2685,2225,1795,347,968,796,350,249,229,230, - 3127,35,947,32,2120,3197,27,30,31,963, - 969,26,28,935,261,25,23,50,1018,104, - 75,76,106,1097,2235,1190,2508,3127,35,947, - 32,304,3197,27,30,31,963,969,26,28, - 935,261,25,23,50,1018,104,75,76,106, - 1097,1,1190,2542,2350,540,1785,35,947,32, - 525,4897,27,30,31,963,969,58,28,587, - 35,295,2961,1906,3602,227,757,35,1729,390, - 1267,154,1355,49,395,429,1198,3074,761,1879, - 178,3128,1879,2746,579,1726,2746,49,202,214, - 4591,3002,201,211,212,213,215,167,1618,1226, - 273,1651,158,2702,1784,2444,2702,2619,166,179, - 182,165,168,169,170,171,172,2077,35,947, - 32,3264,4657,27,30,31,963,969,340,28, - 3127,35,947,32,55,3197,27,30,31,963, - 969,26,28,935,261,25,23,50,1018,104, - 75,76,106,1097,2425,2113,587,4073,2085,1244, - 35,295,4136,3226,587,4101,49,231,1608,361, - 3575,1150,361,423,2310,2151,320,2074,322,2554, - 71,315,2064,2793,3202,3215,3320,3202,3215,324, - 252,229,230,353,529,1364,35,947,32,534, - 4723,27,30,31,963,969,340,28,1795,345, - 968,796,350,3127,35,947,32,530,3197,27, - 30,31,963,969,26,28,935,261,25,23, - 50,1018,104,75,76,106,1097,752,2200,929, - 35,1729,390,44,3178,3019,49,177,2280,87, - 1198,353,100,334,320,2074,322,1618,2416,316, - 2064,345,2198,394,429,540,2419,345,968,796, - 350,353,2517,49,2289,343,154,2156,35,1729, - 390,1234,2226,1726,1929,227,1435,347,968,796, - 350,154,155,54,49,2143,2986,4808,2746,431, - 178,3128,2447,540,579,296,2491,4740,202,214, - 4591,49,201,211,212,213,215,167,344,2519, - 2155,1726,564,227,1101,35,1984,276,166,154, - 4098,165,168,169,170,171,172,517,178,3128, - 3095,540,579,2692,1446,1618,202,214,4591,4179, - 201,211,212,213,215,167,1858,587,3436,1984, - 73,227,1101,35,1984,3437,166,154,176,165, - 168,169,170,171,172,603,178,3128,1800,540, - 579,323,1446,1618,202,214,4591,4179,201,211, - 212,213,215,167,3019,587,35,1984,278,227, - 1618,2153,333,2548,166,154,174,165,168,169, - 170,171,172,689,178,3128,49,540,579,99, - 3577,49,202,214,4591,4093,201,211,212,213, - 215,167,3019,3115,49,49,3467,227,4126,1424, - 333,3502,166,154,175,165,168,169,170,171, - 172,775,178,3128,49,540,579,2522,1465,1355, - 202,214,4591,1198,201,211,212,213,215,167, - 49,4375,431,752,4105,227,3374,336,1476,3509, - 166,154,185,165,168,169,170,171,172,158, - 178,3128,2557,49,579,2496,3587,2101,202,214, - 4591,1795,201,211,212,213,215,167,1016,35, - 3194,2038,587,35,1729,390,2695,2586,166,2555, - 4123,165,168,169,170,171,172,1695,35,947, - 32,3302,4657,27,30,31,963,969,340,28, - 197,305,49,1244,3644,295,49,49,2453,35, - 280,3579,1726,2242,861,1823,1726,2015,540,1494, - 35,947,32,2723,4657,27,30,31,963,969, - 340,28,2697,1476,3509,49,49,2421,227,4187, - 2746,4623,1800,2626,154,155,320,2074,322,2584, - 4822,315,2064,178,3128,1618,1618,579,405,289, - 344,202,214,4591,314,201,211,212,213,215, - 167,155,1979,352,3632,945,4826,1795,317,3503, - 322,166,3095,190,165,168,169,170,171,172, - 2591,2902,453,49,584,3550,947,1198,1901,2690, - 540,587,35,1984,3559,3502,2198,2703,532,1738, - 307,311,544,353,49,1800,196,1800,2746,1800, - 227,2585,2743,154,49,1234,154,2658,4679,345, - 968,796,350,1392,4311,178,3128,1866,344,579, - 335,336,1795,202,214,4591,3741,201,211,212, - 213,215,167,1033,289,2560,2720,540,49,1198, - 3095,1618,1198,166,150,184,165,168,169,170, - 171,172,587,35,1984,281,1944,227,3502,2824, - 3502,303,3502,154,2732,154,1713,49,154,1522, - 3550,2715,178,3128,199,4131,579,379,1730,49, - 202,214,4591,2983,201,211,212,213,215,167, - 150,2718,2741,3413,336,331,336,3659,336,2751, - 166,1618,193,165,168,169,170,171,172,3127, - 35,947,32,2758,3197,27,30,31,963,969, - 26,28,935,261,25,23,50,1018,104,75, - 76,106,2233,3127,35,947,32,3333,3197,27, - 30,31,963,969,26,28,935,261,25,23, - 50,1018,104,75,76,106,2285,3127,35,947, - 32,2753,3197,27,30,31,963,969,26,28, - 935,261,25,23,50,1018,104,75,76,106, - 2328,3127,35,947,32,2733,3197,27,30,31, - 963,969,26,28,935,261,25,23,50,1018, - 104,75,76,84,3127,1757,947,1815,383,3197, - 27,30,31,963,969,26,28,935,261,25, - 23,50,1018,104,75,76,83,3127,35,947, - 32,2739,3197,27,30,31,963,969,26,28, - 935,261,25,23,50,1018,104,75,76,82, - 3127,35,947,32,382,3197,27,30,31,963, - 969,26,28,935,261,25,23,50,1018,104, - 75,76,81,3127,35,947,32,2793,3197,27, - 30,31,963,969,26,28,935,261,25,23, - 50,1018,104,75,76,80,3127,35,947,32, - 2794,3197,27,30,31,963,969,26,28,935, - 261,25,23,50,1018,104,75,76,79,3127, - 35,947,32,87,3197,27,30,31,963,969, - 26,28,935,261,25,23,50,1018,104,75, - 76,78,3127,35,947,32,2763,3197,27,30, - 31,963,969,26,28,935,261,25,23,50, - 1018,104,75,76,77,2956,35,947,32,2764, - 3197,27,30,31,963,969,26,28,935,261, - 25,23,50,1018,104,75,76,102,3127,35, - 947,32,2765,3197,27,30,31,963,969,26, - 28,935,261,25,23,50,1018,104,75,76, - 108,3127,35,947,32,2769,3197,27,30,31, - 963,969,26,28,935,261,25,23,50,1018, - 104,75,76,107,3127,35,947,32,1977,3197, - 27,30,31,963,969,26,28,935,261,25, - 23,50,1018,104,75,76,105,3127,35,947, - 32,2776,3197,27,30,31,963,969,26,28, - 935,261,25,23,50,1018,104,75,76,103, - 1992,35,3569,32,3302,4657,27,30,31,963, - 969,340,28,1795,1869,35,947,32,3302,4657, - 27,30,31,963,969,340,28,49,49,173, - 2771,4255,1198,1566,2858,2795,49,2746,2796,2447, - 970,2790,49,49,4740,1827,1198,2746,2417,2746, - 49,2241,200,2777,3447,2799,4179,227,154,320, - 2074,322,2800,2798,315,2064,2651,344,2847,227, - 2746,1795,3621,320,2074,322,1795,2900,315,2064, - 204,214,4591,1990,203,211,212,213,215,3095, - 2702,314,204,214,4591,5437,203,211,212,213, - 215,3019,49,49,2516,1972,1198,1198,1198,4111, - 198,205,207,209,3321,299,216,206,208,587, - 35,1729,390,205,207,209,3321,1914,216,206, - 208,2746,154,154,154,5437,5437,308,311,544, - 2548,2450,2575,2642,160,2746,2799,5437,4477,5437, - 5437,227,5437,49,1618,1618,507,2485,3157,1795, - 4477,3037,49,1726,754,344,1198,420,421,3567, - 587,35,1729,390,204,214,4591,533,203,211, - 212,213,215,3286,35,1729,390,3095,2741,2050, - 3371,3474,154,2746,94,752,237,261,4164,504, - 506,1618,2768,536,49,205,207,209,3321,432, - 216,206,208,344,1726,2544,5437,273,1869,35, - 947,32,3302,4657,27,30,31,963,969,340, - 28,929,35,1729,390,1379,1618,1638,1618,5437, - 3393,3646,4477,5437,5437,2240,231,1956,35,947, - 32,1795,4723,27,30,31,963,969,340,28, - 1618,5437,5437,384,49,49,5437,5437,1198,235, - 229,230,1724,5437,4369,1726,47,320,2074,322, - 274,5437,315,2064,4320,5437,5437,5437,3468,1355, - 221,5437,5437,1198,154,3265,3613,3019,5437,242, - 245,248,251,951,2774,334,320,2074,322,1795, - 5437,318,2064,3624,828,1956,35,947,32,158, - 4723,27,30,31,963,969,340,28,1869,35, - 947,32,3302,4657,27,30,31,963,969,340, - 28,3532,5437,5437,5437,2778,5437,2001,191,2746, - 5437,2746,5437,5437,5437,5437,1355,2651,49,1653, - 1198,2746,2746,2746,5437,3019,5437,1849,5437,344, - 5437,227,5437,334,320,2074,322,5437,5437,316, - 2064,2702,344,227,5437,3018,158,320,2074,322, - 5437,4217,315,2064,204,214,4591,5437,203,211, - 212,213,215,5437,3095,4115,204,214,4591,5437, - 203,211,212,213,215,49,5437,1740,49,1198, - 2401,2746,1198,5437,5437,205,207,209,3321,2088, - 522,206,208,2746,5437,5437,5437,205,207,209, - 3321,227,521,206,208,154,5437,507,154,5437, - 5437,5437,3177,227,5437,1816,5437,5437,4298,674, - 35,1729,390,5437,204,214,4591,5437,203,211, - 212,213,215,5437,5437,2175,204,214,4591,2746, - 203,211,212,213,215,5437,5437,5437,1355,5437, - 505,506,1198,49,5437,205,207,209,3321,227, - 217,206,208,1726,47,5437,5437,205,207,209, - 3321,5437,306,206,208,1355,2560,5437,158,1198, - 5437,5437,204,214,4591,5437,203,211,212,213, - 215,2160,35,947,32,2491,4657,27,30,31, - 963,969,340,28,4296,158,1180,5437,5437,5437, - 2746,4901,5437,205,207,209,3321,1286,501,206, - 208,2746,4901,1901,5437,5437,5437,2746,4179,5437, - 227,5437,1901,5437,5437,5437,2746,4179,5437,5437, - 5437,227,5437,5437,3303,5437,5437,2702,5437,5437, - 317,3503,322,1422,409,3479,2702,674,35,1729, - 390,5437,5437,5437,1422,409,3479,5437,5437,5437, - 5437,3516,5437,3019,5437,929,35,1729,390,2686, - 5437,333,3019,2746,410,411,412,3321,5437,5437, - 333,49,5437,5437,5437,410,411,412,3321,5437, - 5437,1726,2698,2702,5437,5437,5437,3240,5437,49, - 5437,5437,2811,361,2789,5437,5437,5437,3240,1726, - 47,3115,361,674,35,1729,390,2239,3202,3215, - 5437,49,1328,5437,5437,2746,2239,3202,3215,5437, - 674,35,1729,390,674,35,1729,390,5437,5437, - 5437,2824,5437,5437,5437,344,5437,49,674,35, - 1729,390,1649,35,1729,390,5437,1726,598,507, - 5437,413,415,5437,49,5437,5437,3095,49,5437, - 2789,5437,413,416,1726,47,5437,5437,1726,47, - 2721,5437,49,511,540,1125,49,1384,4617,5437, - 5437,2160,1726,47,5437,5437,1726,47,674,35, - 1729,390,504,506,344,2247,5437,49,5437,2881, - 154,540,674,35,1729,390,2168,35,1729,390, - 186,5437,5437,5437,49,5437,4388,5437,540,5437, - 5437,344,49,587,35,1729,390,154,5437,5437, - 5437,5437,1726,47,4018,5437,49,186,344,5437, - 49,5437,5437,4388,154,2606,1726,47,5437,2719, - 1726,47,5437,2746,1392,5437,5437,49,5437,2817, - 3095,49,49,2979,5437,540,540,1726,2756,5437, - 49,5437,188,344,2746,5437,1245,587,35,1729, - 390,587,35,1729,390,344,344,5437,5437,49, - 5437,154,154,2746,344,934,5437,5437,5437,3681, - 5437,186,186,5437,5437,5437,5437,4388,4388,5437, - 5437,49,5437,344,5437,49,3095,5437,5437,5437, - 5437,1726,564,5437,5437,1726,2571,5437,5437,5437, - 5437,5437,509,5437,5437,3095,5437,5437,5437,5437, - 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, - 5437,537,4219,5437,5437,5437,5437,5437,5437,5437, - 5437,5437,5437,4214,4215,5437,5437,5437,5437,5437, - 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, - 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, - 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, - 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, - 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, - 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, - 5437,5437,5437,5437,5437,5437,5437,5437,5437,5437, - 5437,5437,5437,5437,5437,444,5437,458,5437,0, - 39,5452,0,39,5451,0,576,29,0,442, - 787,0,456,1088,0,38,651,0,38,5452, - 0,38,5451,0,2646,124,0,1,446,0, - 460,728,0,459,956,0,2528,89,0,576, - 389,0,35,33,0,32,34,0,39,651, - 0,1,631,0,1,5709,0,1,5708,0, - 1,5707,0,1,5706,0,1,5705,0,1, - 5704,0,1,5703,0,1,5702,0,1,5701, - 0,1,5700,0,1,5699,0,39,1,5452, - 0,39,1,5451,0,632,1,0,283,396, - 0,283,288,0,5670,240,0,5669,240,0, - 5776,240,0,5775,240,0,5697,240,0,5696, - 240,0,5695,240,0,5694,240,0,5693,240, - 0,5692,240,0,5691,240,0,5690,240,0, - 5709,240,0,5708,240,0,5707,240,0,5706, - 240,0,5705,240,0,5704,240,0,5703,240, - 0,5702,240,0,5701,240,0,5700,240,0, - 5699,240,0,39,5452,240,0,39,5451,240, - 0,5475,240,0,5452,48,0,5451,48,0, - 5443,1,0,5442,1,0,2992,236,0,32, - 390,0,29,389,0,43,5473,0,43,37, - 0,2646,126,0,2646,125,0,332,447,0, - 5475,1,0,39,1,0,47,37,0,1, - 90,0,503,3263,0,5475,1,228,0,39, - 1,228,0,228,418,0,5452,37,0,5451, - 37,0,5452,2,37,0,5451,2,37,0, - 5452,36,0,5451,36,0,5473,45,0,37, - 45,0,5447,407,0,5446,407,0,1,4278, - 0,1,4869,0,1,651,0,228,417,0, - 3007,319,0,332,93,0,35,72,0,1, - 332,0,4349,278,0,503,4419,0,1,228, - 0,228,219,0,1,2534,0,1,2538,0, - 228,218,0,5449,1,0,5445,1,0,1, - 228,3880,0,5446,228,0,3903,228,0,5449, - 385,0,5448,385,0,4089,228,0,10,12, - 0,8,10,12,0,4113,192,0,183,3556, - 0,4143,385,0,8,12,0 + 18,18,18,18,18,18,18,18,18,157, + 157,157,131,131,19,19,19,19,19,19, + 19,19,19,19,19,19,20,20,192,192, + 193,193,194,160,160,161,161,158,158,162, + 159,159,21,21,22,22,23,23,23,24, + 24,24,24,25,25,25,26,26,26,30, + 30,30,30,30,33,33,33,34,34,35, + 35,37,37,38,38,40,40,41,41,45, + 45,45,45,45,47,47,47,52,52,54, + 54,61,61,62,62,63,63,64,64,65, + 65,65,65,65,65,65,65,65,65,65, + 65,65,29,29,46,46,46,46,46,46, + 46,46,46,46,46,46,46,36,28,163, + 163,105,105,195,195,104,219,219,82,82, + 82,82,82,82,82,82,82,83,83,83, + 78,78,66,66,196,196,84,84,84,116, + 116,197,197,85,85,85,85,198,198,86, + 86,86,86,86,87,87,95,95,95,95, + 95,95,95,95,55,55,55,55,55,132, + 132,130,130,56,199,27,27,27,27,27, + 50,50,69,69,69,69,69,137,137,133, + 133,133,133,133,134,134,134,135,135,135, + 136,136,136,165,165,165,70,70,70,70, + 70,71,71,71,13,14,14,14,14,14, + 14,14,14,14,14,14,106,138,138,138, + 138,138,138,111,111,111,166,167,167,112, + 112,200,169,169,168,168,139,139,117,92, + 92,140,58,49,170,170,59,57,97,97, + 171,171,164,164,141,142,142,143,89,89, + 172,172,76,76,76,73,73,72,77,77, + 79,79,68,68,68,53,98,98,108,107, + 107,51,51,74,74,81,81,60,109,109, + 109,99,99,99,100,100,101,101,101,102, + 102,118,118,118,120,120,119,119,220,220, + 103,103,202,202,202,202,202,145,48,48, + 174,201,201,146,146,147,147,147,148,176, + 203,203,31,31,110,114,114,114,114,205, + 122,121,121,113,113,113,177,178,178,178, + 178,178,178,178,178,178,178,178,207,207, + 204,204,206,206,179,180,180,180,180,181, + 208,124,123,123,209,209,182,182,182,182, + 115,115,115,210,210,8,8,9,211,211, + 212,183,173,173,184,184,185,186,186,7, + 7,10,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,90,93,93,187,187,150, + 150,151,151,151,151,151,151,3,152,152, + 149,149,188,221,222,222,223,223,224,225, + 225,189,190,190,190,190,214,214,214,126, + 126,126,126,126,127,128,128,125,125,96, + 91,88,88,175,175,129,129,215,215,215, + 153,153,144,144,216,216,191,191,1119,35, + 2044,2037,4502,1355,27,30,31,1030,1171,26, + 28,2003,294,25,23,50,1182,104,75,76, + 106,1258,1284,1281,1346,332,147,175,1331,306, + 924,1587,1436,1657,1213,1634,1704,413,1728,174, + 71,35,1822,423,189,2555,35,310,1941,264, + 2532,319,1638,35,1021,32,4949,3844,27,30, + 31,1030,1171,373,28,1405,1297,267,262,263, + 1510,466,1673,35,1822,423,2360,35,1021,32, + 672,5442,27,30,31,1030,1171,26,28,986, + 294,25,23,50,1182,104,75,76,106,1258, + 1284,1281,2816,49,307,160,2600,1519,274,277, + 280,821,1132,56,56,1775,958,3766,676,1206, + 1671,2750,3345,2864,350,3441,355,387,2861,388, + 2912,908,2263,2395,2857,5962,283,2905,2914,2975, + 159,577,187,71,3449,1543,35,1021,32,4828, + 1859,27,30,31,1030,1171,57,28,1537,35, + 312,625,4328,3272,759,35,3173,2137,2360,35, + 1021,32,672,5442,27,30,31,1030,1171,26, + 28,986,294,25,23,50,1182,104,75,76, + 106,1258,1284,1281,2816,49,386,160,1818,1037, + 1238,548,574,3257,578,71,3180,1775,1334,71, + 1849,1997,34,2750,2046,2864,378,650,648,383, + 2861,1938,2912,2600,1797,2734,376,416,2988,2905, + 2914,2975,159,577,665,2224,2360,35,1021,32, + 672,5442,27,30,31,1030,1171,26,28,986, + 294,25,23,50,1182,104,75,76,106,1258, + 1284,1281,2816,69,2088,160,1818,3337,2215,35, + 1021,32,4828,2369,27,30,31,1030,1171,56, + 28,2750,323,2864,1647,2057,56,2277,2861,2080, + 2912,768,533,548,574,3257,578,2905,2914,2975, + 159,577,61,1912,35,1021,32,5073,1257,27, + 30,31,1030,1171,26,28,3275,3060,546,532, + 2988,271,294,69,71,35,1822,423,2570,35, + 1021,32,672,5442,27,30,31,1030,1171,26, + 28,986,294,25,23,50,1182,104,75,76, + 106,1258,1284,1281,2816,49,1520,160,1335,264, + 495,548,574,3257,578,1851,3449,1775,1170,1556, + 1537,35,312,2750,4564,2864,363,272,262,263, + 2861,2445,2912,1088,3337,3080,1400,1085,2988,2905, + 2914,2975,159,577,2708,35,1021,32,672,69, + 27,30,31,1030,1171,26,28,986,294,25, + 23,50,1182,104,75,76,106,1258,1284,1281, + 1346,2736,439,175,1331,60,764,1587,1436,1657, + 2738,1634,1704,1192,1728,174,2918,71,35,3163, + 413,1559,35,1021,32,71,3608,41,30,31, + 1030,1171,1609,549,574,3257,578,2428,35,1021, + 32,672,1728,27,30,31,1030,1171,26,28, + 986,294,25,23,50,1182,104,75,76,106, + 1258,1284,1281,1346,473,147,175,1331,1824,4867, + 1587,1436,1657,2866,1634,1704,478,1728,174,2918, + 2456,35,310,413,322,3327,35,1021,32,672, + 2634,27,30,31,1030,1171,26,28,986,294, + 25,23,50,1182,104,75,76,106,1258,1284, + 1281,1346,1488,1681,3450,1331,2413,2420,1587,2578, + 420,414,2862,2638,35,1021,32,672,4549,27, + 30,31,1030,1171,26,28,986,294,25,23, + 50,1182,104,75,76,106,1258,1284,1281,1346, + 1104,2765,175,1331,1323,1624,1587,1436,1657,2728, + 1634,1704,3735,1728,174,2918,1537,35,565,413, + 5195,583,1994,35,1021,32,2634,3325,40,30, + 31,1030,1171,421,414,2862,2973,35,1021,32, + 672,1192,27,30,31,1030,1171,26,28,986, + 294,25,23,50,1182,104,75,76,106,1258, + 1284,1281,1346,425,462,175,1331,2010,147,1587, + 1436,1657,4887,1634,1704,1248,1728,174,71,35, + 1997,3159,189,3327,35,1021,32,672,1239,27, + 30,31,1030,1171,26,28,986,294,25,23, + 50,1182,104,75,76,106,1258,1284,1281,1346, + 56,1449,91,1331,1233,836,1587,1436,2577,411, + 414,2862,2973,35,1021,32,672,1488,27,30, + 31,1030,1171,26,28,986,294,25,23,50, + 1182,104,75,76,106,1258,1284,1281,1346,426, + 462,175,1331,56,1037,1587,1436,1657,6195,1634, + 1704,1338,1728,174,71,35,2276,2209,407,1660, + 1728,2973,35,1021,32,672,55,27,30,31, + 1030,1171,26,28,986,294,25,23,50,1182, + 104,75,76,106,1258,1284,1281,1346,56,625, + 175,1331,1818,3059,1587,1436,1657,2491,1634,1704, + 1818,1728,174,71,35,1997,309,407,2973,35, + 1021,32,672,1501,27,30,31,1030,1171,26, + 28,986,294,25,23,50,1182,104,75,76, + 106,1258,1284,1281,1346,2276,437,175,1331,56, + 1206,1587,1436,1657,706,1634,1704,241,1728,174, + 931,35,1997,309,407,1365,1662,406,2502,35, + 1021,32,672,191,27,30,31,1030,1171,26, + 28,986,294,25,23,50,1182,104,75,76, + 106,1258,1284,1281,1346,56,494,175,1331,583, + 1206,1587,1436,1657,5795,1634,1704,1818,1728,174, + 71,3339,1997,73,173,1488,405,2345,2973,35, + 1021,32,672,2641,27,30,31,1030,1171,26, + 28,986,294,25,23,50,1182,104,75,76, + 106,1258,1284,1281,1346,2804,1818,175,1331,56, + 1860,1587,1436,1657,965,1634,1704,1950,1728,174, + 71,35,315,403,190,2973,35,1021,32,672, + 3275,27,30,31,1030,1171,26,28,986,294, + 25,23,50,1182,104,75,76,106,1258,1284, + 1281,1346,1192,1750,175,1331,69,1990,1587,1436, + 1657,51,1634,1704,1818,1728,174,931,35,1997, + 3344,186,2973,35,1021,32,672,65,27,30, + 31,1030,1171,26,28,986,294,25,23,50, + 1182,104,75,76,106,1258,1284,1281,1346,56, + 360,175,1331,56,2099,1587,1436,1657,1110,1634, + 1704,1818,1728,174,71,35,1997,311,185,2973, + 35,1021,32,672,228,27,30,31,1030,1171, + 26,28,986,294,25,23,50,1182,104,75, + 76,106,1258,1284,1281,1346,56,61,175,1331, + 56,1196,1587,1436,1657,3614,1634,1704,95,1728, + 174,71,35,1997,3451,184,2973,35,1021,32, + 672,2929,27,30,31,1030,1171,26,28,986, + 294,25,23,50,1182,104,75,76,106,1258, + 1284,1281,1346,56,1007,175,1331,56,2144,1587, + 1436,1657,823,1634,1704,96,1728,174,71,35, + 1997,314,183,2973,35,1021,32,672,1334,27, + 30,31,1030,1171,26,28,986,294,25,23, + 50,1182,104,75,76,106,1258,1284,1281,1346, + 147,1348,175,1331,5011,2702,1587,1436,1657,2178, + 1634,1704,1847,1728,174,71,35,1997,564,182, + 2973,35,1021,32,672,233,27,30,31,1030, + 1171,26,28,986,294,25,23,50,1182,104, + 75,76,106,1258,1284,1281,1346,2661,441,175, + 1331,56,1908,1587,1436,1657,1815,1634,1704,56, + 1728,174,2277,2277,1862,2634,181,2973,35,1021, + 32,672,2795,27,30,31,1030,1171,26,28, + 986,294,25,23,50,1182,104,75,76,106, + 1258,1284,1281,1346,5772,24,175,1331,2249,1361, + 1587,1436,1657,69,1634,1704,56,1728,174,2277, + 2277,3439,2634,180,2973,35,1021,32,672,1482, + 27,30,31,1030,1171,26,28,986,294,25, + 23,50,1182,104,75,76,106,1258,1284,1281, + 1346,68,53,175,1331,56,1413,1587,1436,1657, + 2672,1634,1704,1915,1728,174,1942,6110,2934,2489, + 179,2973,35,1021,32,672,1934,27,30,31, + 1030,1171,26,28,986,294,25,23,50,1182, + 104,75,76,106,1258,1284,1281,1346,428,462, + 175,1331,56,2112,1587,1436,1657,2738,1634,1704, + 56,1728,174,2934,2670,5840,2132,178,2973,35, + 1021,32,672,456,27,30,31,1030,1171,26, + 28,986,294,25,23,50,1182,104,75,76, + 106,1258,1284,1281,1346,427,462,175,1331,424, + 1488,1587,1436,1657,1499,1634,1704,2831,1728,174, + 759,35,431,1832,177,2973,35,1021,32,672, + 2280,27,30,31,1030,1171,26,28,986,294, + 25,23,50,1182,104,75,76,106,1258,1284, + 1281,1346,2597,358,175,1331,56,3785,1587,1436, + 1657,6039,1634,1704,3724,1728,174,2693,35,313, + 2524,176,2852,35,1021,32,672,159,27,30, + 31,1030,1171,26,28,986,294,25,23,50, + 1182,104,75,76,106,1258,1284,1281,1346,1734, + 1508,2540,1331,5314,3884,1587,1436,1657,2627,1634, + 1704,482,3081,195,2973,35,1021,32,672,2007, + 27,30,31,1030,1171,26,28,986,294,25, + 23,50,1182,104,75,76,106,1258,1284,1281, + 1346,3550,1718,175,1331,1192,2598,1587,1436,1657, + 2008,1634,1704,3063,1728,174,482,843,390,584, + 138,1537,35,488,2007,5872,361,592,366,2084, + 2341,3094,35,1021,32,672,1516,27,30,31, + 1030,1171,26,28,986,294,25,23,50,1182, + 104,75,76,106,1258,1284,1281,2816,2471,1613, + 160,1243,35,1021,32,4949,4990,27,30,31, + 1030,1171,373,28,1903,2341,2750,3847,2864,56, + 1229,35,328,2861,1953,2912,362,369,1423,159, + 271,294,2905,2914,2975,159,171,3094,35,1021, + 32,672,1645,27,30,31,1030,1171,26,28, + 986,294,25,23,50,1182,104,75,76,106, + 1258,1284,1281,2816,1595,1335,160,86,264,2489, + 100,2402,369,353,2260,355,2489,348,1954,1656, + 2701,464,2750,1350,2864,1653,272,262,263,2861, + 347,2912,227,2171,35,488,3002,5872,2905,2914, + 2975,159,170,3094,35,1021,32,672,3503,27, + 30,31,1030,1171,26,28,986,294,25,23, + 50,1182,104,75,76,106,1258,1284,1281,2816, + 1499,147,160,399,264,6246,2734,1427,2623,3184, + 2775,4307,341,344,2593,481,3545,3547,2750,319, + 2864,1801,276,262,263,2861,320,2912,2789,359, + 1485,2007,415,377,2905,2914,2975,159,169,3094, + 35,1021,32,672,417,27,30,31,1030,1171, + 26,28,986,294,25,23,50,1182,104,75, + 76,106,1258,1284,1281,2816,884,2277,160,1243, + 35,1021,32,4949,4990,27,30,31,1030,1171, + 373,28,2341,3184,2750,1655,2864,2762,1809,42, + 3125,2861,56,2912,759,35,431,1994,2929,52, + 2905,2914,2975,159,168,3094,35,1021,32,672, + 319,27,30,31,1030,1171,26,28,986,294, + 25,23,50,1182,104,75,76,106,1258,1284, + 1281,2816,56,1365,160,2627,264,1206,368,369, + 2417,353,2260,355,389,348,1954,485,3545,3547, + 2750,2420,2864,592,279,262,263,2861,3364,2912, + 3514,1815,1192,44,3125,3884,2905,2914,2975,159, + 167,3094,35,1021,32,672,495,27,30,31, + 1030,1171,26,28,986,294,25,23,50,1182, + 104,75,76,106,1258,1284,1281,2816,1750,2277, + 160,1243,35,1021,32,4949,4990,27,30,31, + 1030,1171,373,28,3063,3552,2750,477,2864,491, + 2731,35,563,2861,2874,2912,759,35,431,367, + 1488,384,2905,2914,2975,159,166,3094,35,1021, + 32,672,3001,27,30,31,1030,1171,26,28, + 986,294,25,23,50,1182,104,75,76,106, + 1258,1284,1281,2816,70,2256,160,405,1917,2489, + 572,2626,2581,353,2260,355,4473,348,1954,1229, + 3541,328,2750,2322,2864,1752,415,56,1488,2861, + 3613,2912,5852,1929,87,1765,410,100,2905,2914, + 2975,159,165,3094,35,1021,32,672,2185,27, + 30,31,1030,1171,26,28,986,294,25,23, + 50,1182,104,75,76,106,1258,1284,1281,2816, + 2581,2277,160,1729,35,1021,32,5073,2353,27, + 30,31,1030,1171,59,28,2418,3618,2750,330, + 2864,213,147,56,410,2861,6263,2912,2310,71, + 35,328,2007,88,2905,2914,2975,159,164,3094, + 35,1021,32,672,2450,27,30,31,1030,1171, + 26,28,986,294,25,23,50,1182,104,75, + 76,106,1258,1284,1281,2816,1427,2277,160,1729, + 35,1021,32,5073,408,27,30,31,1030,1171, + 58,28,56,2341,2750,56,2864,2802,147,1485, + 5864,2861,6301,2912,2496,71,35,328,2007,1703, + 2905,2914,2975,159,163,3094,35,1021,32,672, + 1867,27,30,31,1030,1171,26,28,986,294, + 25,23,50,1182,104,75,76,106,1258,1284, + 1281,2816,2798,2277,160,1994,35,1021,32,2663, + 369,1759,30,31,1030,1171,3082,2489,56,2341, + 2750,147,2864,6109,346,6315,2593,2861,56,2912, + 2178,6101,2007,1062,2818,1707,2905,2914,2975,159, + 162,3094,35,1021,32,672,571,27,30,31, + 1030,1171,26,28,986,294,25,23,50,1182, + 104,75,76,106,1258,1284,1281,2816,2725,333, + 160,1994,35,1021,32,364,369,2800,30,31, + 1030,1171,3362,2341,56,56,2750,1833,2864,2930, + 4307,2268,1488,2861,581,2912,1508,329,2178,1488, + 3884,1488,2905,2914,2975,159,161,3154,35,1021, + 32,672,377,27,30,31,1030,1171,26,28, + 986,294,25,23,50,1182,104,75,76,106, + 1258,1284,1281,2816,2974,753,160,253,264,2854, + 369,2581,491,2581,2006,717,2277,1904,56,3063, + 2669,3884,2750,3087,2864,1340,282,262,263,2861, + 1499,2912,2178,584,2917,2920,1896,586,2905,2914, + 2975,159,158,3214,35,1021,32,672,67,27, + 30,31,1030,1171,26,28,986,294,25,23, + 50,1182,104,75,76,106,1258,1284,1281,1346, + 3063,337,175,1331,56,1657,1587,1436,1657,994, + 1634,1704,2178,1728,174,2917,2277,2277,1019,220, + 3327,35,1021,32,672,1488,27,30,31,1030, + 1171,26,28,986,294,25,23,50,1182,104, + 75,76,106,1258,1284,1281,1346,56,66,65, + 1331,210,5133,1587,1436,1657,92,1634,1704,2178, + 3081,195,3327,35,1021,32,672,2581,27,30, + 31,1030,1171,26,28,986,294,25,23,50, + 1182,104,75,76,106,1258,1284,1281,1346,2594, + 2533,585,1331,1248,4307,1587,1436,1657,230,1634, + 1704,2927,3081,195,357,2914,4624,94,2489,2178, + 2534,744,2178,592,2277,2277,4172,2489,2277,3327, + 35,1021,32,672,1621,27,30,31,1030,1171, + 26,28,986,294,25,23,50,1182,104,75, + 76,106,1258,1284,1281,1346,64,1895,229,1331, + 55,336,1587,1436,1657,835,1634,1704,2277,3081, + 195,3327,35,1021,32,672,458,27,30,31, + 1030,1171,26,28,986,294,25,23,50,1182, + 104,75,76,106,1258,1284,1281,1346,338,2492, + 54,1331,394,2564,1587,1436,1657,417,1634,1704, + 3062,3081,195,1486,2290,2018,1011,3085,3174,3175, + 2178,2178,589,743,71,35,1822,423,3327,35, + 1021,32,672,327,27,30,31,1030,1171,26, + 28,986,294,25,23,50,1182,104,75,76, + 106,1258,1284,1281,1346,49,915,925,1331,233, + 231,1587,1436,1657,2045,1634,1704,46,3081,195, + 3486,35,1021,32,672,457,27,30,31,1030, + 1171,26,28,986,294,25,23,50,1182,104, + 75,76,106,1258,1284,1281,1346,2023,2542,2010, + 1331,577,3345,1587,1436,1657,2486,1634,1704,2179, + 3081,195,1922,2494,2389,757,2528,2011,1492,35, + 3454,32,4949,4990,27,30,31,1030,1171,373, + 28,141,460,2905,35,1021,32,672,598,27, + 30,31,1030,1171,26,28,986,294,25,23, + 50,1182,104,75,76,106,1258,1284,1281,2816, + 377,187,2878,264,2945,2490,2595,2601,264,1813, + 2003,35,1822,423,3605,2276,386,2706,3170,3003, + 1206,285,262,263,1663,1508,276,262,263,3884, + 353,2260,355,717,348,1954,378,650,648,383, + 2628,306,2178,191,2277,2277,576,1755,2277,3327, + 35,1021,32,672,1812,27,30,31,1030,1171, + 26,28,986,294,25,23,50,1182,104,75, + 76,106,1258,1284,1281,1346,356,99,3063,1331, + 2722,332,1587,1436,1657,651,1634,2603,3433,35, + 1021,32,672,366,27,30,31,1030,1171,26, + 28,986,294,25,23,50,1182,104,75,76, + 106,1258,1284,1281,2816,2277,3176,2566,3004,2594, + 2377,2664,4307,4706,4307,71,35,1822,423,2633, + 2960,2778,2995,2750,2959,2864,1216,453,454,3452, + 2861,71,2912,2178,4172,2793,4172,2932,2277,2905, + 3274,3327,35,1021,32,672,306,27,30,31, + 1030,1171,26,28,986,294,25,23,50,1182, + 104,75,76,106,1258,1284,1281,1346,2178,2178, + 486,1331,5017,2961,1587,1436,1657,2416,2580,3380, + 35,1021,32,672,2277,27,30,31,1030,1171, + 26,28,986,294,25,23,50,1182,104,75, + 76,106,1258,1284,1281,2816,1218,254,224,590, + 395,3064,394,1292,3006,3059,412,2881,2962,3117, + 3124,308,3176,3092,2750,3183,2864,3368,3174,3175, + 2277,2861,87,2912,3086,3380,35,1021,32,672, + 3269,27,30,31,1030,1171,26,28,986,294, + 25,23,50,1182,104,75,76,106,1258,1284, + 1281,2816,4982,3118,71,35,1822,423,3119,2092, + 3120,1362,3147,1508,173,3212,2998,3884,3177,1637, + 2750,3178,2864,3236,1851,3449,2277,2861,3237,3261, + 3380,35,1021,32,672,306,27,30,31,1030, + 1171,26,28,986,294,25,23,50,1182,104, + 75,76,106,1258,1284,1281,2816,2966,5044,2958, + 264,6892,6892,6892,6892,6892,3063,6892,6892,6892, + 6892,6892,6892,6892,6892,2750,6892,2864,279,262, + 263,366,3266,3327,35,1021,32,672,6892,27, + 30,31,1030,1171,26,28,986,294,25,23, + 50,1182,104,75,76,106,1258,1284,1281,1346, + 374,4664,2277,1331,2277,2277,2486,3380,35,1021, + 32,672,2277,27,30,31,1030,1171,26,28, + 986,294,25,23,50,1182,104,75,76,106, + 1258,1284,1281,2816,5175,6892,2871,2995,6892,6892, + 6892,6892,6892,6892,3499,6892,6892,6892,6892,6892, + 6892,6892,2750,322,3217,3327,35,1021,32,672, + 6892,27,30,31,1030,1171,26,28,986,294, + 25,23,50,1182,104,75,76,106,1258,1284, + 1281,1346,2408,3450,6892,2534,3327,35,1021,32, + 672,6892,27,30,31,1030,1171,26,28,986, + 294,25,23,50,1182,104,75,76,106,1258, + 1284,1281,1346,6892,6892,6892,2552,3380,35,1021, + 32,672,6892,27,30,31,1030,1171,26,28, + 986,294,25,23,50,1182,104,75,76,106, + 1258,1284,1281,2816,1258,35,1021,32,5184,4990, + 27,30,31,1030,1171,373,28,3380,35,1021, + 32,672,3224,27,30,31,1030,1171,26,28, + 986,294,25,23,50,1182,104,75,76,106, + 1258,1284,1281,2816,71,35,1822,423,6892,6892, + 2776,2277,6892,6892,6892,4484,6892,3063,71,35, + 1822,423,3258,71,35,1822,423,6892,6892,6892, + 6892,6892,366,2181,6892,49,353,2260,355,6892, + 348,1954,385,5305,2783,6892,6892,1775,863,487, + 6892,6892,6892,347,469,6892,6892,3327,35,1021, + 32,672,4422,27,30,31,1030,1171,26,28, + 986,294,25,23,50,1182,104,75,76,106, + 1258,1284,1281,2272,264,6892,6892,6892,2180,386, + 6892,6892,6892,1206,6892,264,6892,6892,71,35, + 1822,423,282,262,263,340,344,2593,6892,378, + 650,648,383,568,262,263,187,6892,6892,2509, + 6892,6892,6892,6892,3181,6892,6892,232,2868,468, + 3327,35,1021,32,672,3549,27,30,31,1030, + 1171,26,28,986,294,25,23,50,1182,104, + 75,76,106,1258,1284,1281,2313,3327,35,1021, + 32,672,6892,27,30,31,1030,1171,26,28, + 986,294,25,23,50,1182,104,75,76,106, + 1258,1284,1281,2342,3327,35,1021,32,672,6892, + 27,30,31,1030,1171,26,28,986,294,25, + 23,50,1182,104,75,76,106,1258,1284,1281, + 2354,3327,35,1021,32,672,6892,27,30,31, + 1030,1171,26,28,986,294,25,23,50,1182, + 104,75,76,106,1258,1284,1281,3182,3327,35, + 1021,32,672,6892,27,30,31,1030,1171,26, + 28,986,294,25,23,50,1182,104,75,76, + 106,1258,1284,1281,3183,3327,35,1021,32,672, + 6892,27,30,31,1030,1171,26,28,986,294, + 25,23,50,1182,104,75,76,106,1258,1284, + 1281,3216,1339,35,1021,32,4949,3603,27,30, + 31,1030,1171,373,28,3327,35,1021,32,672, + 6892,27,30,31,1030,1171,26,28,986,294, + 25,23,50,1182,104,75,76,106,1258,1284, + 1281,3259,6892,6892,6892,3759,35,1021,32,4949, + 6202,27,30,31,1030,1171,373,28,6892,1220, + 35,3454,32,5184,4990,27,30,31,1030,1171, + 373,28,6892,6892,353,2260,355,385,348,1954, + 6892,386,243,35,1822,423,6892,6892,6892,6892, + 6892,3327,71,35,1822,423,6892,6892,6892,6892, + 2276,378,650,648,383,1206,6892,6892,6892,6892, + 6892,3326,3063,49,6892,6892,6892,353,2260,355, + 6892,348,1954,467,386,1775,3075,366,191,6892, + 6892,353,2260,355,3364,348,1954,3539,35,1822, + 423,4252,6892,6892,378,650,648,383,1755,3445, + 269,294,6892,6892,2509,6892,6892,4422,71,35, + 1822,423,6892,3327,35,1021,32,672,306,27, + 30,31,1030,1171,26,28,986,294,25,23, + 50,1182,104,75,76,106,1258,2130,264,49, + 6892,1734,6892,6892,6892,5314,6892,6892,6892,6892, + 6892,1775,1100,6892,400,3088,267,262,263,3327, + 35,1021,32,672,6892,27,30,31,1030,1171, + 26,28,986,294,25,23,50,1182,104,75, + 76,106,1258,1284,2450,6892,6892,6892,452,454, + 3452,2276,6892,307,6892,6892,1206,274,277,280, + 821,1132,1385,35,1021,32,5184,6892,27,30, + 31,1030,1171,373,28,1377,6892,6892,6892,191, + 908,2263,2395,2857,5962,283,3327,35,1021,32, + 672,6892,27,30,31,1030,1171,26,28,986, + 294,25,23,50,1182,104,75,76,106,1258, + 1284,2461,3272,259,6892,3063,1903,6892,598,6892, + 6892,6892,6892,6892,2260,6892,6892,56,3884,4307, + 367,6892,4307,6892,353,2260,355,6892,351,1954, + 260,187,2027,35,1822,423,6892,6892,2292,2982, + 6892,4172,211,1206,377,2581,3128,6892,6892,6892, + 6892,235,247,652,6892,6892,6892,6892,234,244, + 245,246,248,49,6892,1,187,3063,6892,200, + 598,6892,6892,465,596,1775,1136,717,6892,2095, + 6892,199,366,6892,4307,214,198,201,202,203, + 204,205,260,187,71,35,1822,423,1916,3445, + 56,2982,6892,6892,211,1206,377,2581,6892,6892, + 6892,6892,4706,235,247,652,6892,394,6892,6892, + 234,244,245,246,248,49,6892,6892,187,6892, + 6892,200,2707,3174,3175,6892,1813,1775,645,1088, + 6892,6892,6892,199,6892,212,6892,215,198,201, + 202,203,204,205,1416,35,1021,32,4949,3603, + 27,30,31,1030,1171,373,28,3327,35,1021, + 32,672,6892,27,30,31,1030,1171,26,28, + 986,294,25,23,50,1182,104,75,76,106, + 1258,2149,6892,6892,1770,35,1021,32,5184,4535, + 27,30,31,1030,1171,373,28,1385,35,1021, + 32,5184,6892,27,30,31,1030,1171,373,28, + 2276,6892,6892,6892,6892,1206,353,2260,355,603, + 348,1954,6892,386,6892,6892,2126,6892,6892,6892, + 3884,6892,6892,587,6892,6892,56,3063,191,6892, + 6892,1206,6892,378,650,648,383,6892,6892,6892, + 3063,6892,367,588,345,6892,353,2260,355,598, + 349,1954,1419,386,187,367,6892,6892,6892,353, + 2260,355,1477,349,1954,6892,6892,6892,6892,3063, + 6892,260,187,380,650,648,383,2775,6892,6892, + 2982,6892,4307,211,367,6892,2581,6892,6892,6892, + 6892,6892,235,247,652,386,6892,6892,6892,234, + 244,245,246,248,377,3365,431,6892,2180,591, + 200,598,6892,598,6892,380,650,648,383,6892, + 6892,6892,199,6892,6892,6892,3606,198,201,202, + 203,204,205,260,187,3017,187,717,329,35, + 1822,423,2982,6892,2982,211,6892,211,2581,6892, + 6892,6892,6892,6892,235,247,652,6892,594,6892, + 6892,234,244,245,246,248,6892,6892,517,49, + 6892,6892,200,598,6892,6892,6892,329,35,1822, + 423,1775,2050,6892,199,6892,227,6892,209,198, + 201,202,203,204,205,260,187,243,35,1822, + 423,6892,6892,6892,2982,3330,2822,211,49,56, + 2581,4307,6892,6892,1206,6892,235,247,652,6892, + 1775,47,6892,234,244,245,246,248,49,6892, + 603,6892,6892,4172,200,598,6892,187,6892,6892, + 1775,47,6892,6892,2047,2595,199,6892,6892,6892, + 207,198,201,202,203,204,205,260,187,243, + 35,1822,423,56,1530,6892,2982,6892,1206,211, + 6892,6892,2581,6892,6892,6892,6892,6892,235,247, + 652,6892,6892,6892,6892,234,244,245,246,248, + 49,187,689,3507,6892,6892,200,598,6892,2916, + 1508,6892,1775,2397,3884,6892,5858,228,199,540, + 6892,6892,208,198,201,202,203,204,205,260, + 187,329,35,1822,423,6892,3594,3508,2982,6892, + 6892,211,1206,56,2581,6892,6892,6892,1206,6892, + 235,247,652,6892,6892,6892,6892,234,244,245, + 246,248,49,3063,775,187,538,539,200,598, + 6892,187,6892,193,1775,47,6892,6892,366,2986, + 199,6892,6892,6892,218,198,201,202,203,204, + 205,260,187,71,35,1822,423,56,2841,56, + 2982,6892,1206,211,1206,6892,2581,6892,4677,6892, + 6892,56,235,247,652,6892,4307,6892,6892,234, + 244,245,246,248,49,187,6892,187,6892,6892, + 200,6892,6892,2987,6892,3084,1775,958,377,6892, + 6892,6892,199,6892,6892,6892,3647,198,201,202, + 203,204,205,2382,35,1021,32,4949,4990,27, + 30,31,1030,1171,373,28,3327,35,1021,32, + 672,717,27,30,31,1030,1171,26,28,986, + 294,25,23,50,1182,104,75,76,106,2208, + 6892,6892,1943,2276,6892,861,6892,6892,1206,6892, + 598,6892,6892,6892,243,35,1822,423,6892,6892, + 6892,6892,6892,6892,6892,71,35,1822,423,6892, + 6892,191,260,187,6892,353,2260,355,56,348, + 1954,2982,3891,598,211,49,6892,2581,6892,6892, + 6892,6892,347,235,247,652,49,1775,1487,6892, + 234,244,245,246,248,377,187,6892,1775,2530, + 6892,200,6892,947,1813,56,6892,6892,598,6892, + 1206,3594,6892,199,6892,6892,6892,223,198,201, + 202,203,204,205,71,35,1822,423,717,6892, + 260,187,6892,187,340,344,2593,6892,3468,2982, + 6892,3273,211,56,6892,2581,6892,6892,1206,1812, + 6892,235,247,652,6892,49,6892,3498,234,244, + 245,246,248,6892,3549,1033,6892,1775,2245,200, + 598,187,6892,6892,243,35,1822,423,6892,1574, + 6892,199,6892,6892,6892,217,198,201,202,203, + 204,205,260,187,6892,6892,6892,56,6892,6892, + 6892,2982,1206,6892,211,49,6892,2581,6892,6892, + 6892,6892,6892,235,247,652,6892,1775,47,6892, + 234,244,245,246,248,187,6892,6892,6892,6892, + 6892,200,6892,3712,6892,6892,6892,6892,6892,6892, + 6892,640,6892,199,6892,6892,6892,226,198,201, + 202,203,204,205,3327,35,1021,32,672,6892, + 27,30,31,1030,1171,26,28,986,294,25, + 23,50,1182,104,75,76,106,2222,3327,35, + 1021,32,672,6892,27,30,31,1030,1171,26, + 28,986,294,25,23,50,1182,104,75,76, + 106,2265,3638,35,552,6892,6892,6892,6892,6892, + 6892,6892,6892,6892,6892,269,294,3327,35,1021, + 32,672,6892,27,30,31,1030,1171,26,28, + 986,294,25,23,50,1182,104,75,76,84, + 6892,6892,6892,6892,6892,6892,6892,6892,3327,1849, + 1021,1869,672,264,27,30,31,1030,1171,26, + 28,986,294,25,23,50,1182,104,75,76, + 83,267,262,263,3327,35,1021,32,672,6892, + 27,30,31,1030,1171,26,28,986,294,25, + 23,50,1182,104,75,76,82,6892,6892,6892, + 6892,6892,6892,6892,6892,6892,6892,6892,6892,6892, + 6892,6892,274,277,280,821,1132,6892,6892,6892, + 6892,6892,6892,6892,6892,6892,6892,6892,6892,6892, + 6892,6892,6892,6892,6892,2197,3277,3599,3913,6162, + 3327,35,1021,32,672,6892,27,30,31,1030, + 1171,26,28,986,294,25,23,50,1182,104, + 75,76,81,3327,35,1021,32,672,6892,27, + 30,31,1030,1171,26,28,986,294,25,23, + 50,1182,104,75,76,80,6892,6892,6892,6892, + 561,562,566,3327,35,1021,32,672,6892,27, + 30,31,1030,1171,26,28,986,294,25,23, + 50,1182,104,75,76,79,3924,3327,35,1021, + 32,672,6892,27,30,31,1030,1171,26,28, + 986,294,25,23,50,1182,104,75,76,78, + 3327,35,1021,32,672,6892,27,30,31,1030, + 1171,26,28,986,294,25,23,50,1182,104, + 75,76,77,3033,35,1021,32,672,6892,27, + 30,31,1030,1171,26,28,986,294,25,23, + 50,1182,104,75,76,102,3327,35,1021,32, + 672,6892,27,30,31,1030,1171,26,28,986, + 294,25,23,50,1182,104,75,76,108,3327, + 35,1021,32,672,6892,27,30,31,1030,1171, + 26,28,986,294,25,23,50,1182,104,75, + 76,107,3327,35,1021,32,672,6892,27,30, + 31,1030,1171,26,28,986,294,25,23,50, + 1182,104,75,76,105,3327,35,1021,32,672, + 6892,27,30,31,1030,1171,26,28,986,294, + 25,23,50,1182,104,75,76,103,3274,35, + 1021,32,672,6892,27,30,31,1030,1171,26, + 28,986,294,25,23,50,1182,85,75,76, + 1603,6892,6892,6892,56,4307,6892,6892,6892,4307, + 6892,6892,1870,6892,6892,6892,6892,4307,2182,6892, + 6892,6892,6892,598,1959,6892,6892,260,6892,4307, + 6892,377,243,35,1822,423,6892,6892,2700,260, + 6892,6892,6892,4307,6892,377,187,6892,237,247, + 652,260,6892,6892,219,236,244,245,246,248, + 237,247,652,49,717,377,6892,236,244,245, + 246,248,237,247,652,1775,47,6892,2511,236, + 244,245,246,248,6892,1956,6892,6892,6892,6892, + 238,240,242,3324,6892,249,239,241,3071,3898, + 6892,6892,238,240,242,3324,6892,249,239,241, + 6892,6892,6892,6892,238,240,242,3324,6892,249, + 239,241,3589,35,1822,423,4252,6892,2048,6892, + 2579,6892,6089,4307,221,270,294,6892,6892,6892, + 6892,6892,2787,56,6089,6892,6892,6892,598,6892, + 6892,6892,6892,306,3078,260,6089,2315,35,1021, + 32,4949,4229,27,30,31,1030,1171,373,28, + 377,187,6892,264,6892,6892,237,247,652,219, + 6892,6892,6892,236,244,245,246,248,6892,1692, + 6892,268,262,263,4307,6892,438,6892,6892,2822, + 6892,6892,6892,2511,4307,6892,6892,6892,6892,6892, + 6892,6892,6892,6892,6892,3463,260,6892,238,240, + 242,3324,6892,580,239,241,4172,6892,307,350, + 3441,355,275,278,281,821,1132,237,247,652, + 6892,6892,6892,6892,236,244,245,246,248,1781, + 6892,6892,6892,3705,4307,6892,6892,6892,6892,3560, + 284,2137,6892,6892,6892,6892,4307,6892,6892,2882, + 243,35,1822,423,4307,6892,260,6892,6892,238, + 240,242,3324,6892,579,239,241,6892,260,6892, + 6892,6892,6892,6892,6892,6892,4172,237,247,652, + 6892,49,540,6892,236,244,245,246,248,237, + 247,652,6892,1775,47,6892,236,244,245,246, + 248,2226,3687,35,552,6892,4307,6892,6892,1797, + 6892,6892,6892,6892,6892,270,294,3903,6892,238, + 240,242,3324,6892,250,239,241,6892,260,537, + 539,238,240,242,3324,1179,339,239,241,5264, + 4307,6892,2260,6892,6892,6892,3884,4307,6892,237, + 247,652,540,264,6892,6892,236,244,245,246, + 248,6892,260,6892,6892,6892,3543,6892,6892,4172, + 6892,268,262,263,1296,6892,6892,6892,5264,4307, + 6892,6892,6892,983,442,5997,2271,35,1822,423, + 6892,238,240,242,3324,3063,534,239,241,537, + 539,260,6892,243,35,1822,423,6892,6892,6892, + 366,6892,275,278,281,821,1132,49,6892,6892, + 6892,6892,983,442,5997,443,444,445,3324,1775, + 47,6892,6892,6892,49,6892,3601,6892,6892,6892, + 4664,243,35,1822,423,394,1775,47,6892,56, + 3276,6892,6892,2669,4307,2459,35,1822,423,6892, + 2707,3174,3175,6892,443,444,445,3324,56,6892, + 3978,6892,49,598,56,6892,377,6892,56,598, + 6892,6892,6892,4307,1775,47,49,6892,56,3276, + 561,562,567,4307,6892,377,187,6892,1775,47, + 6892,377,187,6892,219,377,56,6892,4262,717, + 219,4307,446,448,6892,377,6892,6892,6892,6892, + 6892,6892,2735,6892,6892,6892,6892,6892,2511,6892, + 2773,6892,6892,377,2511,6892,6892,6892,717,1909, + 6892,6892,6234,6892,6892,6892,6892,6892,717,6892, + 6892,446,449,6892,6892,6892,6892,6892,6892,544, + 6892,6892,6892,6892,6892,6892,717,6892,6892,542, + 6892,6892,6892,6892,6892,6892,6892,6892,6892,6892, + 6892,6892,6892,6892,3616,6892,6892,595,6892,6892, + 3702,6892,0,39,6907,0,39,6906,0,713, + 29,0,475,886,0,489,1280,0,38,809, + 0,38,6907,0,38,6906,0,4037,124,0, + 1,479,0,493,866,0,492,1372,0,1465, + 89,0,713,422,0,35,33,0,32,34, + 0,39,809,0,1,626,0,1,7197,0, + 1,7196,0,1,7195,0,1,7194,0,1, + 7193,0,1,7192,0,1,7191,0,1,7190, + 0,1,7189,0,1,7188,0,1,7187,0, + 39,1,6907,0,39,1,6906,0,316,429, + 0,316,321,0,7158,273,0,7157,273,0, + 7264,273,0,7263,273,0,7185,273,0,7184, + 273,0,7183,273,0,7182,273,0,7181,273, + 0,7180,273,0,7179,273,0,7178,273,0, + 7197,273,0,7196,273,0,7195,273,0,7194, + 273,0,7193,273,0,7192,273,0,7191,273, + 0,7190,273,0,7189,273,0,7188,273,0, + 7187,273,0,39,6907,273,0,39,6906,273, + 0,6930,273,0,6907,48,0,6906,48,0, + 6898,1,0,6897,1,0,1415,269,0,32, + 423,0,29,422,0,43,6928,0,43,37, + 0,4037,126,0,4037,125,0,1,5818,0, + 1,5457,0,1,5514,0,1,5580,0,1, + 5603,0,1,5633,0,1,5657,0,1,5680, + 0,1041,1,0,1,2316,0,1,5488,0, + 1,6914,0,1,6913,0,1,6912,0,1, + 6911,0,1,6910,0,1,6909,0,1,6908, + 0,1,637,0,1,670,0,1,814,0, + 1,835,0,1,873,0,1,3293,0,39, + 1,0,365,480,0,6930,1,0,47,37, + 0,1,90,0,6907,273,0,6906,273,0, + 536,3322,0,6930,1,261,0,39,1,261, + 0,261,451,0,6907,37,0,6906,37,0, + 6907,2,37,0,6906,2,37,0,6907,36, + 0,6906,36,0,6928,45,0,37,45,0, + 6902,440,0,6901,440,0,1,2379,0,1, + 809,0,261,450,0,1856,352,0,365,93, + 0,35,72,0,1,365,0,4270,311,0, + 536,6029,0,1,261,0,261,252,0,1, + 2000,0,1,2404,0,261,251,0,6904,1, + 0,6900,1,0,1,261,3555,0,6901,261, + 0,3562,261,0,6904,418,0,6903,418,0, + 3604,261,0,10,12,0,8,10,12,0, + 3611,225,0,216,5243,0,3649,418,0,8, + 12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1110,350 +1395,403 @@ public class CPPSizeofExpressionParserprs 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,47,0,49, - 50,51,52,53,54,0,56,57,58,59, - 60,61,62,0,64,65,66,67,0,6, - 0,71,0,3,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,0,56,57,58,59, + 0,61,62,63,0,65,66,67,0,69, + 0,1,2,73,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,0,49,50,51,52,53, - 54,69,56,57,58,59,60,61,62,0, - 64,65,66,67,0,92,93,71,4,0, + 44,45,46,47,48,49,50,51,52,53, + 86,87,56,57,58,59,0,61,62,63, + 4,65,66,67,94,69,92,93,0,73, 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, - 0,49,50,51,52,53,54,68,56,57, - 58,59,60,61,62,0,64,65,66,67, - 0,1,2,71,4,0,74,75,76,77, + 48,49,50,51,52,53,0,0,56,57, + 58,59,0,61,62,63,4,65,66,67, + 0,69,0,1,2,73,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,0,49,50,51, - 52,53,54,68,56,57,58,59,60,61, - 62,0,64,65,66,67,0,1,2,0, - 4,10,74,75,76,77,78,79,80,81, + 42,43,44,45,46,47,48,49,50,51, + 52,53,86,87,56,57,58,59,0,61, + 62,63,95,65,66,67,0,69,0,1, + 2,0,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,0,49,50,51,52,53,54,0, - 56,57,58,59,60,61,62,0,64,65, - 66,67,0,6,0,0,87,88,74,75, + 46,47,48,49,50,51,52,53,0,68, + 56,57,58,59,0,61,62,63,0,65, + 66,67,0,69,0,3,0,0,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,63,49, - 50,51,52,53,54,0,56,57,58,59, - 60,61,62,0,64,65,66,67,99,92, - 93,89,9,91,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,86,87,56,57,58,59, + 0,61,62,63,0,65,66,67,94,69, + 86,87,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,0,49,50,51,52,53, - 54,0,56,57,58,59,60,61,62,0, - 64,65,66,67,99,6,0,1,2,0, + 44,45,46,47,48,49,50,51,52,53, + 0,0,56,57,58,59,0,61,62,63, + 0,65,66,67,94,69,92,93,0,0, 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, - 0,49,50,51,52,53,54,68,56,57, - 58,59,60,61,62,0,64,65,66,67, - 5,92,93,0,1,2,74,75,76,77, + 48,49,50,51,52,53,86,87,56,57, + 58,59,0,61,62,63,95,65,66,67, + 94,69,92,93,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,0,49,50,51, - 52,53,54,0,56,57,58,59,60,61, - 62,0,64,65,66,67,0,1,2,8, - 0,5,74,75,76,77,78,79,80,81, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,0,56,57,58,59,0,61, + 62,63,0,65,66,67,0,69,0,1, + 2,5,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,71,49,50,51,52,53,54,69, - 56,57,58,59,60,61,62,0,64,65, - 66,67,0,1,2,0,4,0,74,75, + 46,47,48,49,50,51,52,53,86,87, + 56,57,58,59,0,61,62,63,4,65, + 66,67,0,69,101,102,4,95,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,0,49, - 50,51,52,53,54,68,56,57,58,59, - 60,61,62,0,64,65,66,67,0,1, - 2,0,87,88,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,0,56,57,58,59, + 0,61,62,63,0,65,66,67,0,69, + 0,1,2,0,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,0,49,50,51,52,53, - 54,0,56,57,58,59,60,61,62,0, - 64,65,66,67,0,0,1,2,87,88, + 44,45,46,47,48,49,50,51,52,53, + 86,87,56,57,58,59,0,61,62,63, + 0,65,66,67,4,69,92,93,0,0, 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, - 0,49,50,51,52,53,54,0,56,57, - 58,59,60,61,62,8,64,65,66,67, - 0,1,2,89,0,91,74,75,76,77, + 48,49,50,51,52,53,68,0,56,57, + 58,59,0,61,62,63,9,65,66,67, + 0,69,96,0,1,2,74,75,76,77, 78,79,80,81,82,83,84,85,0,1, - 2,3,4,5,6,7,0,9,10,11, + 2,3,4,5,6,7,8,40,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,0,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,0,49,50,51, - 52,53,54,0,56,57,58,4,60,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,100,118,27,28,29,30, - 31,32,33,34,35,36,0,1,2,40, - 4,5,0,7,0,0,100,48,0,1, - 2,6,4,0,9,56,57,58,59,0, - 61,62,0,0,1,2,22,23,24,0, - 71,72,28,29,30,31,32,33,34,35, - 36,22,23,24,48,86,0,28,29,30, - 31,32,33,34,35,36,48,0,0,0, - 1,2,103,104,105,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, - 0,0,27,28,29,30,31,32,33,34, - 35,36,89,0,91,40,3,48,0,6, - 0,8,9,48,68,0,1,2,96,97, - 5,56,57,58,59,0,61,62,25,26, - 27,0,1,2,0,0,71,72,3,48, - 37,38,8,0,1,2,3,4,5,6, - 7,86,9,96,97,0,0,0,55,3, - 0,1,2,48,4,5,63,7,103,104, - 105,68,69,70,71,72,73,87,88,48, - 0,1,2,3,4,5,6,7,0,9, - 87,88,89,90,91,92,93,94,95,96, - 97,98,99,100,101,70,63,73,48,106, - 107,108,109,110,111,112,113,114,115,116, - 117,118,119,120,0,0,0,3,0,4, - 6,6,8,9,9,0,0,1,2,3, - 4,5,6,7,8,9,89,0,91,25, - 26,27,72,25,26,0,1,2,22,23, - 24,37,38,27,28,29,30,31,32,33, - 34,35,36,0,1,2,3,4,5,55, - 7,8,0,0,1,2,98,63,5,63, - 7,55,68,69,70,71,72,73,63,63, - 27,0,1,2,3,4,5,6,7,73, - 9,87,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,0,0,0,3, - 106,107,108,109,110,111,112,113,114,115, - 116,117,118,119,120,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, - 0,0,27,28,29,30,31,32,33,34, - 35,36,0,1,2,40,4,0,6,0, - 0,9,0,48,0,25,26,0,8,0, - 0,56,57,58,59,8,61,62,8,64, - 0,22,23,24,87,88,71,28,29,30, - 31,32,33,34,35,36,55,27,0,1, - 2,86,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,67,0,27, - 28,29,30,31,32,33,34,35,36,70, - 73,0,40,63,0,1,2,3,4,5, - 48,7,8,25,26,0,0,55,56,57, - 58,59,0,61,62,10,64,0,1,2, - 101,27,5,0,7,0,107,108,109,110, - 111,112,113,114,115,116,117,0,86,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,59,0,27,28,29,30, - 31,32,33,34,35,36,0,1,2,40, - 68,69,6,0,0,1,2,48,4,5, - 0,7,55,68,0,56,57,58,59,0, - 61,62,8,64,98,22,23,24,0,72, - 71,28,29,30,31,32,33,34,35,36, - 55,27,23,24,48,86,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,55,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,0,56,57,58,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,0,1,2,0,4,0,40,0, + 1,2,3,4,5,6,7,8,0,1, + 2,53,0,55,56,57,58,5,0,61, + 62,63,0,1,2,3,4,0,6,71, + 8,73,5,38,7,38,0,0,1,2, + 3,4,5,6,7,8,88,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,0,0,27,28,29,30,31,32,33, - 34,35,36,0,1,2,40,0,0,1, - 2,3,4,5,48,7,0,0,0,3, - 3,0,56,57,58,59,8,61,62,8, - 64,0,1,2,3,4,5,71,7,8, - 0,1,2,0,4,0,6,55,8,9, - 120,48,86,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,0,63, - 27,28,29,30,31,32,33,34,35,36, - 0,73,71,40,63,0,1,2,3,4, - 5,48,7,0,73,60,3,0,90,56, - 57,58,59,73,61,62,0,64,0,0, - 1,2,3,4,71,6,8,0,9,0, - 90,0,1,2,3,4,5,8,7,86, + 24,25,26,27,28,29,30,31,32,33, + 71,0,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,91, + 0,99,100,0,0,40,98,0,0,1, + 2,3,4,5,6,7,8,0,53,0, + 55,56,57,58,0,64,61,62,63,68, + 0,0,0,3,0,5,71,7,73,9, + 6,22,23,24,25,26,27,28,29,30, + 31,32,33,88,0,1,2,3,4,55, + 6,54,8,0,34,35,36,37,60,0, + 40,64,3,70,0,1,2,60,70,114, + 115,116,0,9,54,0,1,2,3,4, + 60,6,0,8,64,64,89,90,68,68, + 70,71,72,73,101,102,103,104,105,106, + 107,108,109,110,111,112,86,87,0,89, + 90,91,92,93,94,95,96,97,98,99, + 100,101,102,103,104,105,106,107,108,109, + 110,111,112,69,120,60,64,117,118,119, + 120,0,34,35,3,0,5,0,7,4, + 9,0,1,2,3,4,9,6,0,8, + 0,0,1,2,3,4,5,0,7,0, + 10,4,5,91,7,34,35,36,37,0, + 98,40,3,22,23,24,25,26,27,28, + 29,30,31,32,33,54,0,1,2,54, + 4,60,0,1,2,64,4,0,6,68, + 8,70,71,72,73,0,69,59,0,1, + 2,60,71,54,6,64,8,86,87,68, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,102,103,104,105,106,107,108, + 109,110,111,112,0,1,2,55,117,118, + 119,120,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,0,0,1,2, + 3,4,40,6,0,8,0,1,2,55, + 4,5,0,7,0,53,0,55,56,57, + 58,0,0,61,62,63,4,65,7,114, + 115,116,0,1,2,73,22,23,24,25, + 26,27,28,29,30,31,32,33,0,53, + 88,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,0,70,0,0,1, + 2,40,4,0,6,91,8,4,66,67, + 0,0,98,91,53,54,55,56,57,58, + 98,0,61,62,63,22,65,101,102,103, + 104,105,106,107,108,109,110,111,112,0, + 1,2,3,4,5,6,7,8,38,88, 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,0,63,27,28,29, - 30,31,32,33,34,35,36,0,1,2, - 40,4,63,6,68,69,9,69,48,0, - 63,73,3,103,104,105,56,57,58,59, - 71,61,62,72,64,0,0,1,2,3, - 4,5,6,7,0,9,0,1,2,3, - 4,5,8,7,0,0,86,0,1,2, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,0,1,2,0,4,5, + 40,7,71,0,1,2,9,4,5,60, + 7,0,0,53,3,55,56,57,58,0, + 113,61,62,63,0,65,0,114,115,116, + 0,1,2,73,22,23,24,25,26,27, + 28,29,30,31,32,33,0,0,88,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,0,1,2,60,4,5,40, + 7,0,1,2,0,4,0,6,4,8, + 54,0,53,7,55,56,57,58,0,0, + 61,62,63,0,65,118,22,0,1,2, + 0,4,73,22,23,24,25,26,27,28, + 29,30,31,32,33,89,90,88,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,55,0,1,2,0,64,40,6, + 60,8,0,1,2,0,0,0,6,0, + 0,53,5,55,56,57,58,0,9,61, + 62,63,0,65,96,3,0,1,2,23, + 24,73,22,23,24,25,26,27,28,29, + 30,31,32,33,0,0,88,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,0,0,27,28,29,30,31,32, - 33,34,35,36,0,1,2,40,4,63, - 6,0,48,9,3,48,70,72,0,63, - 55,67,0,56,57,58,59,9,61,62, - 0,64,0,3,0,0,1,2,8,0, - 1,2,3,4,5,0,7,0,1,2, - 0,1,2,86,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,0, - 48,27,28,29,30,31,32,33,34,35, - 36,69,0,63,40,0,1,2,68,69, - 65,66,48,73,0,0,72,3,0,0, - 56,57,58,59,0,61,62,3,64,0, - 0,1,2,0,4,0,6,8,0,9, - 0,3,0,1,2,3,4,5,6,7, - 86,9,10,11,12,13,14,15,16,17, - 18,19,20,21,0,1,2,25,26,0, - 65,66,8,55,55,37,38,0,0,37, - 38,39,4,41,42,43,44,45,46,47, - 55,49,50,51,52,53,54,0,69,0, - 71,63,60,61,0,90,0,65,66,0, - 1,2,3,4,5,6,7,0,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,67,55,55,25,26,0,1,2,0, - 4,5,3,7,106,68,37,38,39,0, - 41,42,43,44,45,46,47,119,49,50, - 51,52,53,54,0,1,2,68,0,60, - 101,94,95,69,65,66,107,68,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 0,1,2,25,26,0,0,90,0,4, - 0,3,48,3,0,37,38,39,8,41, - 42,43,44,45,46,47,0,49,50,51, - 52,53,54,0,1,2,0,0,60,0, - 4,4,0,1,2,67,40,8,48,71, - 0,1,2,3,4,5,6,7,22,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,0,63,0,25,26,0,1,2, - 0,48,8,73,4,0,72,37,38,39, - 48,41,42,43,44,45,46,47,72,49, - 50,51,52,53,54,0,0,0,0,3, - 60,0,73,8,6,65,66,0,1,2, - 3,4,5,6,7,48,9,10,11,12, - 13,14,15,16,17,18,19,20,21,103, - 104,105,25,26,0,0,0,73,63,0, - 0,0,0,8,37,38,39,8,41,42, - 43,44,45,46,47,0,49,50,51,52, - 53,54,27,0,0,0,27,60,73,4, - 0,70,65,66,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,55,55,0,25, - 26,3,68,39,69,0,70,0,3,68, - 0,37,38,39,4,41,42,43,44,45, - 46,47,0,49,50,51,52,53,54,74, - 0,0,22,70,60,94,95,0,0,69, - 10,67,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,0,0,0,25,26,0, - 40,0,3,0,0,10,0,55,48,37, - 38,39,0,41,42,43,44,45,46,47, - 68,49,50,51,52,53,54,0,0,0, - 0,3,60,5,6,40,69,9,8,67, - 0,0,0,48,4,0,94,95,0,4, - 0,55,0,25,26,3,55,27,55,55, - 0,55,0,3,70,37,38,0,39,41, - 3,0,0,0,0,3,3,3,0,0, - 0,3,55,55,72,0,0,0,3,3, - 0,63,0,65,66,55,68,69,70,0, - 55,0,0,0,0,0,0,0,0,0, - 0,70,70,0,0,87,88,89,70,69, - 92,93,94,95,96,97,98,99,100,101, - 0,69,0,0,106,0,108,109,110,111, - 112,113,114,115,116,117,0,1,2,3, + 23,24,25,26,27,28,29,30,31,32, + 33,72,60,0,0,68,64,40,5,0, + 68,0,66,67,0,86,87,3,54,54, + 53,96,55,56,57,58,99,100,61,62, + 63,0,65,22,23,24,25,26,27,28, + 29,30,31,32,33,0,1,2,3,4, + 5,0,7,89,90,88,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,55,70, - 0,25,26,102,72,72,72,90,70,70, - 75,102,102,37,38,39,0,41,42,43, - 44,45,46,47,102,49,50,51,52,53, - 54,0,1,2,3,4,5,6,7,39, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,0,0,25,26,121,0, - 0,0,0,0,0,0,0,0,37,38, - 39,0,41,42,43,44,45,46,47,0, - 49,50,51,52,53,54,0,0,0,0, - 0,60,0,0,118,0,1,2,3,4, - 5,6,7,0,9,10,11,12,13,14, - 15,16,17,18,19,20,21,0,0,0, - 25,26,0,0,0,0,0,0,0,0, - 0,0,37,38,39,0,41,42,43,44, - 45,46,47,0,49,50,51,52,53,54, - 0,1,2,3,4,5,6,7,63,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,0,0,0,25,26,0,0,0, - 0,0,0,0,0,0,0,37,38,39, - 0,41,42,43,44,45,46,47,0,49, - 50,51,52,53,54,0,0,0,0,0, - 60,0,1,2,3,4,5,6,7,0, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,0,0,25,26,0,0, - 0,0,0,0,0,0,0,0,37,38, - 39,0,41,42,43,44,45,46,47,0, - 49,50,51,52,53,54,0,1,2,3, - 4,5,6,7,0,9,10,11,12,13, - 14,15,16,17,18,19,20,21,0,0, - 0,25,26,0,0,0,0,0,0,0, - 0,0,0,37,38,39,0,41,42,43, - 44,45,46,47,0,49,50,51,52,53, - 54,0,1,2,3,4,5,6,7,0, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,0,0,25,26,0,0, - 0,0,0,0,0,0,0,0,37,38, - 39,0,41,42,43,44,45,46,47,0, - 49,50,51,52,53,54,0,1,2,0, - 4,0,0,0,0,0,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,0,0,0,28,29,30,31,32,33, - 34,35,36,0,0,0,40,0,0,0, - 0,0,0,0,0,0,1,2,0,4, - 0,0,56,57,58,10,11,12,13,14, + 24,25,26,27,28,29,30,31,32,33, + 0,1,2,0,4,64,40,0,0,0, + 0,0,99,100,0,60,9,3,9,53, + 9,55,56,57,58,64,0,61,62,63, + 0,65,22,23,24,25,26,27,28,29, + 30,31,32,33,0,1,2,40,4,40, + 6,40,8,0,88,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, - 0,0,0,28,29,30,31,32,33,34, - 35,36,0,0,0,40,0,1,2,3, - 4,5,6,7,8,9,0,0,0,0, - 0,56,57,58,0,0,0,0,22,23, - 24,0,0,27,28,29,30,31,32,33, - 34,35,36,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,0,0,0, - 28,29,30,31,32,33,34,35,36,63, - 0,0,0,0,0,0,0,0,0,73, + 25,26,27,28,29,30,31,32,33,0, + 1,2,0,4,5,40,7,0,9,55, + 0,1,2,95,7,0,0,54,53,0, + 55,56,57,58,9,9,61,62,63,0, + 65,0,1,2,3,4,5,6,7,8, + 0,10,11,12,13,14,15,16,17,18, + 19,20,21,88,0,1,2,3,4,0, + 6,0,8,9,3,34,35,36,37,38, + 39,72,41,42,43,44,45,46,47,48, + 49,50,51,52,0,1,2,72,72,5, + 59,0,0,62,40,3,97,66,67,0, + 1,2,3,4,5,6,7,8,0,10, + 11,12,13,14,15,16,17,18,19,20, + 21,0,1,2,3,4,97,6,0,8, + 9,70,113,34,35,36,37,38,39,55, + 41,42,43,44,45,46,47,48,49,50, + 51,52,0,1,2,0,0,0,59,0, + 3,40,54,64,9,66,67,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,0, + 34,35,3,34,35,0,1,2,0,1, + 2,34,35,36,37,38,39,55,41,42, + 43,44,45,46,47,48,49,50,51,52, + 0,1,2,68,96,0,59,72,0,0, + 0,0,7,0,3,0,69,9,9,9, + 73,0,1,2,3,4,5,6,7,8, + 55,10,11,12,13,14,15,16,17,18, + 19,20,21,0,1,2,0,0,0,6, + 40,0,0,0,3,34,35,36,37,38, + 39,0,41,42,43,44,45,46,47,48, + 49,50,51,52,0,1,2,68,68,64, + 59,73,73,0,71,0,3,66,67,0, + 1,2,3,4,5,6,7,8,55,10, + 11,12,13,14,15,16,17,18,19,20, + 21,60,0,0,0,54,64,64,71,0, + 0,9,9,34,35,36,37,38,39,55, + 41,42,43,44,45,46,47,48,49,50, + 51,52,0,1,2,0,0,0,59,3, + 89,90,0,0,9,66,67,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,60, + 0,69,97,0,70,72,3,0,0,0, + 70,34,35,36,37,38,39,55,41,42, + 43,44,45,46,47,48,49,50,51,52, + 97,64,0,1,2,0,59,0,73,0, + 0,0,70,3,71,0,69,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,60, + 0,1,2,0,74,0,3,0,5,6, + 7,34,35,36,37,38,39,55,41,42, + 43,44,45,46,47,48,49,50,51,52, + 60,0,1,2,0,60,59,34,35,36, + 37,70,39,0,0,0,69,0,3,0, + 3,113,0,9,9,55,0,54,0,54, + 0,54,0,60,0,3,97,64,10,66, + 67,68,0,70,22,23,24,25,26,27, + 28,29,30,31,32,33,55,0,54,86, + 87,0,89,90,91,92,93,94,95,96, + 0,10,99,100,101,60,103,104,105,106, + 107,108,109,110,111,112,72,72,54,61, + 117,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,0,53,0,55,0,0,4, + 0,0,4,3,54,34,35,36,37,38, + 39,10,41,42,43,44,45,46,47,48, + 49,50,51,52,0,1,2,3,4,5, + 6,7,8,0,10,11,12,13,14,15, + 16,17,18,19,20,21,0,54,0,54, + 113,54,54,0,53,9,55,64,34,35, + 36,37,38,39,0,41,42,43,44,45, + 46,47,48,49,50,51,52,0,0,0, + 0,0,89,90,3,0,9,0,55,118, + 66,67,0,1,2,3,4,5,6,7, + 8,0,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,68,0,72,55, + 0,0,0,0,71,0,34,35,36,37, + 38,39,54,41,42,43,44,45,46,47, + 48,49,50,51,52,0,0,68,68,71, + 73,59,0,1,2,3,4,5,6,7, + 8,0,10,11,12,13,14,15,16,17, + 18,19,20,21,54,54,54,54,0,54, + 0,0,0,0,64,71,34,35,36,37, + 38,39,75,41,42,43,44,45,46,47, + 48,49,50,51,52,0,121,0,3,89, + 90,0,60,0,1,2,3,4,5,6, + 7,8,0,10,11,12,13,14,15,16, + 17,18,19,20,21,54,0,0,0,0, + 3,3,3,0,0,64,68,34,35,36, + 37,38,39,70,41,42,43,44,45,46, + 47,48,49,50,51,52,0,0,0,3, + 89,90,59,0,1,2,3,4,5,6, + 7,8,71,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,54,0, + 3,0,0,0,68,0,0,34,35,36, + 37,38,39,70,41,42,43,44,45,46, + 47,48,49,50,51,52,0,0,0,0, + 0,0,59,0,1,2,3,4,5,6, + 7,8,0,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,0,0, + 0,0,0,0,0,70,70,34,35,36, + 37,38,39,71,41,42,43,44,45,46, + 47,48,49,50,51,52,0,0,0,0, + 0,0,59,0,1,2,3,4,5,6, + 7,8,71,10,11,12,13,14,15,16, + 17,18,19,20,21,0,0,0,0,0, + 0,0,0,0,0,70,70,34,35,36, + 37,38,39,0,41,42,43,44,45,46, + 47,48,49,50,51,52,0,1,2,3, + 4,5,6,7,8,0,10,11,12,13, + 14,15,16,17,18,19,20,21,0,0, + 0,0,0,0,0,0,0,0,0,0, + 34,35,36,37,38,39,0,41,42,43, + 44,45,46,47,48,49,50,51,52,0, + 1,2,3,4,5,6,7,8,0,10, + 11,12,13,14,15,16,17,18,19,20, + 21,0,0,0,0,0,0,0,0,0, + 0,0,0,34,35,36,37,38,39,0, + 41,42,43,44,45,46,47,48,49,50, + 51,52,0,1,2,3,4,5,6,7, + 8,0,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,0,0,0, + 0,0,0,0,0,0,34,35,36,37, + 38,39,0,41,42,43,44,45,46,47, + 48,49,50,51,52,0,1,2,3,4, + 5,6,7,8,0,10,11,12,13,14, + 15,16,17,18,19,20,21,0,0,0, + 0,0,0,0,0,0,9,0,0,34, + 35,36,37,38,39,0,41,42,43,44, + 45,46,47,48,49,50,51,52,0,1, + 2,0,4,0,0,0,0,0,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,0,0,0,0,0,0,0,72, + 0,0,0,0,0,0,0,0,0,1, + 2,53,4,0,56,57,58,0,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,2, + 0,53,0,0,56,57,58,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,2,0, + 53,0,0,56,57,58,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 0,0,0,0,1,2,3,4,5,6, + 7,8,9,0,0,0,0,3,0,53, + 0,0,56,57,58,22,23,24,25,26, + 27,28,29,30,31,32,33,0,0,1, + 2,3,4,40,6,0,8,9,3,0, + 36,37,0,0,9,0,0,54,0,0, + 0,0,0,60,0,1,2,3,4,5, + 6,7,8,9,60,72,0,0,0,0, + 0,0,0,0,0,0,22,23,24,25, + 26,27,28,29,30,31,32,33,60,0, + 0,0,0,0,40,60,0,0,0,64, + 72,0,0,68,0,0,0,72,0,0, + 0,0,0,0,60,0,0,0,0,0, + 0,117,0,119,0,0,72,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 0,1,2,3,4,5,0,7,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,22,23,24,25,26,27,28,29, + 30,31,32,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, + 60,0,0,0,64,0,0,0,68,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,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; @@ -1461,346 +1799,401 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5437,5399,5378,5378,5378,5378,5378,5378,5415,5378, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5403,1,1, + 6892,6854,6833,6833,6833,6833,6833,6833,6833,6870, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,332,1,1,1,3084, - 1,5610,2030,113,3582,1,1,5448,397,3737, - 5437,5444,155,3166,1509,3995,3537,2251,3421,3857, - 3181,3972,3076,3949,3615,3926,10,5418,5418,5418, - 5418,5418,5418,5418,5418,5418,5418,5418,5418,5418, - 5418,5418,5418,5418,5418,5418,5418,5418,5418,5418, - 5418,5418,5418,5418,5418,5418,5418,5418,5418,5418, - 5418,5418,5418,5418,5418,5418,5418,5418,5418,5418, - 5418,5418,5418,5418,298,5418,5418,5418,5418,5418, - 5418,1475,5418,5418,5418,5418,5418,5418,5418,386, - 5418,5418,5418,5418,39,3713,3689,5418,5475,5437, - 5418,5418,5418,5418,5418,5418,5418,5418,5418,5418, - 5418,5418,8,5421,5421,5421,5421,5421,5421,5421, - 5421,5421,5421,5421,5421,5421,5421,5421,5421,5421, - 5421,5421,5421,5421,5421,5421,5421,5421,5421,5421, - 5421,5421,5421,5421,5421,5421,5421,5421,5421,5421, - 5421,5421,5421,5421,5421,5421,5421,5421,5421,5421, - 5437,5421,5421,5421,5421,5421,5421,2879,5421,5421, - 5421,5421,5421,5421,5421,5437,5421,5421,5421,5421, - 288,5171,5171,5421,283,5437,5421,5421,5421,5421, - 5421,5421,5421,5421,5421,5421,5421,5421,5437,5399, - 5378,5378,5378,5378,5378,5378,5406,5378,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5403,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5437,1,1,1, - 1,1,1,2901,1,1,1,3084,1,5610, - 2030,302,3582,1,1,5448,5437,5073,5070,119, - 5475,5738,1509,3995,3537,2251,3421,3857,3181,3972, - 3076,3949,3615,3926,5437,5399,5378,5378,5378,5378, - 5378,5378,5406,5378,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5403,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5437,1,1,1,1,1,1,133, - 1,1,1,3084,1,5610,2030,115,3582,1, - 1,5448,109,3737,5437,460,2910,2937,1509,3995, - 3537,2251,3421,3857,3181,3972,3076,3949,3615,3926, - 5437,5399,5378,5378,5378,5378,5378,5378,5406,5378, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5403,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5100,1, - 1,1,1,1,1,134,1,1,1,3084, - 1,5610,2030,129,3582,1,1,5448,2338,3713, - 3689,3968,2403,3991,1509,3995,3537,2251,3421,3857, - 3181,3972,3076,3949,3615,3926,5437,5399,5378,5378, - 5378,5378,5378,5378,5406,5378,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5403,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5437,1,1,1,1,1, - 1,5437,1,1,1,3084,1,5610,2030,114, - 3582,1,1,5448,2338,3737,5437,5451,5452,5437, - 1509,3995,3537,2251,3421,3857,3181,3972,3076,3949, - 3615,3926,5437,5399,5378,5378,5378,5378,5378,5378, - 5406,5378,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5403, + 6858,1,1,1,1,1,1,1,1,1, + 1,1,1,1,119,1,1,1,1,1, + 131,1045,7098,2338,127,3465,1,1,365,6903, + 6892,6906,6907,6899,2869,3600,3079,3230,3029,3553, + 4734,3598,805,3593,3968,3564,10,6873,6873,6873, + 6873,6873,6873,6873,6873,6873,6873,6873,6873,6873, + 6873,6873,6873,6873,6873,6873,6873,6873,6873,6873, + 6873,6873,6873,6873,6873,6873,6873,6873,6873,6873, + 6873,6873,6873,6873,6873,6873,6873,6873,6873,6873, + 6873,6873,6873,6873,6873,6873,6873,6873,6873,6873, + 4379,4446,6873,6873,6873,6873,39,6873,6873,6873, + 6930,6873,6873,6873,1105,6873,3786,3755,430,6873, + 6873,6873,6873,6873,6873,6873,6873,6873,6873,6873, + 6873,6873,8,6876,6876,6876,6876,6876,6876,6876, + 6876,6876,6876,6876,6876,6876,6876,6876,6876,6876, + 6876,6876,6876,6876,6876,6876,6876,6876,6876,6876, + 6876,6876,6876,6876,6876,6876,6876,6876,6876,6876, + 6876,6876,6876,6876,6876,6876,6876,6876,6876,6876, + 6876,6876,6876,6876,6876,6876,123,133,6876,6876, + 6876,6876,6892,6876,6876,6876,2244,6876,6876,6876, + 331,6876,6892,6637,6634,6876,6876,6876,6876,6876, + 6876,6876,6876,6876,6876,6876,6876,6876,6892,6854, + 6833,6833,6833,6833,6833,6833,6833,6861,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5437,1,1,1,1,1,1,2934,1,1, - 1,3084,1,5610,2030,5437,3582,1,1,5448, - 3277,3713,3689,5437,5257,5254,1509,3995,3537,2251, - 3421,3857,3181,3972,3076,3949,3615,3926,5437,5399, - 5378,5378,5378,5378,5378,5378,5406,5378,1,1, + 1,1,1,1,1,1,1,1,6858,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5403,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5437,1,1,1, - 1,1,1,5437,1,1,1,3084,1,5610, - 2030,5437,3582,1,1,5448,5437,5451,5452,5445, - 517,3277,1509,3995,3537,2251,3421,3857,3181,3972, - 3076,3949,3615,3926,5437,5399,5378,5378,5378,5378, - 5378,5378,5406,5378,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5403,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5444,1,1,1,1,1,1,895, - 1,1,1,3084,1,5610,2030,5437,3582,1, - 1,5448,5437,5073,5070,123,5475,5437,1509,3995, - 3537,2251,3421,3857,3181,3972,3076,3949,3615,3926, - 5437,5399,5378,5378,5378,5378,5378,5378,5406,5378, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5403,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5437,1, - 1,1,1,1,1,2964,1,1,1,3084, - 1,5610,2030,5437,3582,1,1,5448,48,5257, - 5254,122,2910,2937,1509,3995,3537,2251,3421,3857, - 3181,3972,3076,3949,3615,3926,5437,5399,5378,5378, - 5378,5378,5378,5378,5406,5378,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5403,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5437,1,1,1,1,1, - 1,5437,1,1,1,3084,1,5610,2030,5437, - 3582,1,1,5448,112,399,5451,5452,2910,2937, - 1509,3995,3537,2251,3421,3857,3181,3972,3076,3949, - 3615,3926,5437,3880,1,1,1,1,1,1, - 3903,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5446, + 1,1,4379,4446,1,1,1,1,419,1045, + 7098,2338,1253,3465,1,1,6892,6903,48,6637, + 6634,188,2869,3600,3079,3230,3029,3553,4734,3598, + 805,3593,3968,3564,6892,6854,6833,6833,6833,6833, + 6833,6833,6833,6861,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5437,1,1,1,1,1,1,5437,1,1, - 1,3084,1,5610,2030,5441,3582,1,1,5448, - 36,5333,5330,3968,135,3991,1509,3995,3537,2251, - 3421,3857,3181,3972,3076,3949,3615,3926,39,5073, - 5070,4834,632,3784,3853,4869,136,3876,882,5701, - 5699,5708,5707,5703,5704,5702,5705,5706,5709,5700, - 5696,5775,5776,3830,3807,5437,5690,5697,5693,5669, - 5695,5694,5691,5692,5670,3922,3899,5456,5837,3761, - 831,891,5458,866,599,877,5437,5459,5457,802, - 5453,5454,5455,5437,570,5838,5839,827,1431,5437, - 5309,5309,228,5305,228,228,228,5313,228,1, + 1,1,1,1,6858,1,1,1,1,1, + 1,1,1,1,1,1,1,1,122,1488, + 1,1,1,1,132,1045,7098,2338,6892,3465, + 1,1,6892,6903,121,714,120,6892,2869,3600, + 3079,3230,3029,3553,4734,3598,805,3593,3968,3564, + 6892,6854,6833,6833,6833,6833,6833,6833,6833,6861, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2290,5440,228,1,1,1, - 1,1,1,1,1,1,5437,5073,5070,1, - 632,5118,5437,4869,223,5437,2290,5302,396,5168, - 5168,1289,283,111,1265,1,1,1,3079,224, - 5851,1321,127,298,5451,5452,5696,5775,5776,5437, - 418,228,5690,5697,5693,5669,5695,5694,5691,5692, - 5670,5696,5775,5776,2324,5939,5437,5690,5697,5693, - 5669,5695,5694,5691,5692,5670,283,128,5437,5437, - 8780,8780,5874,5875,5876,5437,5309,5309,228,5305, - 228,228,228,5357,228,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 121,37,228,1,1,1,1,1,1,1, - 1,1,3968,33,3991,1,5112,5473,5437,5112, - 5437,5112,5112,5302,5951,37,5296,5296,2462,2433, - 5296,1,1,1,3079,5437,5851,1321,5112,5112, - 5112,43,5278,5278,1,312,417,228,4102,5473, - 5112,5112,159,346,5073,5070,585,632,651,332, - 4869,5939,332,2462,2433,5437,5437,110,5112,2992, - 5437,5073,5070,3282,632,5118,5112,4869,5874,5875, - 5876,5112,5112,5112,5112,5112,5112,2910,2937,5275, - 5437,5161,5157,4278,5165,651,5369,4869,131,5369, - 5112,5112,5112,5112,5112,5112,5112,5112,5112,5112, - 5112,5112,5112,5112,5112,1154,1058,159,2966,5112, - 5112,5112,5112,5112,5112,5112,5112,5112,5112,5112, - 5112,5112,5112,5112,5437,39,459,5115,116,5475, - 5115,332,5115,5115,332,349,29,389,389,5272, - 389,389,5272,389,5272,5272,3968,5437,3991,5115, - 5115,5115,2077,3133,3050,292,5451,5452,389,389, - 389,5115,5115,5272,389,389,389,389,389,389, - 389,389,389,1,5161,5157,5348,5165,5354,5115, - 5351,5447,5437,38,5091,5088,2371,5115,5085,5103, - 4869,5076,5115,5115,5115,5115,5115,5115,1058,5272, - 5446,310,5161,5157,4278,5165,651,5369,4869,5272, - 5369,5115,5115,5115,5115,5115,5115,5115,5115,5115, - 5115,5115,5115,5115,5115,5115,89,120,5437,5106, - 5115,5115,5115,5115,5115,5115,5115,5115,5115,5115, - 5115,5115,5115,5115,5115,5437,5378,5378,228,5378, - 228,228,228,5381,228,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 118,5437,228,1,1,8837,1,1,1,1, - 1,1,446,1,1,1,1,5437,5097,225, - 5437,5097,5437,5375,5437,3133,3050,5437,5449,137, - 407,1,1,1,3463,5443,5647,2030,5342,3582, - 98,5696,5775,5776,2910,2937,219,5690,5697,5693, - 5669,5695,5694,5691,5692,5670,3214,5345,5437,8712, - 8707,5939,5437,5378,5378,228,5378,228,228,228, - 228,228,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5448,117,228, - 1,1,8837,1,1,1,1,1,1,1948, - 5442,5437,1,4475,1,5161,5157,4278,5165,651, - 5375,4869,310,3133,3050,302,132,3439,1,1, - 1,3463,5437,5647,2030,5738,3582,5437,5451,5452, - 1101,310,651,5437,4869,5437,4088,1905,1862,1819, - 1776,1733,1690,1647,1604,1561,1518,29,5939,5437, - 5378,5378,228,5378,228,228,228,5390,228,1, + 6858,1,1,1,1,1,1,1,1,1, + 1,1,1,1,4379,4446,1,1,1,1, + 151,1045,7098,2338,128,3465,1,1,1105,6903, + 4379,4446,4379,4446,2869,3600,3079,3230,3029,3553, + 4734,3598,805,3593,3968,3564,6892,6854,6833,6833, + 6833,6833,6833,6833,6833,6861,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2745,5437,228,1,1,8837, - 1,1,1,1,1,1,37,5296,5296,1, - 4535,4417,332,226,5437,5073,5070,5375,632,651, - 5437,4869,576,5880,5437,1,1,1,3463,337, - 5647,2030,5447,3582,2371,5696,5775,5776,5437,426, - 218,5690,5697,5693,5669,5695,5694,5691,5692,5670, - 3496,5446,5775,5776,5473,5939,5437,5378,5378,228, - 5378,228,228,228,5381,228,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5437,5437,228,1,1,8837,1,1,1, - 1,1,1,37,5296,5296,1,5437,1,5161, - 5157,4278,5165,651,5375,4869,348,236,1,1806, - 5266,1,1,1,1,3463,364,5647,2030,5396, - 3582,1,5161,5157,585,5165,651,219,4869,5260, - 1,5293,5293,5437,5290,535,332,3574,364,332, - 5069,3244,5939,5437,5378,5378,228,5378,228,228, - 228,5381,228,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5437,1058, - 228,1,1,8837,1,1,1,1,1,1, - 441,364,5444,1,1058,332,5073,5070,4278,632, - 651,5375,4869,319,5263,3693,5360,5437,364,1, - 1,1,3463,364,5647,2030,5437,3582,5437,346, - 39,39,3497,5475,219,332,5443,321,332,8, - 364,1,5161,5157,4278,5165,651,5434,4869,5939, - 5437,5378,5378,228,5378,228,228,228,228,228, + 1,1,1,1,1,1,6858,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5437,1058,228,1,1, - 8837,1,1,1,1,1,1,447,39,39, - 1,5475,1058,5287,4108,4417,5287,4909,5375,1, - 1058,5442,4418,5874,5875,5876,1,1,1,3463, - 5434,5647,2030,2077,3582,5437,368,5161,5157,585, - 5165,651,1,4869,1,1,1,5161,5157,585, - 5165,651,5393,4869,47,5437,5939,5437,5378,5378, - 228,5378,228,228,228,228,228,1,1,1, + 139,134,1,1,1,1,152,1045,7098,2338, + 147,3465,1,1,3620,6903,3786,3755,143,6892, + 2869,3600,3079,3230,3029,3553,4734,3598,805,3593, + 3968,3564,6892,6854,6833,6833,6833,6833,6833,6833, + 6833,6861,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5437,5437,228,1,1,8837,1,1, - 1,1,1,1,90,1,1,1,1,1058, - 5299,5437,2836,5299,4162,5375,1285,1991,130,1058, - 4103,5448,363,1,1,1,3463,2403,5647,2030, - 1,3582,5437,3497,5437,5437,5451,5452,342,1, - 5161,5157,5348,5165,5354,5437,5351,5437,8712,8707, - 291,879,879,5939,5437,5378,5378,228,5378,228, - 228,228,228,228,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5437, - 3492,228,1,1,8837,1,1,1,1,1, - 1,2543,5437,1058,1,5437,5257,5254,342,342, - 3945,1380,5375,342,5437,359,5840,4163,29,442, - 1,1,1,3463,5437,5647,2030,4222,3582,5437, - 93,39,39,5437,5475,456,5363,5445,74,5363, - 5437,3379,5437,1,1,1,1,1,1,1, - 5939,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5437,5451,5452,1,1,137, - 3945,1380,5449,5076,5079,5499,5500,124,398,1, - 1,1,389,1,1,1,1,1,1,1, - 5082,1,1,1,1,1,1,5437,1014,5437, - 5444,3618,1,5976,285,5795,5437,1,1,1, - 5161,5157,4834,5165,3784,3853,4869,1,3876,5121, - 5148,5154,5127,5130,5142,5139,5145,5136,5133,5124, - 5151,5448,2674,576,3830,3807,5437,5073,5070,5437, - 632,651,4324,4869,741,5094,3922,3899,5456,5437, - 3761,831,891,5458,866,599,877,806,5459,5457, - 802,5453,5454,5455,5437,5319,5316,5894,5437,1431, - 1101,2576,2504,5721,39,39,4088,518,39,5073, - 5070,4834,632,3784,3853,4869,5431,3876,631,5701, - 5699,5708,5707,5703,5704,5702,5705,5706,5709,5700, - 5437,5326,5322,3830,3807,5437,5437,5797,5437,3025, - 1,4349,5473,3497,430,3922,3899,5456,5260,3761, - 831,891,5458,866,599,877,450,5459,5457,802, - 5453,5454,5455,45,5339,5339,39,397,1431,1, - 5475,390,5437,5319,5316,5412,2753,5443,5473,5444, - 139,5073,5070,4834,632,3784,3853,4869,1542,3876, - 631,5701,5699,5708,5707,5703,5704,5702,5705,5706, - 5709,5700,5437,1058,1,3830,3807,37,5296,5296, - 5437,5336,531,5263,1686,97,3222,3922,3899,5456, - 5473,3761,831,891,5458,866,599,877,2564,5459, - 5457,802,5453,5454,5455,1,5437,5437,5437,4416, - 1431,371,5442,161,1324,39,39,1,5161,5157, - 4834,5165,3784,3853,4869,5473,3876,5121,5148,5154, - 5127,5130,5142,5139,5145,5136,5133,5124,5151,5874, - 5875,5876,3830,3807,5437,5437,369,531,1241,1, - 5437,126,389,5447,3922,3899,5456,5447,3761,831, - 891,5458,866,599,877,1,5459,5457,802,5453, - 5454,5455,5446,293,5437,5437,5446,1431,161,1772, - 291,1340,39,39,39,5073,5070,4834,632,3784, - 3853,4869,5409,3876,631,5701,5699,5708,5707,5703, - 5704,5702,5705,5706,5709,5700,2674,5109,101,3830, - 3807,4548,4407,1228,4060,5437,1388,5437,3007,5281, - 39,3922,3899,5456,5475,3761,831,891,5458,866, - 599,877,125,5459,5457,802,5453,5454,5455,3355, - 1,5437,3212,2116,1431,2576,2504,428,5437,8147, - 5384,5412,39,5073,5070,4834,632,3784,3853,4869, - 5409,3876,631,5701,5699,5708,5707,5703,5704,5702, - 5705,5706,5709,5700,422,1,5437,3830,3807,278, - 5387,5437,5372,397,72,5384,5437,2674,3671,3922, - 3899,5456,5437,3761,831,891,5458,866,599,877, - 5284,5459,5457,802,5453,5454,5455,5437,1,5437, - 1,974,1431,5908,5902,5387,4099,5906,189,5412, - 48,35,510,3671,5452,48,2576,2504,508,5451, - 451,576,5437,5900,5901,3616,3439,189,576,5366, - 5437,3354,309,4575,2203,5931,5932,5437,3515,5909, - 4201,5437,5437,5437,5437,4817,4881,2533,5437,376, - 524,4882,3584,5911,2164,5437,5437,1,4405,4478, - 5437,663,523,1714,1720,5452,5912,5933,5910,5437, - 5451,5437,5437,5437,5437,192,5437,183,5437,512, - 5437,3531,4731,2,5437,5922,5921,5934,4890,2634, - 5903,5904,5927,5928,5925,5926,5905,5907,5929,5930, - 5437,4074,5437,5437,5935,5437,5915,5916,5917,5913, - 5914,5923,5924,5919,5918,5920,39,5073,5070,4834, - 632,3784,3853,4869,5441,3876,631,5701,5699,5708, - 5707,5703,5704,5702,5705,5706,5709,5700,37,3531, - 1,3830,3807,4041,3219,3257,3295,4261,2034,2617, - 5425,4041,1,3922,3899,5456,5437,3761,831,891, - 5458,866,599,877,4041,5459,5457,802,5453,5454, - 5455,39,5073,5070,4834,632,3784,3853,4869,3581, - 3876,631,5701,5699,5708,5707,5703,5704,5702,5705, - 5706,5709,5700,5437,5437,5437,3830,3807,5428,5437, - 5437,5437,5437,5437,5437,5437,5437,5437,3922,3899, - 5456,5437,3761,831,891,5458,866,599,877,5437, - 5459,5457,802,5453,5454,5455,5437,5437,5437,5437, - 5437,1431,5437,5437,5440,39,5073,5070,4834,632, - 3784,3853,4869,5437,3876,631,5701,5699,5708,5707, - 5703,5704,5702,5705,5706,5709,5700,5437,5437,5437, - 3830,3807,5437,5437,5437,5437,5437,5437,5437,5437, - 5437,5437,3922,3899,5456,5437,3761,831,891,5458, - 866,599,877,5437,5459,5457,802,5453,5454,5455, - 39,5073,5070,4834,632,3784,3853,4869,1687,3876, - 631,5701,5699,5708,5707,5703,5704,5702,5705,5706, - 5709,5700,5437,5437,5437,3830,3807,5437,5437,5437, - 5437,5437,5437,5437,5437,5437,5437,3922,3899,5456, - 5437,3761,831,891,5458,866,599,877,5437,5459, - 5457,802,5453,5454,5455,5437,5437,5437,5437,5437, - 1431,39,5073,5070,3553,632,3784,3853,4869,5437, - 3876,631,5701,5699,5708,5707,5703,5704,5702,5705, - 5706,5709,5700,5437,5437,5437,3830,3807,5437,5437, - 5437,5437,5437,5437,5437,5437,5437,5437,3922,3899, - 5456,5437,3761,831,891,5458,866,599,877,5437, - 5459,5457,802,5453,5454,5455,39,5073,5070,4834, - 632,3784,3853,4869,5437,3876,631,5701,5699,5708, - 5707,5703,5704,5702,5705,5706,5709,5700,5437,5437, - 5437,3830,3807,5437,5437,5437,5437,5437,5437,5437, - 5437,5437,5437,3922,3899,5456,5437,3761,831,891, - 5458,866,599,877,5437,5459,5457,802,5453,5454, - 5455,39,5073,5070,4834,632,3784,3853,4869,5437, - 3876,631,5701,5699,5708,5707,5703,5704,5702,5705, - 5706,5709,5700,5437,5437,5437,3830,3807,5437,5437, - 5437,5437,5437,5437,5437,5437,5437,5437,3922,3899, - 5456,5437,3761,831,891,5458,866,599,877,5437, - 5459,5457,802,5453,5454,5455,5437,5073,5070,5437, - 5475,5437,5437,5437,5437,5437,682,5701,5699,5708, - 5707,5703,5704,5702,5705,5706,5709,5700,5696,5775, - 5776,5437,5437,5437,5690,5697,5693,5669,5695,5694, - 5691,5692,5670,5437,5437,5437,5837,5437,5437,5437, - 5437,5437,5437,5437,5437,240,5247,5243,5437,5251, - 5437,5437,570,5838,5839,682,5234,5240,5213,5216, - 5228,5225,5231,5222,5219,5210,5237,5189,5183,5180, - 5437,5437,5437,5207,5186,5198,5177,5192,5195,5204, - 5201,5174,5437,5437,5437,5837,32,390,390,5269, - 390,390,5269,390,5269,5269,5437,5437,5437,5437, - 5437,570,5838,5839,5437,5437,5437,5437,390,390, - 390,5437,222,5269,390,390,390,390,390,390, - 390,390,390,5701,5699,5708,5707,5703,5704,5702, - 5705,5706,5709,5700,5696,5775,5776,5437,5437,5437, - 5690,5697,5693,5669,5695,5694,5691,5692,5670,5269, - 5437,5437,5437,5437,5437,5437,5437,5437,5437,5269 + 1,1,1,1,1,1,1,1,1,1, + 1,1,6858,1,1,1,1,1,1,1, + 1,1,1,1,1,1,4379,4446,1,1, + 1,1,6892,1045,7098,2338,1253,3465,1,1, + 3620,6903,3857,3817,4379,4446,2869,3600,3079,3230, + 3029,3553,4734,3598,805,3593,3968,3564,6892,6854, + 6833,6833,6833,6833,6833,6833,6833,6861,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,6858,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,142,137,1,1,1,1,6892,1045, + 7098,2338,153,3465,1,1,6892,6903,432,6906, + 6907,1853,2869,3600,3079,3230,3029,3553,4734,3598, + 805,3593,3968,3564,6892,6854,6833,6833,6833,6833, + 6833,6833,6833,6861,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,6858,1,1,1,1,1, + 1,1,1,1,1,1,1,1,4379,4446, + 1,1,1,1,6892,1045,7098,2338,2318,3465, + 1,1,430,6903,3369,4899,423,3565,2869,3600, + 3079,3230,3029,3553,4734,3598,805,3593,3968,3564, + 6892,6854,6833,6833,6833,6833,6833,6833,6833,6861, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 6858,1,1,1,1,1,1,1,1,1, + 1,1,1,1,140,6892,1,1,1,1, + 6892,1045,7098,2338,148,3465,1,1,6892,6903, + 36,6791,6788,6892,2869,3600,3079,3230,3029,3553, + 4734,3598,805,3593,3968,3564,6892,6854,6833,6833, + 6833,6833,6833,6833,6833,6861,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,6858,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 4379,4446,1,1,1,1,135,1045,7098,2338, + 6892,3465,1,1,1435,6903,3857,3817,550,6892, + 2869,3600,3079,3230,3029,3553,4734,3598,805,3593, + 3968,3564,6892,3555,1,1,1,1,1,1, + 1,3562,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,6901,1,1,1,1,1,1,1, + 1,1,1,1,1,1,928,440,1,1, + 1,1,6892,1045,7098,2338,6800,3465,1,1, + 6892,6903,3471,6892,10614,10614,2869,3600,3079,3230, + 3029,3553,4734,3598,805,3593,3968,3564,39,6456, + 6453,5208,1041,5603,5488,5633,2316,6803,970,7189, + 7187,7196,7195,7191,7192,7190,7193,7194,7197,7188, + 7184,7263,7264,7178,7185,7181,7157,7183,7182,7179, + 7180,7158,5580,5514,5680,5657,6911,5457,6928,670, + 873,6913,814,5818,835,6914,6912,637,6908,6909, + 6910,7325,6892,6892,634,7326,7327,1438,6892,6767, + 6767,261,6763,261,261,261,261,6771,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,321,6551,6551,6892,316,6892,261,6892, + 6544,6540,2379,6691,6824,809,6824,2316,331,6906, + 6907,1,113,6760,1,1,1,5418,109,2200, + 7339,1393,1,6544,6540,2379,6691,6892,809,261, + 2316,451,999,2796,923,3435,255,343,6544,6540, + 2379,6691,6824,809,6824,2316,7427,7189,7187,7196, + 7195,7191,7192,7190,7193,7194,7197,7188,7184,7263, + 7264,7178,7185,7181,7157,7183,7182,7179,7180,7158, + 3032,6892,7362,7363,7364,6892,6767,6767,261,6763, + 261,261,261,261,6812,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5726, + 6892,5394,5146,137,37,261,5749,124,401,6544, + 6540,4215,6691,1,809,1,2316,493,1,256, + 6760,1,1,1,6892,6161,2200,7339,1393,4896, + 33,6892,6892,6495,6892,6495,261,6495,450,6495, + 1480,7184,7263,7264,7178,7185,7181,7157,7183,7182, + 7179,7180,7158,7427,365,6456,6453,2379,1041,6928, + 809,4064,2316,6892,6495,6495,6495,6495,2052,6892, + 6495,6477,1415,2005,6892,6906,6907,6483,1292,7362, + 7363,7364,6892,6904,6495,1,6544,6540,4215,6691, + 6495,809,112,2316,6495,3609,4010,3937,6495,4896, + 6495,6495,6495,6495,3369,4899,1958,1911,1864,1817, + 1770,1723,1676,1629,1582,1535,6495,6495,116,6495, + 6495,6495,6495,6495,6495,6495,6495,6495,6495,6495, + 6495,6495,6495,6495,6495,6495,6495,6495,6495,6495, + 6495,6495,6495,6903,6452,2052,2618,6495,6495,6495, + 6495,6892,4637,4333,6498,431,6498,6892,6498,422, + 6498,1,6544,6540,2379,6691,6904,809,593,2316, + 335,37,6907,6907,6907,6907,6907,39,6907,6892, + 7226,6930,365,5726,365,6498,6498,6498,6498,89, + 5749,6498,6489,6907,6907,6907,6907,6907,6907,6907, + 6907,6907,6907,6907,6907,6498,6892,6456,6453,713, + 6930,6498,6892,6456,6453,6498,1041,6892,6501,6498, + 2316,6498,6498,6498,6498,474,6903,3548,38,6474, + 6471,6907,3032,2855,6468,6907,2316,6498,6498,6907, + 6498,6498,6498,6498,6498,6498,6498,6498,6498,6498, + 6498,6498,6498,6498,6498,6498,6498,6498,6498,6498, + 6498,6498,6498,6498,43,6658,6658,2643,6498,6498, + 6498,6498,6892,6833,6833,261,6833,261,261,261, + 261,6836,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,9230, + 1,1,1,1,1,1,6892,1,6544,6540, + 6806,6691,261,6809,111,6694,479,1,1,6655, + 1,6480,110,6480,257,1,157,6830,1,1, + 1,129,6892,2589,7135,2338,2443,3465,3673,7362, + 7363,7364,6892,6906,6907,252,7184,7263,7264,7178, + 7185,7181,7157,7183,7182,7179,7180,7158,6892,2536, + 7427,6892,6833,6833,261,6833,261,261,261,261, + 261,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,9230,1, + 1,1,1,1,1,6892,2811,6892,6892,6456, + 6453,261,1041,39,809,5726,2316,6930,5703,956, + 1,6892,5749,5726,1,3360,6830,1,1,1, + 5749,6892,2589,7135,2338,969,3465,3408,5245,2745, + 2679,2613,2547,2481,2415,2349,2283,2217,2151,379, + 6456,6453,4215,1041,365,809,365,2316,3456,7427, + 6892,6833,6833,261,6833,261,261,261,261,6845, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,9230,1,1, + 1,1,1,1,480,39,39,6892,6930,6742, + 261,6742,2094,90,1,1,6896,1,6751,2052, + 6751,269,258,1,6646,6830,1,1,1,6892, + 3602,2589,7135,2338,6892,3465,492,7362,7363,7364, + 325,6906,6907,251,7184,7263,7264,7178,7185,7181, + 7157,7183,7182,7179,7180,7158,144,6892,7427,6892, + 6833,6833,261,6833,261,261,261,261,6836,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,9230,1,1,1, + 1,1,1,93,39,39,6486,6930,6818,261, + 6818,6892,6456,6453,39,1041,130,809,6930,2316, + 4145,259,1,3673,6830,1,1,1,136,6892, + 2589,7135,2338,6892,3465,6895,2662,429,6548,6548, + 382,316,252,7184,7263,7264,7178,7185,7181,7157, + 7183,7182,7179,7180,7158,4118,4091,7427,6892,6833, + 6833,261,6833,261,261,261,261,6836,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,9230,1,1,1,1, + 1,1,316,6892,6906,6907,6892,2648,261,809, + 2052,2316,6892,6906,6907,155,370,115,1480,6892, + 570,1,5418,6830,1,1,1,396,6898,2589, + 7135,2338,1,3465,3471,3890,6892,6637,6634,7263, + 7264,252,7184,7263,7264,7178,7185,7181,7157,7183, + 7182,7179,7180,7158,146,6892,7427,6892,6833,6833, + 261,6833,261,261,261,261,261,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,9230,1,1,1,1,1, + 1,6897,2052,114,6892,3437,575,261,5418,6892, + 575,571,5703,956,1,4379,4446,6309,4145,4487, + 1,3509,6830,1,1,1,5394,5146,2589,7135, + 2338,6892,3465,7184,7263,7264,7178,7185,7181,7157, + 7183,7182,7179,7180,7158,379,39,39,3890,6930, + 365,6892,365,4118,4091,7427,6892,6833,6833,261, + 6833,261,261,261,261,261,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,9230,1,1,1,1,1,1, + 6892,6456,6453,6892,6930,2656,261,6892,154,1, + 572,1,5394,5146,6892,2052,6902,4953,6902,1, + 222,6830,1,1,1,2684,6892,2589,7135,2338, + 6892,3465,7184,7263,7264,7178,7185,7181,7157,7183, + 7182,7179,7180,7158,6892,6456,6453,6901,1041,6901, + 6501,222,2316,6892,7427,6892,6833,6833,261,6833, + 261,261,261,261,261,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,9230,1,1,1,1,1,1,1, + 6739,6739,6892,6745,365,261,365,149,397,2709, + 6892,10368,10365,3565,3707,1,6892,5091,1,409, + 6830,1,1,1,192,6898,2589,7135,2338,392, + 3465,6892,1,1,1,1,1,1,1,1, + 6892,1,1,1,1,1,1,1,1,1, + 1,1,1,7427,1,6544,6540,6806,6691,6892, + 6809,345,6694,6902,2442,1,1,1,1,1, + 1,397,1,1,1,1,1,1,1,1, + 1,1,1,1,37,6748,6748,192,6897,365, + 1,6892,6892,7489,6901,5023,397,1,1,1, + 6544,6540,3293,1041,5603,5488,5633,2316,6892,6504, + 6531,6537,6510,6513,6525,6522,6528,6519,6516,6507, + 6534,1,6544,6540,2379,6691,7283,809,156,2316, + 343,1143,3602,5580,5514,5680,5657,6911,5457,6928, + 670,873,6913,814,5818,835,6914,6912,637,6908, + 6909,6910,37,6748,6748,6892,118,6892,1438,117, + 5077,343,5844,551,6898,39,39,39,6456,6453, + 5208,1041,5603,5488,5633,2316,6886,626,7189,7187, + 7196,7195,7191,7192,7190,7193,7194,7197,7188,6892, + 4637,4333,5079,4637,4333,6892,6777,6774,6892,10368, + 10365,5580,5514,5680,5657,6911,5457,1430,670,873, + 6913,814,5818,835,6914,6912,637,6908,6909,6910, + 324,743,743,6366,3509,150,1438,6897,6892,6892, + 6892,6892,3707,6892,4270,6892,6867,6900,6900,6902, + 6899,172,6456,6453,5208,1041,5603,5488,5633,2316, + 6928,626,7189,7187,7196,7195,7191,7192,7190,7193, + 7194,7197,7188,37,6748,6748,6892,6892,6892,6748, + 6901,381,6892,6892,1368,5580,5514,5680,5657,6911, + 5457,145,670,873,6913,814,5818,835,6914,6912, + 637,6908,6909,6910,6892,6784,6780,1057,3278,7439, + 1438,6899,6899,6892,2877,1,4411,39,39,1, + 6544,6540,3293,1041,5603,5488,5633,2316,1577,6504, + 6531,6537,6510,6513,6525,6522,6528,6519,6516,6507, + 6534,2052,1,1,404,4145,7368,7382,7328,98, + 402,6848,397,5580,5514,5680,5657,6911,5457,6928, + 670,873,6913,814,5818,835,6914,6912,637,6908, + 6909,6910,45,6797,6797,1,101,6892,1438,4690, + 4118,4091,326,463,6851,39,39,39,6456,6453, + 5208,1041,5603,5488,5633,2316,6864,626,7189,7187, + 7196,7195,7191,7192,7190,7193,7194,7197,7188,5283, + 1,6903,7285,6892,1341,397,1856,6892,582,354, + 1388,5580,5514,5680,5657,6911,5457,6794,670,873, + 6913,814,5818,835,6914,6912,637,6908,6909,6910, + 397,5968,6892,6777,6774,6892,1438,6892,6899,1, + 352,455,3089,6815,2079,97,6867,39,6456,6453, + 5208,1041,5603,5488,5633,2316,6864,626,7189,7187, + 7196,7195,7191,7192,7190,7193,7194,7197,7188,2052, + 6892,11370,8991,1,2199,29,887,475,7390,7396, + 7394,5580,5514,5680,5657,6911,5457,6928,670,873, + 6913,814,5818,835,6914,6912,637,6908,6909,6910, + 2052,37,6748,6748,489,2990,1438,7388,7389,7419, + 7420,3188,7397,6892,1,1,6867,311,3890,6892, + 6827,1,573,6898,6640,6928,6892,7399,335,6459, + 6892,6462,6892,798,422,3536,3704,7400,7226,1751, + 1762,7421,6892,7398,7184,7263,7264,7178,7185,7181, + 7157,7183,7182,7179,7180,7158,6928,581,6465,7410, + 7409,1,7415,7416,7422,7413,7414,7393,7395,7417, + 6892,6839,7391,7392,7418,2052,7403,7404,7405,7401, + 7402,7411,7412,7407,7406,7408,6897,6643,6492,2311, + 7423,39,6456,6453,5208,1041,5603,5488,5633,2316, + 6896,626,7189,7187,7196,7195,7191,7192,7190,7193, + 7194,7197,7188,126,6842,48,3544,6892,48,6907, + 6892,1,6906,5173,713,5580,5514,5680,5657,6911, + 5457,6839,670,873,6913,814,5818,835,6914,6912, + 637,6908,6909,6910,1,6544,6540,6736,6691,6679, + 6697,6682,6694,47,6504,6531,6537,6510,6513,6525, + 6522,6528,6519,6516,6507,6534,1,4064,318,6907, + 3602,3360,6906,483,6842,589,3544,6661,6676,6673, + 6688,6685,6709,6670,6892,6724,6733,6703,6727,6667, + 6730,6700,6706,6721,6718,6715,6712,8,29,324, + 461,6892,4010,3937,4767,216,6889,6892,1383,6895, + 6739,6739,39,6456,6453,5208,1041,5603,5488,5633, + 2316,6892,626,7189,7187,7196,7195,7191,7192,7190, + 7193,7194,7197,7188,6892,6892,7209,225,589,3438, + 125,430,72,6892,2141,6892,5580,5514,5680,5657, + 6911,5457,713,670,873,6913,814,5818,835,6914, + 6912,637,6908,6909,6910,6892,6892,9970,4361,459, + 6889,1438,39,6456,6453,5208,1041,5603,5488,5633, + 2316,6892,626,7189,7187,7196,7195,7191,7192,7190, + 7193,7194,7197,7188,4064,713,6821,2036,484,2788, + 6892,6892,6892,35,6664,3131,5580,5514,5680,5657, + 6911,5457,6880,670,873,6913,814,5818,835,6914, + 6912,637,6908,6909,6910,6892,6883,6892,5983,4010, + 3937,6892,1380,39,6456,6453,3293,1041,5603,5488, + 5633,2316,6892,626,7189,7187,7196,7195,7191,7192, + 7190,7193,7194,7197,7188,4145,342,6892,6892,6892, + 6328,4798,6334,543,2,4185,2273,5580,5514,5680, + 5657,6911,5457,2791,670,873,6913,814,5818,835, + 6914,6912,637,6908,6909,6910,6892,6892,6892,5878, + 4118,4091,1438,39,6456,6453,3293,1041,5603,5488, + 5633,2316,4796,626,7189,7187,7196,7195,7191,7192, + 7190,7193,7194,7197,7188,541,6892,6892,37,6892, + 5337,6892,6892,6892,2181,6892,6892,5580,5514,5680, + 5657,6911,5457,6338,670,873,6913,814,5818,835, + 6914,6912,637,6908,6909,6910,6892,6892,6892,6892, + 6892,6892,1438,39,6456,6453,5208,1041,5603,5488, + 5633,2316,6892,626,7189,7187,7196,7195,7191,7192, + 7190,7193,7194,7197,7188,6892,545,6892,6892,6892, + 6892,6892,6892,6892,6892,6348,2791,5580,5514,5680, + 5657,6911,5457,4858,670,873,6913,814,5818,835, + 6914,6912,637,6908,6909,6910,6892,6892,6892,6892, + 6892,6892,1438,39,6456,6453,4570,1041,5603,5488, + 5633,2316,4920,626,7189,7187,7196,7195,7191,7192, + 7190,7193,7194,7197,7188,6892,6892,6892,6892,6892, + 6892,6892,6892,6892,6892,2943,903,5580,5514,5680, + 5657,6911,5457,6892,670,873,6913,814,5818,835, + 6914,6912,637,6908,6909,6910,39,6456,6453,5208, + 1041,5603,5488,5633,2316,6892,626,7189,7187,7196, + 7195,7191,7192,7190,7193,7194,7197,7188,6892,6892, + 6892,6892,6892,6892,6892,6892,6892,6892,6892,6892, + 5580,5514,5680,5657,6911,5457,6892,670,873,6913, + 814,5818,835,6914,6912,637,6908,6909,6910,39, + 6456,6453,3293,1041,5603,5488,5633,2316,6892,626, + 7189,7187,7196,7195,7191,7192,7190,7193,7194,7197, + 7188,6892,6892,6892,6892,6892,6892,6892,6892,6892, + 6892,6892,6892,5580,5514,5680,5657,6911,5457,6892, + 670,873,6913,814,5818,835,6914,6912,637,6908, + 6909,6910,39,6456,6453,3293,1041,5603,5488,5633, + 2316,6892,626,7189,7187,7196,7195,7191,7192,7190, + 7193,7194,7197,7188,6892,6892,6892,6892,6892,6892, + 6892,6892,6892,6892,6892,6892,5580,5514,5680,5657, + 6911,5457,6892,670,873,6913,814,5818,835,6914, + 6912,637,6908,6909,6910,39,6456,6453,5208,1041, + 5603,5488,5633,2316,6892,626,7189,7187,7196,7195, + 7191,7192,7190,7193,7194,7197,7188,1,6892,6892, + 6892,6892,6892,6892,6892,6892,194,6892,6892,5580, + 5514,5680,5657,6911,5457,6892,670,873,6913,814, + 5818,835,6914,6912,637,6908,6909,6910,6892,6456, + 6453,6892,6930,6892,6892,6892,6892,6892,758,7189, + 7187,7196,7195,7191,7192,7190,7193,7194,7197,7188, + 7184,7263,7264,7178,7185,7181,7157,7183,7182,7179, + 7180,7158,6892,6892,6892,6892,6892,6892,6892,194, + 6892,6892,6892,6892,6892,6892,6892,6892,273,6627, + 6623,7325,6631,6892,634,7326,7327,6892,758,6614, + 6620,6593,6596,6608,6605,6611,6602,6599,6590,6617, + 6569,6563,6560,6587,6566,6578,6557,6572,6575,6584, + 6581,6554,6892,6892,6892,6892,6892,6892,6892,6892, + 6892,6892,6892,6892,6892,6892,6892,6892,6906,6907, + 6892,7325,6892,6892,634,7326,7327,1186,7189,7187, + 7196,7195,7191,7192,7190,7193,7194,7197,7188,7184, + 7263,7264,7178,7185,7181,7157,7183,7182,7179,7180, + 7158,6892,6892,6892,6892,6892,6892,6892,6892,6892, + 6892,6892,6892,6892,6892,6892,273,6757,6754,6892, + 7325,6892,6892,634,7326,7327,1186,6614,6620,6593, + 6596,6608,6605,6611,6602,6599,6590,6617,6569,6563, + 6560,6587,6566,6578,6557,6572,6575,6584,6581,6554, + 6892,6892,6892,29,422,422,6652,422,6652,422, + 6652,422,6652,6892,74,6892,6892,3335,6892,7325, + 6892,6892,634,7326,7327,422,422,422,422,422, + 422,422,422,422,422,422,422,6892,1,6544, + 6540,4215,6691,6652,809,1,2316,6640,3890,6892, + 6954,6955,6892,6892,375,6892,6892,6459,6892,6892, + 6892,6892,6892,6652,32,423,423,6649,423,6649, + 423,6649,423,6649,4716,6652,6892,6892,6892,6892, + 6892,6892,6892,6892,6892,6892,423,423,423,423, + 423,423,423,423,423,423,423,423,2052,6892, + 6892,6892,6892,6892,6649,2052,6892,6892,6892,375, + 6643,6892,6892,375,6892,6892,6892,375,6892,6892, + 6892,6892,6892,6892,6649,6892,569,6892,6892,6892, + 6892,745,6892,868,6892,6892,6649,7189,7187,7196, + 7195,7191,7192,7190,7193,7194,7197,7188,7184,7263, + 7264,7178,7185,7181,7157,7183,7182,7179,7180,7158, + 37,6906,6906,6906,6906,6906,6892,6906,6892,6892, + 6892,6892,6892,6892,6892,6892,6892,6892,6892,6892, + 6892,6892,6906,6906,6906,6906,6906,6906,6906,6906, + 6906,6906,6906,6906,6892,6892,6892,6892,6892,6892, + 6892,6892,6892,6892,6892,6892,6892,6892,6892,6892, + 6892,6892,6892,6892,6892,6892,6892,6892,6892,6892, + 6906,6892,6892,6892,6906,6892,6892,6892,6906 }; }; public final static char termAction[] = TermAction.termAction; @@ -1808,61 +2201,67 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 107,156,202,150,148,865,865,865,865,998, - 148,803,803,1048,803,290,186,292,203,203, - 203,203,203,203,203,203,203,805,811,816, - 813,820,818,825,823,827,826,828,433,829, - 202,202,1088,1088,1088,1088,241,664,7,7, - 800,1088,337,430,803,803,7,241,430,430, - 421,186,877,1087,1042,1000,935,202,803,805, - 761,761,664,202,203,203,203,203,203,203, - 203,203,203,203,203,203,203,203,203,203, - 203,203,203,202,202,202,202,202,202,202, - 202,202,202,202,202,203,430,781,781,781, - 781,530,430,7,7,996,924,935,249,935, - 244,935,1,935,919,998,241,337,337,7, - 865,203,996,297,68,651,650,540,942,942, - 998,292,337,1087,202,239,1041,238,240,238, - 430,337,813,813,811,811,811,818,818,818, - 818,816,816,823,820,820,826,825,827,793, - 828,148,148,148,148,241,241,781,780,781, - 800,241,482,485,246,529,247,998,241,241, - 530,781,421,337,844,430,70,72,241,1042, - 203,1088,809,386,430,1000,241,241,240,1042, - 202,202,202,202,202,148,148,186,483,798, - 796,485,241,710,586,708,530,249,534,241, - 530,241,430,655,643,654,72,530,239,430, - 809,996,1041,1000,241,239,430,430,430,430, - 664,664,483,796,537,241,485,793,247,865, - 532,59,783,485,710,709,710,710,530,534, - 534,241,241,576,202,652,652,591,591,241, - 66,996,610,430,241,809,810,809,202,386, - 64,805,1000,430,430,796,796,1042,249,249, - 781,865,238,659,785,235,148,710,710,710, - 710,241,534,536,853,536,576,202,202,72, - 241,1042,430,70,643,576,977,809,664,203, - 337,64,796,795,239,722,249,341,501,239, - 710,710,235,849,203,793,599,858,241,996, - 710,710,714,536,537,203,241,775,72,576, - 810,430,337,796,850,722,722,706,1002,474, - 148,247,378,501,239,710,249,998,785,203, - 203,1041,235,867,1115,715,241,537,775,430, - 775,537,722,722,340,474,706,871,998,780, - 865,604,604,850,249,166,867,241,148,714, - 241,998,998,241,148,768,775,537,341,722, - 850,598,849,430,998,241,501,341,501,779, - 779,875,167,998,241,664,241,241,241,73, - 768,722,202,253,235,850,241,241,501,1088, - 1088,875,166,793,203,793,850,165,148,148, - 148,167,148,241,441,850,850,241,249,430, - 241,241,429,770,537,430,537,249,241,850, - 780,158,148,158,167,793,167,186,186,184, - 165,186,850,850,602,164,1088,770,537,253, - 850,105,610,167,430,235,430,184,474,148, - 430,875,253,604,430,430,990,167,602,167, - 850,474,202,167,164,536,779,249,249,992, - 202,165,664,850,430,848,252,238,167,430, - 850,848,848,167 + 904,7,485,1,945,837,837,837,837,651, + 945,663,663,583,663,120,469,122,486,486, + 486,486,486,486,486,486,486,665,671,676, + 673,680,678,685,683,687,686,688,267,689, + 485,485,42,42,42,42,524,223,15,15, + 660,42,567,171,663,663,15,524,171,171, + 162,469,947,41,1124,653,1005,485,663,665, + 379,379,223,485,486,486,486,486,486,486, + 486,486,486,486,486,486,486,486,486,486, + 486,486,486,485,485,485,485,485,485,485, + 485,485,485,485,485,486,171,1070,1070,1070, + 1070,1126,171,15,15,649,994,1005,79,1005, + 74,1005,9,1005,989,651,524,567,567,15, + 837,486,649,527,865,855,854,405,1012,1012, + 651,122,567,41,485,522,1123,521,523,521, + 171,567,673,673,671,671,671,678,678,678, + 678,676,676,683,680,680,686,685,687,1082, + 688,945,945,945,945,524,524,1070,43,645, + 469,1047,1045,1052,1050,1054,1053,1055,1056,1069, + 1070,660,524,316,174,76,381,77,651,524, + 524,1126,1070,162,567,704,171,867,869,524, + 1124,486,42,669,127,171,653,524,524,523, + 1124,485,485,485,485,485,945,945,622,633, + 633,633,633,617,651,776,486,486,486,486, + 486,486,486,486,486,485,485,485,485,485, + 485,485,485,485,485,485,485,486,469,317, + 658,656,174,524,783,578,781,1126,79,319, + 524,1126,524,171,859,847,858,869,1126,522, + 171,669,649,1123,653,524,522,171,171,171, + 171,223,223,524,486,1045,1045,1045,1050,1047, + 1047,1053,1052,1054,1082,1055,317,656,322,524, + 174,1082,77,837,1128,767,1072,174,783,782, + 783,783,1126,319,319,524,524,325,485,856, + 856,386,386,524,863,649,792,171,524,669, + 670,669,485,127,772,665,653,171,171,1126, + 787,485,656,656,1124,79,79,1070,837,521, + 335,1074,518,945,783,783,783,783,524,319, + 321,825,321,325,485,485,869,524,1124,171, + 867,847,325,416,669,223,486,567,772,524, + 656,655,522,340,79,729,190,522,783,783, + 518,709,486,1082,394,830,524,649,783,783, + 570,321,322,486,524,720,869,325,670,171, + 567,656,710,340,340,265,1084,308,945,77, + 766,190,522,783,79,651,1074,486,486,1123, + 518,839,218,571,524,322,720,171,720,322, + 340,340,728,308,265,843,651,1069,837,399, + 399,710,79,449,839,524,945,570,524,651, + 651,524,945,713,720,322,729,340,710,393, + 709,171,651,524,190,729,190,1068,1068,774, + 450,651,524,223,524,524,524,870,713,340, + 485,83,518,710,524,524,190,42,42,774, + 449,1082,486,1082,710,448,945,945,945,450, + 945,524,275,710,710,524,79,171,524,524, + 170,715,322,171,322,79,524,710,1069,441, + 945,441,450,1082,450,469,469,467,448,469, + 710,710,726,447,42,715,322,83,710,72, + 792,450,171,518,171,467,308,945,171,774, + 83,399,171,171,429,450,726,450,710,308, + 485,450,447,321,1068,79,79,979,485,448, + 223,710,171,708,82,521,450,171,710,708, + 708,450 }; }; public final static char asb[] = Asb.asb; @@ -1870,118 +2269,119 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 4,8,67,1,2,0,28,11,12,40, - 23,42,65,13,43,56,29,30,44,14, - 31,32,15,16,33,66,34,45,17,18, - 46,35,47,57,49,60,50,36,51,58, - 19,22,20,24,21,52,53,54,39,3, - 37,38,9,6,25,26,41,68,7,1, - 2,4,10,5,0,5,7,3,63,6, - 9,90,28,11,12,23,13,56,29,30, - 14,31,32,15,16,33,34,17,18,35, - 57,36,10,58,19,22,20,24,21,1, - 2,4,73,8,40,0,11,12,42,65, - 13,43,44,14,15,16,66,7,45,17, - 18,46,47,49,60,50,51,10,19,20, - 21,52,53,54,39,1,2,37,38,9, - 6,25,26,5,41,4,61,3,0,8, - 72,118,73,27,69,120,0,86,103,104, - 105,48,72,102,121,71,61,74,62,59, - 64,76,78,84,82,75,80,81,83,85, - 67,77,79,27,8,28,40,23,56,29, - 30,31,32,33,34,35,57,36,58,22, - 24,60,65,66,10,43,47,45,42,51, + 9,71,118,72,40,68,120,0,4,9, + 69,1,2,0,41,66,42,43,67,8, + 44,45,46,47,59,48,49,50,51,52, + 38,36,37,7,5,34,35,6,39,64, + 3,4,10,1,2,56,57,58,12,21, + 11,17,15,16,18,19,14,13,20,25, + 31,32,27,30,29,22,26,23,24,28, + 33,53,0,55,4,71,1,2,69,9, + 0,73,59,36,37,7,5,34,35,39, + 45,3,4,50,51,52,38,48,43,47, 12,21,11,17,15,16,18,19,14,13, - 20,52,53,54,39,50,44,49,37,38, - 25,26,41,46,9,6,3,4,7,5, - 1,2,0,48,4,72,1,2,67,8, - 0,71,60,37,38,9,6,25,26,41, - 46,3,4,52,53,54,39,50,44,49, - 12,21,11,17,15,16,18,19,14,13, - 20,10,43,47,45,42,51,67,8,7, - 5,1,2,66,65,0,65,66,3,10, - 43,47,45,42,51,12,21,11,17,15, - 16,18,19,14,13,20,52,53,54,39, - 50,44,49,5,7,4,37,38,9,6, - 25,26,41,46,1,2,118,8,0,67, - 40,23,13,56,29,14,31,32,15,16, - 33,34,17,18,35,57,36,58,19,22, - 20,24,21,12,11,28,8,3,9,6, - 27,62,64,86,30,61,48,7,1,2, - 5,4,10,59,0,91,89,25,26,92, - 93,87,88,55,94,95,96,97,98,99, - 100,101,107,72,90,70,108,109,110,111, - 112,113,114,115,116,117,118,71,27,120, - 68,1,2,9,6,4,3,63,69,73, - 8,0,68,72,90,69,118,73,71,120, - 11,12,42,65,13,43,44,14,15,16, - 66,45,17,18,46,47,49,60,50,51, - 10,19,20,21,52,53,54,39,37,38, - 25,26,41,8,27,5,7,1,2,4, - 3,9,6,0,86,59,7,103,104,105, - 62,8,3,9,6,5,72,71,27,61, - 28,11,12,40,23,13,56,29,30,14, - 31,32,15,16,33,34,17,18,35,57, - 36,10,58,19,22,20,24,21,4,1, - 2,48,0,1,2,69,71,8,0,28, - 11,12,23,13,29,30,14,31,32,15, - 16,33,7,34,17,18,35,36,19,22, - 20,24,21,1,2,8,63,9,6,5, - 4,73,27,3,0,23,60,24,8,68, - 90,70,69,73,0,4,8,72,67,0, - 74,68,72,90,73,67,63,3,8,69, - 27,70,0,68,70,69,1,2,0,28, - 11,12,40,23,13,56,29,30,14,31, - 32,15,16,33,34,17,18,35,57,36, + 20,10,42,46,44,41,49,69,9,8, + 6,1,2,67,66,0,98,91,34,35, + 99,100,86,87,54,89,90,92,93,94, + 95,96,101,102,71,97,70,103,104,105, + 106,107,108,109,110,111,112,118,73,40, + 120,64,1,2,7,5,4,3,60,68, + 72,9,0,88,61,8,114,115,116,63, + 9,3,7,5,6,71,73,40,62,25, + 11,12,53,23,13,56,26,27,14,28, + 29,15,16,30,31,17,18,32,57,55, + 33,10,58,19,20,24,21,1,2,4, + 22,0,9,72,11,12,41,66,13,42, + 43,14,15,16,67,8,44,17,18,45, + 46,47,59,48,49,10,19,20,21,50, + 51,52,1,2,3,36,37,7,5,34, + 35,6,39,4,38,0,64,71,97,68, + 118,72,73,120,11,12,41,66,13,42, + 43,14,15,16,67,44,17,18,45,46, + 47,59,48,49,10,19,20,21,50,51, + 52,38,36,37,34,35,39,9,40,6, + 8,1,2,4,3,7,5,0,1,2, + 68,73,9,0,23,59,24,9,64,97, + 70,68,72,0,9,71,69,74,0,65, + 25,11,12,53,23,13,56,26,88,27, + 14,28,29,15,16,30,61,31,17,18, + 32,57,33,10,58,19,63,22,20,24, + 21,9,3,7,5,73,40,62,8,6, + 55,1,2,4,0,74,64,71,97,72, + 69,60,3,9,68,40,70,0,64,70, + 68,1,2,0,11,12,13,14,15,16, + 17,18,19,20,21,25,23,26,27,28, + 29,30,31,32,33,22,24,40,9,72, + 8,1,2,60,3,7,5,6,4,0, + 88,114,115,116,55,71,113,121,73,62, + 74,63,61,65,76,78,84,82,75,80, + 81,83,85,69,77,79,40,9,25,53, + 23,56,26,27,28,29,30,31,32,57, + 33,58,22,24,59,66,67,10,42,46, + 44,41,49,12,21,11,17,15,16,18, + 19,14,13,20,50,51,52,38,48,43, + 47,36,37,34,35,39,45,7,5,3, + 4,8,6,1,2,0,66,67,3,10, + 42,46,44,41,49,12,21,11,17,15, + 16,18,19,14,13,20,50,51,52,38, + 48,43,47,6,8,4,36,37,7,5, + 34,35,39,45,1,2,118,9,0,22, + 1,2,4,114,115,116,0,4,9,71, + 69,0,67,66,34,35,99,100,94,95, + 6,39,70,54,106,107,103,104,105,111, + 110,112,87,86,108,109,92,93,89,90, + 96,101,36,37,91,117,10,56,53,57, + 58,12,21,11,17,15,16,18,19,14, + 13,20,25,31,32,27,30,29,22,26, + 23,24,28,33,64,68,3,60,7,5, + 1,2,4,0,59,23,24,8,6,1, + 2,4,74,69,119,117,36,37,60,3, + 98,91,5,99,100,34,35,87,86,54, + 89,90,92,93,7,94,95,96,64,97, + 72,120,70,103,104,105,106,107,108,109, + 110,111,112,71,118,101,102,73,68,40, + 9,0,23,24,74,3,71,40,69,59, + 9,64,97,68,72,70,0,69,53,23, + 13,56,26,14,28,29,15,16,30,31, + 17,18,32,57,33,58,19,22,20,24, + 21,12,11,25,9,3,7,5,40,63, + 65,88,27,62,55,61,8,1,2,4, + 10,6,0,113,0,54,64,89,90,0, + 4,54,9,71,69,0,72,9,87,86, + 0,25,11,12,53,23,13,56,26,27, + 14,28,29,15,16,30,31,17,18,32, + 57,33,10,58,19,22,20,24,21,1, + 2,4,97,0,9,68,73,70,0,71, + 9,60,3,70,68,40,54,0,9,69, + 68,0,9,69,70,0,7,5,8,6, + 4,1,2,3,60,64,70,68,9,72, + 97,0,6,8,3,60,5,7,97,25, + 11,12,53,23,13,56,26,27,14,28, + 29,15,16,30,31,17,18,32,57,33, 10,58,19,22,20,24,21,1,2,4, - 90,0,9,6,7,5,4,1,2,3, - 63,68,70,69,8,73,90,0,8,72, - 67,74,0,8,73,11,12,42,65,13, - 43,44,14,15,16,66,7,45,17,18, - 46,47,49,60,50,51,10,19,20,21, - 52,53,54,1,2,3,37,38,9,6, - 25,26,5,41,4,39,0,4,55,8, - 72,67,0,22,1,2,4,103,104,105, - 0,64,28,11,12,40,23,13,56,29, - 86,30,14,31,32,15,16,33,59,34, - 17,18,35,57,36,10,58,19,62,22, - 20,24,21,8,3,9,6,71,27,61, - 7,4,48,5,1,2,0,23,24,74, - 3,72,27,67,60,8,90,73,70,69, - 68,0,27,8,3,7,5,9,6,4, - 1,2,72,0,60,23,24,7,5,1, - 2,4,74,67,119,106,37,38,63,3, - 91,89,6,92,93,25,26,88,87,55, - 94,95,96,97,9,98,99,100,68,90, - 73,120,70,108,109,110,111,112,113,114, - 115,116,117,72,118,101,107,71,69,27, - 8,0,8,69,71,70,0,72,8,63, - 3,70,69,27,55,0,8,67,69,0, - 8,67,70,0,102,0,65,66,37,38, - 9,6,25,26,5,41,46,3,4,7, - 52,53,54,39,50,44,49,12,21,11, - 17,15,16,18,19,14,13,20,10,43, - 47,45,42,51,63,1,2,0,10,56, - 40,57,58,12,21,11,17,15,16,18, - 19,14,13,20,74,72,90,118,71,67, - 120,119,91,106,89,37,38,25,26,92, - 93,87,88,55,68,94,95,96,97,98, - 99,100,101,107,70,108,109,110,111,112, - 113,114,115,116,117,69,28,23,29,30, - 31,32,33,34,35,36,22,24,27,8, - 73,3,63,7,5,9,6,1,2,4, - 0,40,23,13,56,29,14,31,32,15, - 16,33,34,17,18,35,57,36,10,58, - 19,22,20,24,21,12,11,28,8,3, - 9,27,62,59,64,86,30,61,55,4, - 6,7,1,2,5,48,0,66,65,25, - 26,6,92,93,98,9,99,5,41,70, - 55,68,111,112,108,109,110,116,115,117, - 88,87,113,114,96,97,94,95,100,101, - 37,38,69,89,106,63,3,28,11,12, - 40,23,13,56,29,30,14,31,32,15, - 16,33,34,17,18,35,57,36,10,58, - 19,20,24,21,1,2,4,22,0 + 72,9,0,11,12,41,66,13,42,43, + 14,15,16,67,8,44,17,18,45,46, + 47,59,48,49,10,19,20,21,50,51, + 52,38,1,2,36,37,7,5,34,35, + 6,39,4,62,3,0,66,67,36,37, + 34,35,39,45,50,51,52,38,48,43, + 47,12,21,11,17,15,16,18,19,14, + 13,20,10,42,46,44,41,49,7,5, + 3,60,8,6,4,1,2,0,10,56, + 53,57,58,12,21,11,17,15,16,18, + 19,14,13,20,74,71,97,118,73,69, + 120,8,31,32,33,22,24,1,2,30, + 29,28,27,26,6,4,23,25,119,98, + 117,91,36,37,34,35,99,100,9,60, + 3,5,72,40,87,86,54,89,90,92, + 93,7,94,95,96,101,102,103,104,105, + 106,107,108,109,110,111,112,70,68,64, + 0,40,9,3,8,6,7,5,4,1, + 2,71,0,53,23,13,56,26,14,28, + 29,15,16,30,31,17,18,32,57,33, + 10,58,19,22,20,24,21,12,11,25, + 9,3,7,40,63,61,65,88,27,62, + 54,4,5,8,6,1,2,55,0 }; }; public final static byte asr[] = Asr.asr; @@ -1989,61 +2389,67 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 36,12,79,12,12,12,12,12,12,83, - 12,12,12,285,12,183,281,187,79,79, - 220,79,79,79,79,79,79,12,12,12, - 12,12,12,12,12,12,12,12,79,12, - 79,150,46,46,46,46,187,171,31,31, - 66,5,90,241,12,12,31,224,241,241, - 210,1,79,104,145,12,12,150,12,12, - 49,49,171,150,79,79,79,79,79,79, - 79,79,79,79,79,79,79,79,79,79, - 79,79,79,79,79,79,79,79,79,79, - 79,79,79,79,150,79,241,12,12,12, - 12,115,241,41,41,139,249,250,166,250, - 71,250,15,250,243,10,187,90,90,41, - 12,79,139,85,209,55,55,12,12,12, - 10,187,90,46,118,183,57,182,187,182, - 241,90,12,12,12,12,12,12,12,12, + 204,12,63,12,12,12,12,12,12,67, + 12,12,12,130,12,220,153,27,63,63, + 252,63,63,63,63,63,63,12,12,12, + 12,12,12,12,12,12,12,12,63,12, + 63,195,154,154,154,154,27,81,177,177, + 53,5,107,232,12,12,177,256,232,232, + 161,1,63,56,18,12,12,195,12,12, + 40,40,81,195,63,63,63,63,63,63, + 63,63,63,63,63,63,63,63,63,63, + 63,63,63,63,63,63,63,63,63,63, + 63,63,63,63,195,63,232,12,12,12, + 12,76,232,30,30,184,274,275,212,275, + 50,275,13,275,268,10,27,107,107,30, + 12,63,184,102,160,20,20,12,12,12, + 10,27,107,154,84,220,126,219,27,219, + 232,107,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,195,11,12,12,12, - 155,187,12,31,194,83,94,83,187,11, - 12,12,153,90,12,241,267,31,187,145, - 79,46,31,101,241,12,11,187,168,145, - 79,150,150,150,150,12,12,41,141,141, - 141,260,195,69,69,12,252,166,31,252, - 144,195,241,12,24,12,270,143,195,241, - 74,155,57,12,224,195,241,241,241,241, - 171,171,12,31,19,187,216,12,174,12, - 12,99,201,260,69,69,31,31,144,31, - 225,11,195,31,79,12,12,55,55,187, - 23,139,270,241,195,31,106,12,150,155, - 169,12,12,241,241,141,92,145,166,199, - 12,12,83,31,134,26,12,31,31,61, - 61,195,225,21,12,12,92,79,79,31, - 11,145,241,267,177,31,12,74,171,79, - 90,169,31,92,183,31,166,255,31,252, - 31,97,179,216,79,12,159,12,187,139, - 61,61,190,21,19,79,225,31,270,92, - 106,241,90,92,216,227,31,12,255,202, - 12,198,99,270,183,97,63,128,26,79, - 79,33,179,12,83,113,252,19,108,241, - 31,19,255,227,165,134,12,12,83,12, - 12,126,126,216,63,18,12,252,12,232, - 252,83,83,11,12,31,108,19,255,31, - 216,13,12,241,83,252,270,255,31,12, - 12,31,147,128,11,171,11,252,252,239, - 92,227,118,77,26,216,252,175,270,46, - 46,132,161,12,79,12,216,12,12,12, - 12,162,12,225,214,216,216,225,110,241, - 11,11,241,31,19,241,31,166,175,216, - 12,39,12,12,162,12,162,277,277,121, - 12,277,216,216,12,31,46,108,19,31, - 216,12,46,162,241,26,241,273,31,12, - 241,132,77,126,241,241,31,162,12,162, - 216,26,150,162,39,19,12,110,110,24, - 79,12,236,216,241,218,76,182,162,241, - 216,218,12,162 + 12,12,12,12,12,47,11,12,245,161, + 148,12,12,12,12,12,12,12,12,12, + 12,226,27,12,177,46,67,24,67,27, + 11,12,12,224,107,12,232,198,177,27, + 18,63,154,177,71,232,12,11,27,157, + 18,63,195,195,195,195,12,12,274,275, + 275,275,275,294,10,12,63,63,63,63, + 63,63,63,63,63,63,63,63,63,63, + 63,63,63,63,63,63,195,63,30,186, + 186,186,302,47,109,109,12,239,212,177, + 239,17,47,232,12,170,12,201,16,47, + 232,38,226,126,12,256,47,232,232,232, + 232,81,81,27,63,12,12,12,12,12, + 12,12,12,12,12,12,12,177,138,27, + 167,12,123,12,12,79,286,302,109,109, + 177,177,17,177,257,11,47,177,63,12, + 12,20,20,27,169,184,201,232,47,177, + 115,12,195,226,158,12,12,232,232,17, + 232,63,186,117,18,212,141,12,12,67, + 177,179,172,12,177,177,74,74,47,257, + 90,12,12,117,63,63,177,11,18,232, + 198,214,177,12,38,81,63,107,158,47, + 177,117,220,177,212,277,177,239,177,94, + 216,167,63,12,92,12,27,184,74,74, + 111,90,138,63,257,177,201,117,115,232, + 107,117,167,259,177,12,277,287,12,140, + 79,201,220,94,134,119,172,63,63,87, + 216,12,67,58,239,138,96,232,177,138, + 277,259,211,179,12,12,67,12,12,98, + 98,167,134,137,12,239,12,188,239,67, + 67,11,12,177,96,138,277,177,167,143, + 12,232,67,239,201,277,177,12,12,177, + 192,119,11,81,11,239,239,230,117,259, + 84,61,172,167,239,124,201,154,154,69, + 207,12,63,12,167,12,12,12,12,208, + 12,257,165,167,167,257,145,232,11,11, + 232,177,138,232,177,212,124,167,12,100, + 12,12,208,12,208,282,282,234,12,282, + 167,167,12,177,154,96,138,177,167,12, + 154,208,232,172,232,264,177,12,232,69, + 61,98,232,232,177,208,12,208,167,172, + 195,208,100,138,12,145,145,170,63,12, + 242,167,232,22,60,219,208,232,167,22, + 12,208 }; }; public final static char nasb[] = Nasb.nasb; @@ -2051,35 +2457,37 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 3,13,10,9,153,151,120,150,149,5, - 2,0,186,0,154,185,0,4,68,0, - 155,0,36,94,93,65,5,2,9,10, - 4,0,66,50,0,4,176,0,112,0, - 5,10,9,2,13,4,46,0,5,2, - 9,10,140,0,76,0,66,139,138,0, - 109,0,43,162,0,4,197,0,108,0, - 154,190,0,144,0,68,130,43,10,9, - 2,13,5,0,13,2,9,10,5,82, - 0,63,0,43,1,0,161,0,158,0, - 4,179,0,177,0,142,0,126,0,43, - 56,0,195,0,137,66,0,4,30,0, - 40,4,24,183,0,107,0,174,5,173, - 0,163,0,4,10,9,2,65,5,89, - 50,0,137,2,66,0,49,43,181,4, - 40,0,94,93,50,5,58,0,193,0, - 68,40,49,69,4,43,0,2,114,0, - 4,96,0,122,103,0,94,93,50,65, - 58,5,10,9,2,0,2,45,0,5, - 101,194,0,45,2,3,0,1,122,0, - 39,5,2,9,10,4,160,0,36,93, - 94,4,0,4,40,39,0,164,0,5, - 10,9,13,3,1,0,115,4,49,81, - 0,5,101,170,0,4,180,0,46,4, - 36,0,2,5,120,116,117,118,13,86, - 0,2,57,0,4,49,81,83,0,4, - 49,81,101,47,5,0,50,5,89,24, - 4,0,46,4,182,0,4,46,102,0, - 4,46,40,0,4,46,198,0 + 3,13,10,9,137,136,113,135,134,4, + 2,0,166,200,0,154,2,75,0,79, + 0,176,0,42,1,0,2,44,0,4, + 10,9,2,13,127,5,0,161,0,4, + 2,9,10,157,0,44,2,3,0,166, + 205,0,5,212,0,192,0,210,0,80, + 148,42,10,9,2,13,4,0,175,0, + 5,194,0,123,0,154,75,0,170,0, + 5,105,0,5,28,0,75,53,0,167, + 0,208,0,173,0,144,0,121,0,129, + 0,13,2,9,10,4,94,0,122,0, + 4,115,209,0,159,0,51,0,186,4, + 185,0,140,117,0,75,156,155,0,5, + 60,213,0,42,174,0,5,80,0,1, + 140,0,201,0,42,66,0,13,2,9, + 10,4,36,5,60,0,2,131,0,32, + 100,101,5,0,5,36,39,0,32,101, + 100,77,4,2,9,10,5,0,5,10, + 9,2,77,4,98,53,0,4,115,182, + 0,50,42,196,5,36,0,53,4,98, + 27,5,0,5,191,0,80,36,50,82, + 5,42,0,101,100,53,77,68,4,10, + 9,2,0,101,100,53,4,68,0,60, + 5,32,0,36,5,27,198,0,2,67, + 0,5,195,0,137,214,136,113,135,134, + 0,4,10,9,13,3,1,0,132,5, + 50,93,0,60,5,197,0,2,4,113, + 110,111,112,13,69,0,5,50,93,95, + 0,5,60,116,0,39,4,2,9,10, + 5,172,0,113,69,13,110,111,112,190, + 0,5,50,93,115,48,4,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2087,18 +2495,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, - 113,114,2,31,13,10,79,115,9,100, + 113,114,2,31,10,13,9,79,115,100, 48,52,60,68,74,75,86,87,102,105, - 107,104,54,106,11,12,120,47,64,66, - 70,73,76,83,89,98,7,8,112,53, - 14,55,61,67,84,88,90,93,94,97, - 99,109,110,111,19,63,91,101,77,95, - 122,103,1,46,58,78,121,20,44,33, - 119,30,118,96,108,49,50,56,57,59, - 69,71,72,85,92,65,17,18,6,32, - 4,15,16,21,22,23,24,25,26,27, - 28,51,80,81,82,5,29,34,35,36, - 37,38,39,40,41,42,43,117,3,123, + 107,104,54,106,47,64,66,70,73,76, + 83,89,98,11,12,7,8,112,14,120, + 55,61,67,84,88,90,94,97,99,109, + 110,111,53,19,93,63,91,101,95,1, + 77,122,103,20,46,58,78,44,121,33, + 30,118,119,96,108,49,50,56,57,59, + 69,71,72,85,92,17,18,65,21,22, + 6,23,24,25,26,27,32,4,15,16, + 28,29,34,35,36,37,38,39,40,41, + 42,43,51,80,81,82,5,117,3,123, 62,116 }; }; @@ -2107,27 +2515,29 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 130,135,136,0,0,134,0,0,229,235, + 130,135,136,0,0,134,0,0,237,243, 133,0,143,0,132,0,0,142,148,0, - 0,149,158,180,159,160,161,162,163,151, - 164,165,166,141,167,126,168,0,128,131, - 169,0,129,138,137,152,177,0,0,0, - 0,0,0,0,0,172,0,155,0,204, - 0,145,187,201,205,0,0,127,171,0, - 0,0,0,0,0,206,175,0,0,0, - 0,125,178,0,0,186,0,0,202,212, - 157,208,209,210,0,0,146,0,0,207, - 220,174,196,0,0,211,0,0,0,0, - 240,241,0,147,179,189,190,191,192,193, - 195,0,198,0,199,0,214,217,0,0, - 219,0,238,0,239,0,0,139,140,144, - 0,0,154,156,0,170,0,181,182,183, - 184,185,188,0,0,0,194,0,197,203, - 0,215,216,0,0,221,224,0,226,228, - 0,232,233,234,237,124,0,150,153,0, - 173,0,176,0,0,200,213,218,0,0, - 222,223,225,227,0,230,231,236,242,243, - 0,0,0,0 + 0,149,158,159,160,161,188,151,0,162, + 141,126,163,164,165,131,166,167,128,168, + 0,129,138,137,170,169,171,185,0,0, + 195,172,0,173,0,0,0,0,0,152, + 174,175,176,0,177,180,0,155,194,0, + 0,0,212,0,0,209,213,0,214,127, + 145,179,0,0,0,0,0,0,183,0, + 0,0,0,125,186,0,0,210,216,217, + 218,0,220,157,0,146,0,0,215,197, + 198,199,201,227,228,182,204,0,0,219, + 0,0,0,0,248,0,251,0,252,0, + 147,187,189,190,191,192,196,200,203,0, + 206,0,207,0,222,225,0,0,0,246, + 0,247,0,0,139,140,144,0,0,154, + 156,0,178,0,193,0,0,0,202,0, + 205,211,0,223,224,0,0,229,232,0, + 234,236,0,240,241,242,245,0,0,249, + 124,0,150,153,0,181,0,184,0,0, + 208,221,226,0,0,230,231,233,235,0, + 238,239,244,250,253,254,0,0,0,0, + 0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2135,18 +2545,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 159,311,581,600,304,319,532,548,559,570, - 372,267,281,298,333,42,292,392,430,167, - 589,483,20,51,71,80,85,90,130,195, - 326,341,346,144,273,287,507,27,144,382, - 346,608,27,217,246,1,14,61,76,106, - 351,361,365,448,476,528,618,622,626,97, - 7,97,410,426,439,460,520,116,116,232, - 439,539,555,566,577,207,494,56,56,156, - 222,225,56,241,262,225,225,56,369,473, - 480,156,56,641,110,355,414,454,467,56, - 355,401,177,104,452,630,637,630,637,65, - 420,137,104,104,251 + 172,324,600,619,317,332,551,567,578,589, + 372,280,294,311,344,55,305,392,430,180, + 608,502,20,33,64,84,93,98,103,143, + 208,339,350,20,467,157,286,300,526,40, + 157,382,20,627,40,230,259,1,14,27, + 74,89,119,27,361,365,448,495,547,637, + 641,645,110,7,110,410,426,439,460,479, + 539,129,129,245,439,558,574,585,596,220, + 513,69,69,169,235,238,69,254,275,238, + 238,69,369,492,499,169,69,660,123,355, + 414,454,486,472,69,355,401,190,117,452, + 649,656,649,656,78,420,150,117,117,264 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2154,18 +2564,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,135,5,5,135,135,5,5,5,5, - 379,135,95,135,339,48,278,398,436,173, - 67,489,25,25,25,59,59,95,135,200, - 331,331,339,149,278,101,512,38,152,387, - 595,613,32,211,211,5,18,5,59,95, - 331,95,95,135,244,5,5,5,244,639, - 11,101,379,379,379,464,512,120,125,236, - 443,543,543,543,543,211,498,59,59,5, - 5,228,230,244,5,265,265,230,95,5, - 244,5,505,5,113,358,417,457,470,524, - 515,404,180,95,95,632,632,634,634,67, - 422,139,202,187,253 + 18,148,5,5,148,148,5,5,5,5, + 379,148,108,148,25,61,291,398,436,186, + 80,508,25,38,38,38,72,72,108,148, + 213,31,31,25,5,162,291,114,531,51, + 165,387,614,632,45,224,224,5,18,31, + 5,72,108,31,108,108,148,257,5,5, + 5,257,658,11,114,379,379,379,464,483, + 531,133,138,249,443,562,562,562,562,224, + 517,72,72,5,5,241,243,257,5,278, + 278,243,108,5,257,5,524,5,126,358, + 417,457,489,475,543,534,404,193,108,108, + 651,651,653,653,80,422,152,215,200,266 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2173,18 +2583,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 47,118,18,18,80,118,18,18,18,18, - 72,85,48,80,117,78,54,72,71,47, - 18,20,3,7,8,170,170,166,116,47, - 117,117,119,129,55,48,140,134,129,72, - 18,18,134,95,59,136,75,173,170,166, - 119,184,52,56,144,18,18,18,18,12, - 112,166,72,71,71,38,140,131,131,58, - 71,18,18,18,18,95,20,174,170,186, - 93,100,61,76,60,160,77,119,73,145, - 144,177,140,17,166,119,102,70,22,140, - 140,72,47,166,67,138,45,138,45,173, - 102,116,47,47,59 + 48,112,18,18,92,112,18,18,18,18, + 85,97,49,92,111,90,58,85,84,48, + 18,20,190,3,7,8,182,182,178,110, + 48,111,111,138,45,147,59,49,157,151, + 147,85,18,18,151,102,72,153,88,190, + 185,182,178,138,199,56,66,161,18,18, + 18,18,12,129,178,85,84,84,64,41, + 157,114,114,68,84,18,18,18,18,102, + 20,186,182,201,100,109,74,79,73,172, + 89,138,86,162,161,192,157,17,178,138, + 116,83,22,45,157,157,85,48,178,78, + 155,44,155,44,185,116,110,48,48,72 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2192,18 +2602,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 102,71,73,73,71,71,73,73,73,73, - 73,71,27,71,1,68,1,73,121,67, - 3,73,68,68,68,1,1,27,71,67, - 1,1,1,71,1,1,4,68,69,27, - 1,1,68,73,73,73,102,73,1,27, - 1,27,27,71,118,73,73,73,118,1, - 73,1,73,73,73,72,4,1,1,6, - 73,68,68,68,68,73,3,1,1,73, - 73,3,1,118,73,1,1,1,27,73, - 118,73,5,73,1,48,70,72,73,1, - 48,75,74,27,27,4,4,4,4,3, - 1,67,1,1,3 + 113,73,72,72,73,73,72,72,72,72, + 72,73,40,73,1,64,1,72,121,69, + 3,72,1,64,64,64,1,1,40,73, + 69,1,1,1,72,73,1,1,4,64, + 68,40,1,1,64,72,72,72,113,1, + 72,1,40,1,40,40,73,118,72,72, + 72,118,1,72,1,72,72,72,71,71, + 4,1,1,5,72,64,64,64,64,72, + 3,1,1,72,72,3,1,118,72,1, + 1,1,40,72,118,72,6,72,1,55, + 70,71,72,64,1,55,75,74,40,40, + 4,4,4,4,3,1,69,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2211,18 +2621,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeStateSet { public final static char scopeStateSet[] = { - 85,154,250,250,107,154,250,250,250,250, - 95,109,85,107,154,107,87,95,95,85, - 250,250,182,226,226,54,54,82,154,85, - 154,154,154,313,87,85,137,50,313,95, - 250,250,50,146,66,26,95,30,54,82, - 154,22,87,33,63,250,250,250,250,230, - 6,82,95,95,95,282,137,154,154,121, - 95,250,250,250,250,146,250,30,54,24, - 146,148,66,142,66,60,71,154,95,57, - 63,140,137,250,82,154,1,95,251,137, - 137,95,85,82,11,118,158,118,158,30, - 1,154,85,85,66 + 85,183,284,284,107,183,284,284,284,284, + 95,109,85,107,183,107,87,95,95,85, + 284,284,118,214,260,260,54,54,82,183, + 85,183,183,185,140,371,87,85,165,50, + 371,95,284,284,50,174,66,26,95,118, + 30,54,82,185,22,87,33,63,284,284, + 284,284,264,6,82,95,95,95,148,344, + 165,183,183,124,95,284,284,284,284,174, + 284,30,54,24,174,176,66,170,66,60, + 71,185,95,57,63,168,165,284,82,185, + 1,95,285,140,165,165,95,85,82,11, + 121,189,121,189,30,1,183,85,85,66 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2230,71 +2640,73 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 322,3,60,0,126,0,321,3,102,0, - 126,172,0,126,178,74,0,216,0,254, - 126,55,124,0,20,0,297,126,55,48, - 0,20,53,0,33,132,0,20,53,0, - 0,297,126,55,48,203,0,20,178,0, - 254,126,55,132,0,179,127,0,141,0, - 218,3,296,0,296,0,2,0,126,0, - 254,126,55,131,0,179,127,223,0,179, - 127,22,223,0,179,127,317,22,0,128, - 188,167,127,0,128,0,188,167,127,0, - 134,128,0,171,0,313,126,171,0,126, - 171,0,222,128,0,167,312,242,0,136, - 0,0,0,0,135,0,0,0,0,311, - 126,165,253,0,127,0,253,0,129,0, - 0,127,0,310,126,165,252,0,127,0, - 0,44,127,0,0,152,3,0,126,284, - 283,126,74,282,171,0,283,126,74,282, - 171,0,215,0,216,0,282,171,0,96, - 0,0,215,0,216,0,203,96,0,0, - 215,0,216,0,283,126,282,171,0,215, - 0,203,0,0,215,0,226,126,3,0, - 126,0,0,0,0,0,226,126,3,215, - 0,222,3,0,211,126,0,208,0,146, - 0,172,167,127,0,10,0,0,0,0, - 213,63,0,125,0,226,126,3,182,0, - 182,0,2,0,0,126,0,0,0,0, - 0,199,3,0,201,0,235,126,165,39, - 30,0,179,127,59,62,0,196,128,0, - 128,179,127,280,62,0,179,127,280,62, - 0,179,127,70,123,59,0,235,126,165, - 244,59,0,235,126,165,244,225,59,0, - 277,278,126,165,123,307,56,0,277,278, - 126,165,307,56,0,179,127,276,56,0, - 135,0,188,179,127,276,242,0,136,0, - 179,127,276,242,0,188,167,127,10,0, - 167,127,10,0,167,127,0,93,136,0, - 269,126,146,0,269,126,171,0,162,84, - 0,302,161,304,305,3,81,0,126,171, - 0,304,305,3,81,0,128,0,126,171, - 0,162,3,75,191,80,0,126,128,0, - 191,80,0,108,2,131,126,128,0,224, - 3,75,0,199,168,0,33,169,0,168, - 0,175,33,169,0,224,3,85,0,191, - 158,224,3,83,0,62,171,0,224,3, - 83,0,126,171,62,171,0,303,126,165, - 0,162,0,213,77,0,30,171,0,162, - 107,159,0,30,169,0,184,3,0,126, - 149,0,218,3,0,213,63,266,0,162, - 63,0,184,3,299,66,127,0,126,0, - 0,0,0,299,66,127,0,2,145,126, - 0,0,0,0,147,0,125,48,167,127, - 0,31,147,0,93,136,31,147,0,219, - 179,127,0,146,31,147,0,162,3,51, - 0,162,3,68,184,55,42,0,184,55, - 42,0,20,2,131,126,0,162,3,68, - 184,55,45,0,184,55,45,0,162,3, - 68,184,55,47,0,184,55,47,0,162, - 3,68,184,55,43,0,184,55,43,0, - 218,3,125,188,167,127,10,0,125,188, - 167,127,10,0,136,2,0,126,0,218, - 3,124,259,167,127,10,0,259,167,127, - 10,0,135,2,0,126,0,218,3,135, - 0,218,3,140,0,162,63,140,0,261, - 0,31,0,31,139,0,166,0,134,0, - 162,3,0 + 338,3,59,0,126,0,337,3,113,0, + 126,180,0,127,188,74,0,224,0,197, + 166,126,10,0,136,0,166,126,10,0, + 135,0,271,127,54,124,0,20,0,309, + 127,54,55,0,20,53,0,33,132,0, + 20,53,0,0,309,127,54,55,215,0, + 20,186,0,271,127,54,132,0,189,126, + 0,141,0,227,3,308,0,308,0,2, + 0,126,0,271,127,54,131,0,189,126, + 237,0,189,126,22,237,0,189,126,332, + 22,0,128,197,166,126,0,128,0,197, + 166,126,0,134,128,0,172,0,328,127, + 172,0,127,172,0,230,128,0,166,327, + 235,0,136,0,0,0,0,135,0,0, + 0,0,326,127,164,236,0,127,0,236, + 0,129,0,0,127,0,325,127,164,270, + 0,127,0,0,44,127,0,0,150,3, + 0,127,296,295,127,74,294,172,0,295, + 127,74,294,172,0,223,0,224,0,294, + 172,0,96,0,0,223,0,224,0,211, + 96,0,0,223,0,224,0,295,127,294, + 172,0,223,0,211,0,0,223,0,240, + 127,3,0,126,0,0,0,0,0,240, + 127,3,222,0,231,3,0,220,127,0, + 216,0,146,0,175,166,126,0,10,0, + 0,0,0,226,60,0,125,0,240,127, + 3,195,0,195,0,2,0,0,126,0, + 0,0,0,0,211,3,0,209,0,252, + 127,164,38,27,0,189,126,61,63,0, + 204,128,0,128,189,126,292,63,0,189, + 126,292,63,0,189,126,70,123,61,0, + 252,127,164,262,61,0,252,127,164,262, + 239,61,0,289,290,127,164,123,322,56, + 0,289,290,127,164,322,56,0,189,126, + 288,56,0,197,189,126,288,235,0,189, + 126,288,235,0,166,126,0,93,136,0, + 286,127,149,0,286,127,172,0,158,84, + 0,317,161,319,320,3,81,0,126,179, + 0,319,320,3,81,0,128,0,126,179, + 0,158,3,75,204,80,0,126,128,0, + 204,80,0,108,2,131,126,128,0,238, + 3,75,0,211,182,0,33,169,0,182, + 0,183,33,169,0,238,3,85,0,204, + 154,238,3,83,0,62,179,0,238,3, + 83,0,126,179,62,179,0,318,127,164, + 0,158,0,226,77,0,30,179,0,158, + 102,185,0,30,177,0,148,64,167,3, + 0,167,3,0,20,161,126,0,158,102, + 162,0,30,169,0,203,3,0,126,149, + 0,227,3,0,226,60,283,0,158,60, + 0,203,3,314,67,126,0,126,0,0, + 0,0,314,67,126,0,2,145,126,0, + 0,0,0,147,0,125,55,166,126,0, + 31,147,0,93,136,31,147,0,228,189, + 126,0,146,31,147,0,158,3,49,0, + 158,3,64,203,54,41,0,203,54,41, + 0,20,2,131,126,0,158,3,64,203, + 54,44,0,203,54,44,0,158,3,64, + 203,54,46,0,203,54,46,0,158,3, + 64,203,54,42,0,203,54,42,0,227, + 3,125,197,166,126,10,0,125,197,166, + 126,10,0,136,2,0,126,0,227,3, + 124,276,166,126,10,0,276,166,126,10, + 0,135,2,0,126,0,227,3,135,0, + 227,3,140,0,158,60,140,0,278,0, + 31,0,31,139,0,165,0,134,0,158, + 3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2302,38 +2714,44 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4790,4882,4881,4817,0,1651,2858,681,2715,0, - 3613,3556,3474,3371,3333,3295,3257,3219,3181,2961, - 2801,2533,0,544,0,2983,2101,1465,0,2634, - 2564,0,3613,3556,1724,1638,3474,3371,3333,3295, - 3257,3219,1509,3181,2961,2801,888,886,0,4679, - 4417,4126,0,4099,3222,0,3027,1455,0,4591, - 3479,0,1370,994,0,4375,4591,4307,3115,3479, - 3037,3447,4388,4074,2491,4060,4278,2723,585,2702, - 0,4617,4606,0,4617,4606,4187,4535,4489,4105, - 4477,4419,4093,4407,3613,3556,3474,3371,3333,3295, - 3257,3219,3181,2961,2801,0,4617,4606,4187,4535, - 4489,4105,4477,4419,4093,4407,0,3025,827,0, - 2491,4375,3302,4307,3115,4632,2723,4111,3264,1004, - 4623,2811,2830,2554,1275,0,806,741,0,1380, - 0,2074,2064,968,796,3115,2811,3037,585,2702, - 3497,3095,0,4243,540,2746,0,4826,4822,4808, - 4762,4758,4744,4740,4723,4675,4657,4901,4519,4291, - 4897,4843,4230,3428,4179,3159,2769,2741,3432,3197, - 0,2817,2606,4826,4822,4808,2247,2160,4762,1384, - 4758,4744,4740,4723,4675,2789,3632,3561,4657,3315, - 4901,3282,3277,3244,2836,4519,4291,2242,2986,4897, - 1150,4843,2718,4230,3428,4179,2155,3159,2769,2741, - 4243,651,2746,3432,3197,1328,952,666,632,2617, - 3037,3447,4388,4074,2491,4375,4060,4591,4307,3115, - 4278,2723,585,3479,2702,2966,2324,806,741,599, - 4037,4014,1101,2290,2371,2338,2462,2433,2403,2937, - 2910,2674,2646,2576,2504,3737,3713,3689,3133,3050, - 3991,3968,3945,3922,3899,3876,3853,3830,3807,3784, - 3761,2034,2251,2203,2164,2116,2077,1241,1388,1340, - 1285,895,1991,1058,832,757,694,1948,1905,1862, - 1819,1776,1733,1690,1647,1604,1561,1518,540,1475, - 1431,1198,1014,970,1154,0 + 5858,6334,6328,5983,0,2804,1340,2010,1062,0, + 5305,5243,5175,5044,4982,4920,4858,4796,4734,4535, + 4473,4798,0,2593,0,2930,2310,1994,0,2273, + 2141,0,5305,5243,2995,2871,5175,5044,4982,4920, + 4858,4796,2869,4734,4535,4473,2598,2540,0,6109, + 4896,6039,0,4361,2079,0,2445,2088,0,652, + 5997,0,823,706,0,4677,652,4422,4664,5997, + 4624,5133,2511,2181,3844,3278,2379,4229,4215,4172, + 0,6234,6195,0,6234,6195,5864,6161,6101,5852, + 6089,6029,5840,5968,5305,5243,5175,5044,4982,4920, + 4858,4796,4734,4535,4473,0,6234,6195,5864,6161, + 6101,5852,6089,6029,5840,5968,0,6162,5442,0, + 2318,2244,0,3844,4677,4990,4422,4664,6202,4229, + 2917,3603,2866,4484,4706,2471,3345,2080,0,3408, + 3509,3620,3565,3857,3817,3707,3293,2877,928,2811, + 2745,2679,2613,2547,2481,2415,2349,2283,2217,2151, + 836,768,676,0,868,745,0,956,0,2260, + 1954,650,648,4664,4706,4624,4215,4172,3257,3890, + 717,0,6162,5442,5962,598,4307,0,6315,6301, + 6263,6246,6110,5872,5314,5184,5011,4949,5264,5195, + 4887,4867,5073,4564,4328,764,3884,4828,4502,4252, + 924,672,0,4262,3978,6315,6301,6263,3903,3898, + 6246,640,6110,5872,5314,5184,5011,1765,3594,1718, + 1671,4949,1624,5264,5195,1577,1480,1430,1383,4887, + 4867,1334,3330,5073,3184,4564,3445,4328,764,3884, + 1248,4828,4502,4252,5962,809,4307,924,672,2841, + 2775,1192,1041,903,4624,5133,2511,2181,3844,4677, + 3278,652,4422,4664,2379,4229,4215,5997,4172,2709, + 2643,868,745,5818,2877,4185,928,3408,2811,2745, + 2679,2613,2547,2481,2415,2349,2283,2217,2151,3509, + 3620,3565,3857,3817,3707,4145,4118,4091,5795,3293, + 5772,836,768,676,3369,3471,1105,1253,3786,3755, + 3673,4446,4379,4064,4037,4010,3937,5418,5394,5146, + 4637,4333,5749,5726,5703,5680,5657,5633,5603,5580, + 5514,5488,5457,2943,3230,3188,3131,3089,3032,2990, + 1388,1341,1292,2094,2052,2005,1958,1911,1864,1817, + 1770,1723,1676,1629,1582,1535,598,1488,1438,1206, + 1057,994,1143,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2341,61 +2759,67 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,298,126,268,51,42,45,47,43,10, - 135,124,131,7,132,4,3,127,46,41, - 5,26,25,6,9,38,37,140,145,148, - 147,150,149,153,151,155,154,157,60,159, - 69,3,55,55,55,55,127,3,55,55, - 168,126,63,3,65,66,55,5,184,162, - 168,126,65,66,167,166,124,3,123,125, - 106,119,3,63,89,91,26,25,93,92, - 6,95,94,68,55,87,88,9,97,96, - 99,98,100,117,116,115,114,113,112,111, - 110,109,108,70,107,101,162,184,184,184, - 184,167,218,126,126,126,270,271,253,272, - 242,273,56,274,275,10,127,63,63,126, - 124,158,126,63,3,216,215,135,125,124, - 10,127,63,299,3,188,4,48,127,48, - 218,162,147,147,145,145,145,149,149,149, - 149,148,148,151,150,150,154,153,155,162, - 157,68,68,68,68,188,259,254,257,254, - 211,127,172,165,312,276,307,276,127,179, - 167,254,211,213,159,222,126,3,127,167, - 204,3,300,168,152,261,188,127,179,167, - 72,3,3,3,3,125,124,69,167,9, - 6,126,167,229,125,124,127,123,165,127, - 167,48,226,227,146,228,126,167,48,184, - 126,126,4,219,5,48,162,162,162,162, - 3,3,172,172,311,127,169,223,59,48, - 203,62,171,314,125,124,230,230,179,165, - 126,179,188,158,70,222,199,187,182,127, - 3,126,69,226,188,158,263,266,63,180, - 4,123,125,218,218,6,126,167,244,225, - 55,48,280,282,126,3,182,230,230,126, - 126,188,126,278,123,279,126,70,70,3, - 179,167,199,126,211,158,125,126,3,63, - 162,4,172,185,188,165,244,68,55,127, - 74,126,211,313,72,291,199,124,127,126, - 126,126,72,278,277,70,69,220,126,126, - 263,218,213,126,128,126,165,30,48,171, - 64,59,62,126,179,126,283,72,69,72, - 70,167,211,316,223,22,127,277,126,226, - 220,235,237,126,39,126,3,123,59,297, - 48,10,40,128,283,165,295,127,296,69, - 127,22,317,179,60,158,126,235,126,165, - 269,247,281,39,70,127,69,68,55,229, - 229,284,126,69,179,3,179,127,127,3, - 126,126,3,70,69,158,127,179,126,70, - 70,126,303,79,77,1,162,8,85,83, - 81,80,75,82,84,78,76,59,74,218, - 179,179,322,220,235,152,165,252,179,225, - 297,285,102,8,72,213,72,3,3,3, - 191,3,123,162,123,178,69,126,126,165, - 225,68,3,72,224,168,224,305,146,75, - 224,126,126,40,90,321,168,158,199,158, - 304,126,3,158,285,310,229,158,158,126, - 70,191,161,269,162,190,69,70,121,302, - 158,190,8,158 + 0,313,127,285,49,41,44,46,42,10, + 135,124,131,8,132,4,3,126,45,39, + 6,35,34,5,7,37,36,140,145,147, + 146,152,148,156,155,159,157,160,59,162, + 68,3,54,54,54,54,126,3,54,54, + 182,127,60,3,66,67,54,6,203,158, + 182,127,66,67,166,165,124,3,123,125, + 117,119,3,60,91,98,35,34,100,99, + 5,90,89,64,54,86,87,7,93,92, + 95,94,96,112,111,110,109,108,107,106, + 105,104,103,70,102,101,158,203,203,203, + 203,166,227,127,127,127,255,256,236,257, + 235,258,56,287,259,10,126,60,60,127, + 124,154,127,60,3,223,222,135,125,124, + 10,126,60,314,3,197,4,55,126,55, + 227,158,146,146,145,145,145,148,148,148, + 148,147,147,155,152,152,157,156,159,158, + 160,64,64,64,64,197,276,271,127,249, + 3,167,148,174,169,183,176,184,185,274, + 271,220,126,175,164,327,288,322,288,126, + 189,166,271,220,226,162,231,127,3,126, + 166,216,3,315,182,150,278,197,126,189, + 166,71,3,3,3,3,125,124,255,256, + 257,258,336,259,10,167,90,89,54,7, + 93,92,95,94,96,112,111,110,109,108, + 107,106,105,104,103,70,102,101,68,166, + 7,5,127,166,243,125,124,126,123,164, + 126,166,55,240,241,149,242,127,166,55, + 203,127,127,4,228,6,55,158,158,158, + 158,3,3,126,64,148,148,148,169,167, + 167,176,174,183,158,184,175,175,326,126, + 170,237,61,55,215,63,172,329,125,124, + 244,244,189,164,127,189,197,154,70,231, + 211,199,195,126,3,127,68,240,197,154, + 280,283,60,190,4,123,125,227,227,166, + 148,71,5,127,166,262,239,54,55,292, + 294,127,3,195,244,244,127,127,197,127, + 290,123,291,127,70,70,3,189,166,211, + 127,220,154,125,127,3,60,158,4,197, + 175,173,197,164,262,64,54,126,74,127, + 220,328,71,303,211,124,126,127,127,127, + 71,290,289,70,68,229,127,127,280,227, + 226,127,128,127,164,27,55,172,65,61, + 63,127,189,127,295,71,68,71,70,166, + 220,331,237,22,126,289,127,240,229,252, + 254,127,38,127,3,123,61,309,55,10, + 53,128,295,164,307,126,308,68,126,22, + 332,189,59,154,127,252,127,164,286,265, + 293,38,70,126,68,64,54,243,243,296, + 127,68,189,3,189,126,126,3,127,127, + 3,70,68,154,126,189,127,70,70,127, + 318,79,77,1,158,9,85,83,81,80, + 75,82,84,78,76,61,74,227,189,189, + 338,229,252,150,164,270,189,239,309,297, + 113,9,71,226,71,3,3,3,204,3, + 123,158,123,188,68,127,127,164,239,64, + 3,71,238,182,238,320,149,75,238,127, + 127,53,97,337,182,154,211,154,319,127, + 3,154,297,325,243,154,154,127,70,204, + 161,286,158,202,68,70,121,317,154,202, + 9,154 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2575,6 +2999,20 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "logical_and_expression", "logical_or_expression", "assignment_expression", + "relational_expression_inTempla" + + "te", + "equality_expression_inTemplate", + "and_expression_inTemplate", + "exclusive_or_expression_inTemp" + + "late", + "inclusive_or_expression_inTemp" + + "late", + "logical_and_expression_inTempl" + + "ate", + "logical_or_expression_inTempla" + + "te", + "assignment_expression_inTempla" + + "te", "expression_list_actual", "statement", "compound_statement", @@ -2650,6 +3088,10 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "template_parameter", "template_argument_list", "template_argument", + "type_name_specifier_inTemplate", + "type_name_declaration_specifie" + + "rs_inTemplate", + "type_specifier_seq_inTemplate", "handler", "exception_declaration", "type_id_list" @@ -2659,10 +3101,10 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 61, - SCOPE_UBOUND = 114, - SCOPE_SIZE = 115, - MAX_NAME_LENGTH = 37; + ERROR_SYMBOL = 62, + SCOPE_UBOUND = 119, + SCOPE_SIZE = 120, + MAX_NAME_LENGTH = 43; public final int getErrorSymbol() { return ERROR_SYMBOL; } public final int getScopeUbound() { return SCOPE_UBOUND; } @@ -2670,20 +3112,20 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 544, + NUM_STATES = 602, NT_OFFSET = 122, - LA_STATE_OFFSET = 5976, + LA_STATE_OFFSET = 7489, MAX_LA = 2147483647, - NUM_RULES = 539, - NUM_NONTERMINALS = 204, - NUM_SYMBOLS = 326, + NUM_RULES = 597, + NUM_NONTERMINALS = 225, + NUM_SYMBOLS = 347, SEGMENT_SIZE = 8192, - START_STATE = 625, + START_STATE = 4508, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, - ACCEPT_ACTION = 5069, - ERROR_ACTION = 5437; + ACCEPT_ACTION = 6452, + ERROR_ACTION = 6892; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java index 7bfd42ee65b..89c7e0bcb86 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java @@ -15,127 +15,127 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPSizeofExpressionParsersym { public final static int - TK_asm = 64, - TK_auto = 28, + TK_asm = 65, + TK_auto = 25, TK_bool = 11, TK_break = 76, TK_case = 77, - TK_catch = 102, + TK_catch = 113, TK_char = 12, - TK_class = 40, + TK_class = 53, TK_const = 23, - TK_const_cast = 42, + TK_const_cast = 41, TK_continue = 78, TK_default = 79, - TK_delete = 65, + TK_delete = 66, TK_do = 80, TK_double = 13, - TK_dynamic_cast = 43, + TK_dynamic_cast = 42, TK_else = 121, TK_enum = 56, - TK_explicit = 29, - TK_export = 86, - TK_extern = 30, - TK_false = 44, + TK_explicit = 26, + TK_export = 88, + TK_extern = 27, + TK_false = 43, TK_float = 14, TK_for = 81, - TK_friend = 31, + TK_friend = 28, TK_goto = 82, TK_if = 83, - TK_inline = 32, + TK_inline = 29, TK_int = 15, TK_long = 16, - TK_mutable = 33, - TK_namespace = 59, - TK_new = 66, - TK_operator = 7, - TK_private = 103, - TK_protected = 104, - TK_public = 105, - TK_register = 34, - TK_reinterpret_cast = 45, + TK_mutable = 30, + TK_namespace = 61, + TK_new = 67, + TK_operator = 8, + TK_private = 114, + TK_protected = 115, + TK_public = 116, + TK_register = 31, + TK_reinterpret_cast = 44, TK_return = 84, TK_short = 17, TK_signed = 18, - TK_sizeof = 46, - TK_static = 35, - TK_static_cast = 47, + TK_sizeof = 45, + TK_static = 32, + TK_static_cast = 46, TK_struct = 57, TK_switch = 85, - TK_template = 48, - TK_this = 49, - TK_throw = 60, + TK_template = 55, + TK_this = 47, + TK_throw = 59, TK_try = 74, - TK_true = 50, - TK_typedef = 36, - TK_typeid = 51, + TK_true = 48, + TK_typedef = 33, + TK_typeid = 49, TK_typename = 10, TK_union = 58, TK_unsigned = 19, - TK_using = 62, + TK_using = 63, TK_virtual = 22, TK_void = 20, TK_volatile = 24, TK_wchar_t = 21, TK_while = 75, - TK_integer = 52, - TK_floating = 53, - TK_charconst = 54, - TK_stringlit = 39, + TK_integer = 50, + TK_floating = 51, + TK_charconst = 52, + TK_stringlit = 38, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 8, + TK_EndOfCompletion = 9, TK_Invalid = 122, - TK_LeftBracket = 63, + TK_LeftBracket = 60, TK_LeftParen = 3, TK_Dot = 119, - TK_DotStar = 91, - TK_Arrow = 106, - TK_ArrowStar = 89, - TK_PlusPlus = 37, - TK_MinusMinus = 38, - TK_And = 9, - TK_Star = 6, - TK_Plus = 25, - TK_Minus = 26, - TK_Tilde = 5, - TK_Bang = 41, - TK_Slash = 92, - TK_Percent = 93, - TK_RightShift = 87, - TK_LeftShift = 88, - TK_LT = 55, - TK_GT = 68, - TK_LE = 94, - TK_GE = 95, - TK_EQ = 96, - TK_NE = 97, - TK_Caret = 98, - TK_Or = 99, - TK_AndAnd = 100, + TK_DotStar = 98, + TK_Arrow = 117, + TK_ArrowStar = 91, + TK_PlusPlus = 36, + TK_MinusMinus = 37, + TK_And = 7, + TK_Star = 5, + TK_Plus = 34, + TK_Minus = 35, + TK_Tilde = 6, + TK_Bang = 39, + TK_Slash = 99, + TK_Percent = 100, + TK_RightShift = 86, + TK_LeftShift = 87, + TK_LT = 54, + TK_GT = 64, + TK_LE = 89, + TK_GE = 90, + TK_EQ = 92, + TK_NE = 93, + TK_Caret = 94, + TK_Or = 95, + TK_AndAnd = 96, TK_OrOr = 101, - TK_Question = 107, - TK_Colon = 72, + TK_Question = 102, + TK_Colon = 71, TK_ColonColon = 4, - TK_DotDotDot = 90, + TK_DotDotDot = 97, TK_Assign = 70, - TK_StarAssign = 108, - TK_SlashAssign = 109, - TK_PercentAssign = 110, - TK_PlusAssign = 111, - TK_MinusAssign = 112, - TK_RightShiftAssign = 113, - TK_LeftShiftAssign = 114, - TK_AndAssign = 115, - TK_CaretAssign = 116, - TK_OrAssign = 117, - TK_Comma = 69, + TK_StarAssign = 103, + TK_SlashAssign = 104, + TK_PercentAssign = 105, + TK_PlusAssign = 106, + TK_MinusAssign = 107, + TK_RightShiftAssign = 108, + TK_LeftShiftAssign = 109, + TK_AndAssign = 110, + TK_CaretAssign = 111, + TK_OrAssign = 112, + TK_Comma = 68, TK_RightBracket = 118, - TK_RightParen = 73, - TK_RightBrace = 71, - TK_SemiColon = 27, - TK_LeftBrace = 67, - TK_ERROR_TOKEN = 61, + TK_RightParen = 72, + TK_RightBrace = 73, + TK_SemiColon = 40, + TK_LeftBrace = 69, + TK_ERROR_TOKEN = 62, TK_EOF_TOKEN = 120; public final static String orderedTerminalSymbols[] = { @@ -144,11 +144,11 @@ public interface CPPSizeofExpressionParsersym { "Completion", "LeftParen", "ColonColon", - "Tilde", "Star", + "Tilde", + "And", "operator", "EndOfCompletion", - "And", "typename", "bool", "char", @@ -164,9 +164,6 @@ public interface CPPSizeofExpressionParsersym { "virtual", "const", "volatile", - "Plus", - "Minus", - "SemiColon", "auto", "explicit", "extern", @@ -176,43 +173,46 @@ public interface CPPSizeofExpressionParsersym { "register", "static", "typedef", + "Plus", + "Minus", "PlusPlus", "MinusMinus", "stringlit", - "class", "Bang", + "SemiColon", "const_cast", "dynamic_cast", "false", "reinterpret_cast", "sizeof", "static_cast", - "template", "this", "true", "typeid", "integer", "floating", "charconst", + "class", "LT", + "template", "enum", "struct", "union", - "namespace", "throw", + "LeftBracket", + "namespace", "ERROR_TOKEN", "using", - "LeftBracket", + "GT", "asm", "delete", "new", - "LeftBrace", - "GT", "Comma", + "LeftBrace", "Assign", - "RightBrace", "Colon", "RightParen", + "RightBrace", "try", "while", "break", @@ -225,27 +225,22 @@ public interface CPPSizeofExpressionParsersym { "if", "return", "switch", - "export", "RightShift", "LeftShift", - "ArrowStar", - "DotDotDot", - "DotStar", - "Slash", - "Percent", + "export", "LE", "GE", + "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd", + "DotDotDot", + "DotStar", + "Slash", + "Percent", "OrOr", - "catch", - "private", - "protected", - "public", - "Arrow", "Question", "StarAssign", "SlashAssign", @@ -257,6 +252,11 @@ public interface CPPSizeofExpressionParsersym { "AndAssign", "CaretAssign", "OrAssign", + "catch", + "private", + "protected", + "public", + "Arrow", "RightBracket", "Dot", "EOF_TOKEN", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java index cab084cfdee..4b1927ba06e 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java @@ -250,7 +250,13 @@ public void setTokens(List tokens) { public CPPTemplateTypeParameterParser(ITokenStream stream, Map properties) { // constructor for creating secondary parser initActions(properties); tokenMap = new TokenMap(CPPTemplateTypeParameterParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); -} +} + + public CPPTemplateTypeParameterParser(ITokenStream stream, IScanner scanner, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map properties) { // constructor for creating secondary parser + initActions(properties); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + tokenMap = new TokenMap(CPPTemplateTypeParameterParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); +} public void ruleAction(int ruleNumber) @@ -817,1131 +823,1359 @@ public CPPTemplateTypeParameterParser(ITokenStream stream, Map pr } // - // Rule 141: throw_expression ::= throw + // Rule 142: relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression // - case 141: { action. consumeExpressionThrow(false); break; + case 142: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 142: throw_expression ::= throw assignment_expression + // Rule 143: relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression ) // - case 142: { action. consumeExpressionThrow(true); break; + case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 145: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 144: relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression // - case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 146: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 145: relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression // - case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 147: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 147: equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate // - case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 148: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 148: equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate // - case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 149: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 150: and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate // - case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 150: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 152: exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate // - case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 151: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 154: inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate // - case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 152: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 156: logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate // - case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 156: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 153: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 158: logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate // - case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 158: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 154: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 160: conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate // - case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 160: { action. consumeExpressionConditional(); break; } // - // Rule 155: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 163: assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate // - case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 163: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 157: expression_list ::= expression_list_actual + // Rule 164: assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate // - case 157: { action. consumeExpressionList(); break; + case 164: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 161: expression_list_opt ::= $Empty + // Rule 165: assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate // - case 161: { action. consumeEmpty(); break; + case 165: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 163: expression_opt ::= $Empty + // Rule 166: assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate // - case 163: { action. consumeEmpty(); break; + case 166: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 166: constant_expression_opt ::= $Empty + // Rule 167: assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate // - case 166: { action. consumeEmpty(); break; + case 167: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 175: statement ::= ERROR_TOKEN + // Rule 168: assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate // - case 175: { action. consumeStatementProblem(); break; + case 168: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 176: labeled_statement ::= identifier : statement + // Rule 169: assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate // - case 176: { action. consumeStatementLabeled(); break; + case 169: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 177: labeled_statement ::= case constant_expression : statement + // Rule 170: assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate // - case 177: { action. consumeStatementCase(); break; + case 170: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 178: labeled_statement ::= default : statement + // Rule 171: assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate // - case 178: { action. consumeStatementDefault(); break; + case 171: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 179: expression_statement ::= expression ; + // Rule 172: assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate // - case 179: { action. consumeStatementExpression(); break; + case 172: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 180: expression_statement ::= ; + // Rule 173: assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate // - case 180: { action. consumeStatementNull(); break; + case 173: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 181: compound_statement ::= { statement_seq } + // Rule 174: throw_expression ::= throw // - case 181: { action. consumeStatementCompoundStatement(true); break; + case 174: { action. consumeExpressionThrow(false); break; } // - // Rule 182: compound_statement ::= { } + // Rule 175: throw_expression ::= throw assignment_expression // - case 182: { action. consumeStatementCompoundStatement(false); break; + case 175: { action. consumeExpressionThrow(true); break; } // - // Rule 185: selection_statement ::= if ( condition ) statement + // Rule 178: assignment_expression ::= logical_or_expression = assignment_expression // - case 185: { action. consumeStatementIf(false); break; + case 178: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 186: selection_statement ::= if ( condition ) statement else statement + // Rule 179: assignment_expression ::= logical_or_expression *= assignment_expression // - case 186: { action. consumeStatementIf(true); break; + case 179: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 187: selection_statement ::= switch ( condition ) statement + // Rule 180: assignment_expression ::= logical_or_expression /= assignment_expression // - case 187: { action. consumeStatementSwitch(); break; + case 180: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 189: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 181: assignment_expression ::= logical_or_expression %= assignment_expression // - case 189: { action. consumeConditionDeclaration(); break; + case 181: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 191: condition_opt ::= $Empty + // Rule 182: assignment_expression ::= logical_or_expression += assignment_expression // - case 191: { action. consumeEmpty(); break; + case 182: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 192: iteration_statement ::= while ( condition ) statement + // Rule 183: assignment_expression ::= logical_or_expression -= assignment_expression // - case 192: { action. consumeStatementWhileLoop(); break; + case 183: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 193: iteration_statement ::= do statement while ( expression ) ; + // Rule 184: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 193: { action. consumeStatementDoLoop(true); break; + case 184: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 194: iteration_statement ::= do statement + // Rule 185: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 194: { action. consumeStatementDoLoop(false); break; + case 185: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 186: assignment_expression ::= logical_or_expression &= assignment_expression // - case 195: { action. consumeStatementForLoop(); break; + case 186: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 197: for_init_statement ::= simple_declaration_with_declspec + // Rule 187: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 197: { action. consumeStatementDeclaration(); break; + case 187: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 198: jump_statement ::= break ; + // Rule 188: assignment_expression ::= logical_or_expression |= assignment_expression // - case 198: { action. consumeStatementBreak(); break; + case 188: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 199: jump_statement ::= continue ; + // Rule 190: expression_list ::= expression_list_actual // - case 199: { action. consumeStatementContinue(); break; + case 190: { action. consumeExpressionList(); break; } // - // Rule 200: jump_statement ::= return expression ; + // Rule 194: expression_list_opt ::= $Empty // - case 200: { action. consumeStatementReturn(true); break; + case 194: { action. consumeEmpty(); break; } // - // Rule 201: jump_statement ::= return ; + // Rule 196: expression_opt ::= $Empty // - case 201: { action. consumeStatementReturn(false); break; + case 196: { action. consumeEmpty(); break; } // - // Rule 202: jump_statement ::= goto identifier_token ; + // Rule 199: constant_expression_opt ::= $Empty // - case 202: { action. consumeStatementGoto(); break; + case 199: { action. consumeEmpty(); break; } // - // Rule 203: declaration_statement ::= block_declaration + // Rule 208: statement ::= ERROR_TOKEN // - case 203: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 208: { action. consumeStatementProblem(); break; } // - // Rule 204: declaration_statement ::= function_definition + // Rule 209: labeled_statement ::= identifier : statement // - case 204: { action. consumeStatementDeclaration(); break; + case 209: { action. consumeStatementLabeled(); break; } // - // Rule 212: declaration ::= ERROR_TOKEN + // Rule 210: labeled_statement ::= case constant_expression : statement // - case 212: { action. consumeDeclarationProblem(); break; + case 210: { action. consumeStatementCase(); break; } // - // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 211: labeled_statement ::= default : statement // - case 222: { action. consumeDeclarationSimple(true); break; + case 211: { action. consumeStatementDefault(); break; } // - // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 212: expression_statement ::= expression ; // - case 223: { action. consumeDeclarationSimple(true); break; + case 212: { action. consumeStatementExpression(); break; } // - // Rule 224: declaration_specifiers ::= simple_declaration_specifiers + // Rule 213: expression_statement ::= ; // - case 224: { action. consumeDeclarationSpecifiersSimple(); break; + case 213: { action. consumeStatementNull(); break; } // - // Rule 225: declaration_specifiers ::= class_declaration_specifiers + // Rule 214: compound_statement ::= { statement_seq } // - case 225: { action. consumeDeclarationSpecifiersComposite(); break; + case 214: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 226: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 215: compound_statement ::= { } // - case 226: { action. consumeDeclarationSpecifiersComposite(); break; + case 215: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 227: declaration_specifiers ::= enum_declaration_specifiers + // Rule 218: selection_statement ::= if ( condition ) statement // - case 227: { action. consumeDeclarationSpecifiersComposite(); break; + case 218: { action. consumeStatementIf(false); break; } // - // Rule 228: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 219: selection_statement ::= if ( condition ) statement else statement // - case 228: { action. consumeDeclarationSpecifiersTypeName(); break; + case 219: { action. consumeStatementIf(true); break; } // - // Rule 230: declaration_specifiers_opt ::= $Empty + // Rule 220: selection_statement ::= switch ( condition ) statement // - case 230: { action. consumeEmpty(); break; + case 220: { action. consumeStatementSwitch(); break; } // - // Rule 234: no_type_declaration_specifier ::= friend + // Rule 222: condition ::= type_specifier_seq declarator = assignment_expression // - case 234: { action. consumeToken(); break; + case 222: { action. consumeConditionDeclaration(); break; } // - // Rule 235: no_type_declaration_specifier ::= typedef + // Rule 224: condition_opt ::= $Empty // - case 235: { action. consumeToken(); break; + case 224: { action. consumeEmpty(); break; } // - // Rule 255: storage_class_specifier ::= auto + // Rule 225: iteration_statement ::= while ( condition ) statement // - case 255: { action. consumeToken(); break; + case 225: { action. consumeStatementWhileLoop(); break; } // - // Rule 256: storage_class_specifier ::= register + // Rule 226: iteration_statement ::= do statement while ( expression ) ; // - case 256: { action. consumeToken(); break; + case 226: { action. consumeStatementDoLoop(true); break; } // - // Rule 257: storage_class_specifier ::= static + // Rule 227: iteration_statement ::= do statement // - case 257: { action. consumeToken(); break; + case 227: { action. consumeStatementDoLoop(false); break; } // - // Rule 258: storage_class_specifier ::= extern + // Rule 228: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 258: { action. consumeToken(); break; + case 228: { action. consumeStatementForLoop(); break; } // - // Rule 259: storage_class_specifier ::= mutable + // Rule 230: for_init_statement ::= simple_declaration_with_declspec // - case 259: { action. consumeToken(); break; + case 230: { action. consumeStatementDeclaration(); break; } // - // Rule 260: function_specifier ::= inline + // Rule 231: jump_statement ::= break ; // - case 260: { action. consumeToken(); break; + case 231: { action. consumeStatementBreak(); break; } // - // Rule 261: function_specifier ::= virtual + // Rule 232: jump_statement ::= continue ; // - case 261: { action. consumeToken(); break; + case 232: { action. consumeStatementContinue(); break; } // - // Rule 262: function_specifier ::= explicit + // Rule 233: jump_statement ::= return expression ; // - case 262: { action. consumeToken(); break; + case 233: { action. consumeStatementReturn(true); break; } // - // Rule 263: simple_type_specifier ::= simple_type_specifier_token + // Rule 234: jump_statement ::= return ; // - case 263: { action. consumeToken(); break; + case 234: { action. consumeStatementReturn(false); break; } // - // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 235: jump_statement ::= goto identifier_token ; // - case 277: { action. consumeQualifiedId(false); break; + case 235: { action. consumeStatementGoto(); break; } // - // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 236: declaration_statement ::= block_declaration // - case 278: { action. consumeQualifiedId(false); break; + case 236: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 237: declaration_statement ::= function_definition // - case 279: { action. consumeQualifiedId(false); break; + case 237: { action. consumeStatementDeclaration(); break; } // - // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 245: declaration ::= ERROR_TOKEN // - case 280: { action. consumeQualifiedId(true); break; + case 245: { action. consumeDeclarationProblem(); break; } // - // Rule 282: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 255: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 282: { action. consumeTypeSpecifierElaborated(false); break; + case 255: { action. consumeDeclarationSimple(true); break; } // - // Rule 283: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 256: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 283: { action. consumeTypeSpecifierElaborated(true); break; + case 256: { action. consumeDeclarationSimple(true); break; } // - // Rule 284: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 257: declaration_specifiers ::= simple_declaration_specifiers // - case 284: { action. consumeTypeSpecifierElaborated(false); break; + case 257: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 288: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 258: declaration_specifiers ::= class_declaration_specifiers // - case 288: { action. consumeTypeSpecifierEnumeration(false); break; + case 258: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 289: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 259: declaration_specifiers ::= elaborated_declaration_specifiers // - case 289: { action. consumeTypeSpecifierEnumeration(true); break; + case 259: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 295: enumerator_definition ::= identifier_token + // Rule 260: declaration_specifiers ::= enum_declaration_specifiers // - case 295: { action. consumeEnumerator(false); break; + case 260: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 296: enumerator_definition ::= identifier_token = constant_expression + // Rule 261: declaration_specifiers ::= type_name_declaration_specifiers // - case 296: { action. consumeEnumerator(true); break; + case 261: { action. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 298: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } + // Rule 263: declaration_specifiers_opt ::= $Empty // - case 298: { action. consumeNamespaceDefinition(true); break; + case 263: { action. consumeEmpty(); break; } // - // Rule 299: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } + // Rule 267: no_type_declaration_specifier ::= friend // - case 299: { action. consumeNamespaceDefinition(false); break; + case 267: { action. consumeToken(); break; } // - // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 268: no_type_declaration_specifier ::= typedef // - case 301: { action. consumeNamespaceAliasDefinition(); break; + case 268: { action. consumeToken(); break; } // - // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 288: storage_class_specifier ::= auto // - case 302: { action. consumeUsingDeclaration(); break; + case 288: { action. consumeToken(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 289: storage_class_specifier ::= register // - case 303: { action. consumePlaceHolder(); break; + case 289: { action. consumeToken(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 290: storage_class_specifier ::= static // - case 304: { action. consumeEmpty(); break; + case 290: { action. consumeToken(); break; } // - // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 291: storage_class_specifier ::= extern // - case 305: { action. consumeUsingDirective(); break; + case 291: { action. consumeToken(); break; } // - // Rule 306: asm_definition ::= asm ( stringlit ) ; + // Rule 292: storage_class_specifier ::= mutable // - case 306: { action. consumeDeclarationASM(); break; + case 292: { action. consumeToken(); break; } // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 293: function_specifier ::= inline // - case 307: { action. consumeLinkageSpecification(); break; + case 293: { action. consumeToken(); break; } // - // Rule 308: linkage_specification ::= extern stringlit declaration + // Rule 294: function_specifier ::= virtual // - case 308: { action. consumeLinkageSpecification(); break; + case 294: { action. consumeToken(); break; } // - // Rule 313: init_declarator_complete ::= init_declarator + // Rule 295: function_specifier ::= explicit // - case 313: { action. consumeInitDeclaratorComplete(); break; + case 295: { action. consumeToken(); break; } // - // Rule 315: init_declarator ::= complete_declarator initializer + // Rule 296: simple_type_specifier ::= simple_type_specifier_token // - case 315: { action. consumeDeclaratorWithInitializer(true); break; + case 296: { action. consumeToken(); break; } // - // Rule 318: declarator ::= ptr_operator_seq direct_declarator + // Rule 310: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 318: { action. consumeDeclaratorWithPointer(true); break; + case 310: { action. consumeQualifiedId(false); break; } // - // Rule 320: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 311: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 320: { action. consumeDeclaratorWithPointer(true); break; + case 311: { action. consumeQualifiedId(false); break; } // - // Rule 324: basic_direct_declarator ::= declarator_id_name + // Rule 312: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 324: { action. consumeDirectDeclaratorIdentifier(); break; + case 312: { action. consumeQualifiedId(false); break; } // - // Rule 325: basic_direct_declarator ::= ( declarator ) + // Rule 313: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 325: { action. consumeDirectDeclaratorBracketed(); break; + case 313: { action. consumeQualifiedId(true); break; } // - // Rule 326: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 315: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 326: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 315: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 327: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 316: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 327: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 316: { action. consumeTypeSpecifierElaborated(true); break; } // - // Rule 328: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 317: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 328: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 317: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 329: array_modifier ::= [ constant_expression ] + // Rule 321: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 329: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 321: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 330: array_modifier ::= [ ] + // Rule 322: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 330: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 322: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 331: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 328: enumerator_definition ::= identifier_token // - case 331: { action. consumePointer(); break; + case 328: { action. consumeEnumerator(false); break; } // - // Rule 332: ptr_operator ::= pointer_hook & pointer_hook + // Rule 329: enumerator_definition ::= identifier_token = constant_expression // - case 332: { action. consumeReferenceOperator(); break; + case 329: { action. consumeEnumerator(true); break; } // - // Rule 333: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 331: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } // - case 333: { action. consumePointerToMember(); break; + case 331: { action. consumeNamespaceDefinition(true); break; } // - // Rule 340: cv_qualifier ::= const + // Rule 332: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } // - case 340: { action. consumeToken(); break; + case 332: { action. consumeNamespaceDefinition(false); break; } // - // Rule 341: cv_qualifier ::= volatile + // Rule 334: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 341: { action. consumeToken(); break; + case 334: { action. consumeNamespaceAliasDefinition(); break; } // - // Rule 343: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 335: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 343: { action. consumeQualifiedId(false); break; + case 335: { action. consumeUsingDeclaration(); break; } // - // Rule 344: type_id ::= type_specifier_seq + // Rule 336: typename_opt ::= typename // - case 344: { action. consumeTypeId(false); break; + case 336: { action. consumePlaceHolder(); break; } // - // Rule 345: type_id ::= type_specifier_seq abstract_declarator + // Rule 337: typename_opt ::= $Empty // - case 345: { action. consumeTypeId(true); break; + case 337: { action. consumeEmpty(); break; } // - // Rule 348: abstract_declarator ::= ptr_operator_seq + // Rule 338: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 348: { action. consumeDeclaratorWithPointer(false); break; + case 338: { action. consumeUsingDirective(); break; } // - // Rule 349: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 339: asm_definition ::= asm ( stringlit ) ; // - case 349: { action. consumeDeclaratorWithPointer(true); break; + case 339: { action. consumeDeclarationASM(); break; } // - // Rule 353: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 340: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 353: { action. consumeDirectDeclaratorBracketed(); break; + case 340: { action. consumeLinkageSpecification(); break; } // - // Rule 354: basic_direct_abstract_declarator ::= ( ) + // Rule 341: linkage_specification ::= extern stringlit declaration // - case 354: { action. consumeAbstractDeclaratorEmpty(); break; + case 341: { action. consumeLinkageSpecification(); break; } // - // Rule 355: array_direct_abstract_declarator ::= array_modifier + // Rule 346: init_declarator_complete ::= init_declarator // - case 355: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 346: { action. consumeInitDeclaratorComplete(); break; } // - // Rule 356: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 348: init_declarator ::= complete_declarator initializer // - case 356: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 348: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 357: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 351: declarator ::= ptr_operator_seq direct_declarator // - case 357: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 351: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 358: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 353: function_declarator ::= ptr_operator_seq direct_declarator // - case 358: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 353: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 359: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 357: basic_direct_declarator ::= declarator_id_name // - case 359: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; + case 357: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 358: basic_direct_declarator ::= ( declarator ) // - case 360: { action. consumePlaceHolder(); break; + case 358: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 359: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 361: { action. consumeEmpty(); break; + case 359: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 362: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 360: array_direct_declarator ::= array_direct_declarator array_modifier // - case 362: { action. consumePlaceHolder(); break; + case 360: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 368: abstract_declarator_opt ::= $Empty + // Rule 361: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 368: { action. consumeEmpty(); break; + case 361: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 369: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 362: array_modifier ::= [ constant_expression ] // - case 369: { action. consumeParameterDeclaration(); break; + case 362: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 370: parameter_declaration ::= declaration_specifiers + // Rule 363: array_modifier ::= [ ] // - case 370: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 363: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 372: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 364: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 372: { action. consumeDeclaratorWithInitializer(true); break; + case 364: { action. consumePointer(); break; } // - // Rule 374: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 365: ptr_operator ::= pointer_hook & pointer_hook // - case 374: { action. consumeDeclaratorWithInitializer(true); break; + case 365: { action. consumeReferenceOperator(); break; } // - // Rule 375: parameter_init_declarator ::= = parameter_initializer + // Rule 366: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 375: { action. consumeDeclaratorWithInitializer(false); break; + case 366: { action. consumePointerToMember(); break; } // - // Rule 376: parameter_initializer ::= assignment_expression + // Rule 373: cv_qualifier ::= const // - case 376: { action. consumeInitializer(); break; + case 373: { action. consumeToken(); break; } // - // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 374: cv_qualifier ::= volatile // - case 377: { action. consumeFunctionDefinition(false); break; + case 374: { action. consumeToken(); break; } // - // Rule 378: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 376: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 378: { action. consumeFunctionDefinition(true); break; + case 376: { action. consumeQualifiedId(false); break; } // - // Rule 381: initializer ::= ( expression_list ) + // Rule 377: type_id ::= type_specifier_seq // - case 381: { action. consumeInitializerConstructor(); break; + case 377: { action. consumeTypeId(false); break; } // - // Rule 382: initializer_clause ::= assignment_expression + // Rule 378: type_id ::= type_specifier_seq abstract_declarator // - case 382: { action. consumeInitializer(); break; + case 378: { action. consumeTypeId(true); break; } // - // Rule 383: initializer_clause ::= initializer_list + // Rule 381: abstract_declarator ::= ptr_operator_seq // - case 383: { action. consumeInitializer(); break; + case 381: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 384: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // Rule 382: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 384: { action. consumeInitializerList(); break; + case 382: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 385: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // Rule 386: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 385: { action. consumeInitializerList(); break; + case 386: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 386: initializer_list ::= { } + // Rule 387: basic_direct_abstract_declarator ::= ( ) // - case 386: { action. consumeInitializerList(); break; + case 387: { action. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 387: start_initializer_list ::= $Empty + // Rule 388: array_direct_abstract_declarator ::= array_modifier // - case 387: { action. initializerListStart(); break; + case 388: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 388: end_initializer_list ::= $Empty + // Rule 389: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 388: { action. initializerListEnd(); break; + case 389: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 393: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 390: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 393: { action. consumeClassSpecifier(); break; + case 390: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 394: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // Rule 391: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 394: { action. consumeClassHead(false); break; + case 391: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 395: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // Rule 392: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 395: { action. consumeClassHead(false); break; + case 392: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 396: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // Rule 393: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 396: { action. consumeClassHead(true); break; + case 393: { action. consumePlaceHolder(); break; } // - // Rule 397: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // Rule 394: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 397: { action. consumeClassHead(true); break; + case 394: { action. consumeEmpty(); break; } // - // Rule 401: identifier_name_opt ::= $Empty + // Rule 395: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 395: { action. consumePlaceHolder(); break; + } + + // + // Rule 401: abstract_declarator_opt ::= $Empty // case 401: { action. consumeEmpty(); break; + } + + // + // Rule 402: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 402: { action. consumeParameterDeclaration(); break; + } + + // + // Rule 403: parameter_declaration ::= declaration_specifiers + // + case 403: { action. consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // Rule 405: parameter_init_declarator ::= declarator = parameter_initializer + // + case 405: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 407: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 407: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 408: parameter_init_declarator ::= = parameter_initializer + // + case 408: { action. consumeDeclaratorWithInitializer(false); break; + } + + // + // Rule 409: parameter_initializer ::= assignment_expression + // + case 409: { action. consumeInitializer(); break; + } + + // + // Rule 410: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // + case 410: { action. consumeFunctionDefinition(false); break; + } + + // + // Rule 411: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // + case 411: { action. consumeFunctionDefinition(true); break; + } + + // + // Rule 414: initializer ::= ( expression_list ) + // + case 414: { action. consumeInitializerConstructor(); break; + } + + // + // Rule 415: initializer_clause ::= assignment_expression + // + case 415: { action. consumeInitializer(); break; + } + + // + // Rule 416: initializer_clause ::= initializer_list + // + case 416: { action. consumeInitializer(); break; + } + + // + // Rule 417: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // + case 417: { action. consumeInitializerList(); break; + } + + // + // Rule 418: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // + case 418: { action. consumeInitializerList(); break; + } + + // + // Rule 419: initializer_list ::= { } + // + case 419: { action. consumeInitializerList(); break; + } + + // + // Rule 420: start_initializer_list ::= $Empty + // + case 420: { action. initializerListStart(); break; + } + + // + // Rule 421: end_initializer_list ::= $Empty + // + case 421: { action. initializerListEnd(); break; + } + + // + // Rule 426: class_specifier ::= class_head { member_declaration_list_opt } + // + case 426: { action. consumeClassSpecifier(); break; + } + + // + // Rule 427: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // + case 427: { action. consumeClassHead(false); break; + } + + // + // Rule 428: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // + case 428: { action. consumeClassHead(false); break; + } + + // + // Rule 429: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // + case 429: { action. consumeClassHead(true); break; + } + + // + // Rule 430: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // + case 430: { action. consumeClassHead(true); break; + } + + // + // Rule 434: identifier_name_opt ::= $Empty + // + case 434: { action. consumeEmpty(); break; } // - // Rule 405: visibility_label ::= access_specifier_keyword : + // Rule 438: visibility_label ::= access_specifier_keyword : // - case 405: { action. consumeVisibilityLabel(); break; + case 438: { action. consumeVisibilityLabel(); break; } // - // Rule 406: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 439: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 406: { action. consumeDeclarationSimple(true); break; + case 439: { action. consumeDeclarationSimple(true); break; } // - // Rule 407: member_declaration ::= declaration_specifiers_opt ; + // Rule 440: member_declaration ::= declaration_specifiers_opt ; // - case 407: { action. consumeDeclarationSimple(false); break; + case 440: { action. consumeDeclarationSimple(false); break; } // - // Rule 410: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 443: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 410: { action. consumeMemberDeclarationQualifiedId(); break; + case 443: { action. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 416: member_declaration ::= ERROR_TOKEN + // Rule 449: member_declaration ::= ERROR_TOKEN // - case 416: { action. consumeDeclarationProblem(); break; + case 449: { action. consumeDeclarationProblem(); break; } // - // Rule 425: member_declarator ::= declarator constant_initializer + // Rule 458: member_declarator ::= declarator constant_initializer // - case 425: { action. consumeMemberDeclaratorWithInitializer(); break; + case 458: { action. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 426: member_declarator ::= bit_field_declarator : constant_expression + // Rule 459: member_declarator ::= bit_field_declarator : constant_expression // - case 426: { action. consumeBitField(true); break; + case 459: { action. consumeBitField(true); break; } // - // Rule 427: member_declarator ::= : constant_expression + // Rule 460: member_declarator ::= : constant_expression // - case 427: { action. consumeBitField(false); break; + case 460: { action. consumeBitField(false); break; } // - // Rule 428: bit_field_declarator ::= identifier_name + // Rule 461: bit_field_declarator ::= identifier_name // - case 428: { action. consumeDirectDeclaratorIdentifier(); break; + case 461: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 429: constant_initializer ::= = constant_expression + // Rule 462: constant_initializer ::= = constant_expression // - case 429: { action. consumeInitializer(); break; + case 462: { action. consumeInitializer(); break; } // - // Rule 435: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 468: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 435: { action. consumeBaseSpecifier(false, false); break; + case 468: { action. consumeBaseSpecifier(false, false); break; } // - // Rule 436: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 469: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 436: { action. consumeBaseSpecifier(true, true); break; + case 469: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 437: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 470: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 437: { action. consumeBaseSpecifier(true, true); break; + case 470: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 438: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 471: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 438: { action. consumeBaseSpecifier(true, false); break; + case 471: { action. consumeBaseSpecifier(true, false); break; } // - // Rule 439: access_specifier_keyword ::= private + // Rule 472: access_specifier_keyword ::= private // - case 439: { action. consumeToken(); break; + case 472: { action. consumeToken(); break; } // - // Rule 440: access_specifier_keyword ::= protected + // Rule 473: access_specifier_keyword ::= protected // - case 440: { action. consumeToken(); break; + case 473: { action. consumeToken(); break; } // - // Rule 441: access_specifier_keyword ::= public + // Rule 474: access_specifier_keyword ::= public // - case 441: { action. consumeToken(); break; + case 474: { action. consumeToken(); break; } // - // Rule 443: access_specifier_keyword_opt ::= $Empty + // Rule 476: access_specifier_keyword_opt ::= $Empty // - case 443: { action. consumeEmpty(); break; + case 476: { action. consumeEmpty(); break; } // - // Rule 445: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 478: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 445: { action. consumeTemplateId(); break; + case 478: { action. consumeTemplateId(); break; } // - // Rule 446: conversion_function_id ::= operator conversion_type_id + // Rule 479: conversion_function_id ::= operator conversion_type_id // - case 446: { action. consumeConversionName(); break; + case 479: { action. consumeConversionName(); break; } // - // Rule 447: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 480: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 447: { action. consumeTypeId(true); break; + case 480: { action. consumeTypeId(true); break; } // - // Rule 448: conversion_type_id ::= type_specifier_seq + // Rule 481: conversion_type_id ::= type_specifier_seq // - case 448: { action. consumeTypeId(false); break; + case 481: { action. consumeTypeId(false); break; } // - // Rule 449: conversion_declarator ::= ptr_operator_seq + // Rule 482: conversion_declarator ::= ptr_operator_seq // - case 449: { action. consumeDeclaratorWithPointer(false); break; + case 482: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 455: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 488: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 455: { action. consumeConstructorChainInitializer(); break; + case 488: { action. consumeConstructorChainInitializer(); break; } // - // Rule 456: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 489: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 456: { action. consumeQualifiedId(false); break; + case 489: { action. consumeQualifiedId(false); break; } // - // Rule 459: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 492: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 459: { action. consumeTemplateId(); break; + case 492: { action. consumeTemplateId(); break; } // - // Rule 460: operator_id_name ::= operator overloadable_operator + // Rule 493: operator_id_name ::= operator overloadable_operator // - case 460: { action. consumeOperatorName(); break; + case 493: { action. consumeOperatorName(); break; } // - // Rule 503: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 536: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 503: { action. consumeTemplateDeclaration(); break; + case 536: { action. consumeTemplateDeclaration(); break; } // - // Rule 504: export_opt ::= export + // Rule 537: export_opt ::= export // - case 504: { action. consumePlaceHolder(); break; + case 537: { action. consumePlaceHolder(); break; } // - // Rule 505: export_opt ::= $Empty + // Rule 538: export_opt ::= $Empty // - case 505: { action. consumeEmpty(); break; + case 538: { action. consumeEmpty(); break; } // - // Rule 509: template_parameter ::= parameter_declaration + // Rule 542: template_parameter ::= parameter_declaration // - case 509: { action. consumeTemplateParamterDeclaration(); break; + case 542: { action. consumeTemplateParamterDeclaration(); break; } // - // Rule 510: type_parameter ::= class identifier_name_opt + // Rule 543: type_parameter ::= class identifier_name_opt // - case 510: { action. consumeSimpleTypeTemplateParameter(false); break; + case 543: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 511: type_parameter ::= class identifier_name_opt = type_id + // Rule 544: type_parameter ::= class identifier_name_opt = type_id // - case 511: { action. consumeSimpleTypeTemplateParameter(true); break; + case 544: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 512: type_parameter ::= typename identifier_name_opt + // Rule 545: type_parameter ::= typename identifier_name_opt // - case 512: { action. consumeSimpleTypeTemplateParameter(false); break; + case 545: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 513: type_parameter ::= typename identifier_name_opt = type_id + // Rule 546: type_parameter ::= typename identifier_name_opt = type_id // - case 513: { action. consumeSimpleTypeTemplateParameter(true); break; + case 546: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 514: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 547: type_parameter ::= template < template_parameter_list > class identifier_name_opt // - case 514: { action. consumeTemplatedTypeTemplateParameter(false); break; + case 547: { action. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 515: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 548: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 515: { action. consumeTemplatedTypeTemplateParameter(true); break; + case 548: { action. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 516: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 549: template_id_name ::= identifier_name < template_argument_list_opt > // - case 516: { action. consumeTemplateId(); break; + case 549: { action. consumeTemplateId(); break; } // - // Rule 521: template_argument ::= assignment_expression + // Rule 556: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 521: { action. consumeTemplateArgumentExpression(); break; + case 556: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 522: template_argument ::= type_id + // Rule 557: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: // - case 522: { action. consumeTemplateArgumentTypeId(); break; + case 557: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 523: explicit_instantiation ::= template declaration + // Rule 558: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 523: { action. consumeTemplateExplicitInstantiation(); break; + case 558: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 524: explicit_specialization ::= template < > declaration + // Rule 559: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: // - case 524: { action. consumeTemplateExplicitSpecialization(); break; + case 559: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 525: try_block ::= try compound_statement handler_seq + // Rule 560: class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate // - case 525: { action. consumeStatementTryBlock(true); break; + case 560: { action. consumeNameWithTemplateKeyword(); break; } // - // Rule 526: try_block ::= try compound_statement + // Rule 562: nested_name_specifier_opt_inTemplate ::= $Empty // - case 526: { action. consumeStatementTryBlock(false); break; + case 562: { action. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 529: handler ::= catch ( exception_declaration ) compound_statement + // Rule 565: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name // - case 529: { action. consumeStatementCatchHandler(false); break; + case 565: { action. consumeQualifiedId(false); break; } // - // Rule 530: handler ::= catch ( ... ) compound_statement + // Rule 566: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 530: { action. consumeStatementCatchHandler(true); break; + case 566: { action. consumeQualifiedId(true); break; } // - // Rule 531: exception_declaration ::= type_specifier_seq declarator + // Rule 571: declaration_specifiers_inTemplate ::= simple_declaration_specifiers // - case 531: { action. consumeDeclarationSimple(true); break; + case 571: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 532: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 572: declaration_specifiers_inTemplate ::= class_declaration_specifiers // - case 532: { action. consumeDeclarationSimple(true); break; + case 572: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 533: exception_declaration ::= type_specifier_seq + // Rule 573: declaration_specifiers_inTemplate ::= elaborated_declaration_specifiers // - case 533: { action. consumeDeclarationSimple(false); break; + case 573: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 535: exception_specification ::= throw ( ) + // Rule 574: declaration_specifiers_inTemplate ::= enum_declaration_specifiers // - case 535: { action. consumePlaceHolder(); break; + case 574: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 541: type_parameter_start ::= ERROR_TOKEN + // Rule 575: declaration_specifiers_inTemplate ::= type_name_declaration_specifiers_inTemplate // - case 541: { action. consumeEmpty(); break; + case 575: { action. consumeDeclarationSpecifiersTypeName(); break; + } + + // + // Rule 577: type_id_inTemplate ::= type_specifier_seq_inTemplate + // + case 577: { action. consumeTypeId(false); break; + } + + // + // Rule 578: type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator + // + case 578: { action. consumeTypeId(true); break; + } + + // + // Rule 579: template_argument ::= assignment_expression_inTemplate + // + case 579: { action. consumeTemplateArgumentExpression(); break; + } + + // + // Rule 580: template_argument ::= type_id_inTemplate + // + case 580: { action. consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 581: explicit_instantiation ::= template declaration + // + case 581: { action. consumeTemplateExplicitInstantiation(); break; + } + + // + // Rule 582: explicit_specialization ::= template < > declaration + // + case 582: { action. consumeTemplateExplicitSpecialization(); break; + } + + // + // Rule 583: try_block ::= try compound_statement handler_seq + // + case 583: { action. consumeStatementTryBlock(true); break; + } + + // + // Rule 584: try_block ::= try compound_statement + // + case 584: { action. consumeStatementTryBlock(false); break; + } + + // + // Rule 587: handler ::= catch ( exception_declaration ) compound_statement + // + case 587: { action. consumeStatementCatchHandler(false); break; + } + + // + // Rule 588: handler ::= catch ( ... ) compound_statement + // + case 588: { action. consumeStatementCatchHandler(true); break; + } + + // + // Rule 589: exception_declaration ::= type_specifier_seq declarator + // + case 589: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 590: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 590: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 591: exception_declaration ::= type_specifier_seq + // + case 591: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 593: exception_specification ::= throw ( ) + // + case 593: { action. consumePlaceHolder(); break; + } + + // + // Rule 599: type_parameter_start ::= ERROR_TOKEN + // + case 599: { action. consumeEmpty(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java index db410ee13e4..e54b45a58c6 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java @@ -51,493 +51,647 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 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,2,1,3,1, - 0,1,0,1,1,0,1,1,1,1, - 1,1,1,1,1,3,4,3,2,1, - 4,2,1,2,5,7,5,1,4,1, - 0,5,7,2,8,1,1,2,2,3, - 2,3,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2,1, - 0,4,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,3,5,3,3,1,3,3,1,3, + 1,3,1,3,1,3,1,3,1,5, + 1,1,3,3,3,3,3,3,3,3, + 3,3,3,1,2,1,1,3,3,3, + 3,3,3,3,3,3,3,3,1,2, + 1,3,1,0,1,0,1,1,0,1, + 1,1,1,1,1,1,1,1,3,4, + 3,2,1,4,2,1,2,5,7,5, + 1,4,1,0,5,7,2,8,1,1, + 2,2,3,2,3,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, - 2,5,6,5,0,1,0,7,8,0, - 1,3,1,0,1,3,1,7,6,0, - 7,6,1,0,6,5,6,4,1,3, - 1,0,1,1,2,1,1,3,1,3, - 1,1,1,1,3,9,2,2,3,2, - 5,3,7,0,1,2,2,1,0,1, - 1,1,3,1,2,1,1,2,3,1, - 1,1,3,2,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,1,7,6,3,0,0,1,3, - 1,1,5,6,6,7,7,0,0,1, - 0,1,1,1,2,4,2,2,1,5, - 1,1,1,1,1,1,1,2,1,0, - 1,3,1,1,2,3,2,1,2,2, - 1,0,1,3,3,5,5,4,1,1, - 1,1,0,1,5,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,2,1,0,4,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,3, + 4,4,5,2,5,6,5,0,1,0, + 7,8,0,1,3,1,0,1,3,1, + 7,6,0,7,6,1,0,6,5,6, + 4,1,3,1,0,1,1,2,1,1, + 3,1,3,1,1,1,1,3,9,2, + 2,3,2,5,3,7,0,1,2,2, + 1,0,1,1,1,3,1,2,1,1, + 2,3,1,1,1,3,2,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,1,7,6,3,0, + 0,1,3,1,1,5,6,6,7,7, + 0,0,1,0,1,1,1,2,4,2, + 2,1,5,1,1,1,1,1,1,1, + 2,1,0,1,3,1,1,2,3,2, + 1,2,2,1,0,1,3,3,5,5, + 4,1,1,1,1,0,1,5,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, - 2,2,7,1,0,1,3,1,1,2, - 4,2,4,7,9,5,1,3,1,0, - 1,1,2,4,4,2,1,2,5,5, - 3,3,1,4,3,1,0,1,3,1, - 1,-126,0,0,0,-2,0,0,0,0, + 1,1,1,2,2,7,1,0,1,3, + 1,1,2,4,2,4,7,9,5,1, + 3,1,0,1,1,3,2,3,2,2, + 1,0,1,1,4,5,2,1,2,2, + 2,2,2,2,2,1,1,2,1,1, + 2,4,4,2,1,2,5,5,3,3, + 1,4,3,1,0,1,3,1,1,-126, + 0,0,0,0,-2,0,0,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,-462,0,-3,0,0,0,0,0, - -109,0,0,0,-26,0,0,0,-33,0, + 0,0,0,0,0,0,-39,-3,0,-7, + 0,0,0,0,0,0,-398,0,-215,0, + 0,-273,-8,0,-15,0,-519,0,0,0, + 0,-12,-22,-474,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-16,0,0, + 0,-246,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-29,-327,-7,0,0,-255,-307,0,0, 0,0,0,0,0,0,0,0,0,0, - -246,0,-8,0,0,0,-536,0,0,0, - 0,-4,0,0,-217,0,0,0,0,0, + -448,0,0,-368,0,0,-37,0,0,0, + 0,0,0,0,-109,0,0,-58,0,0, + 0,0,-461,0,0,0,0,0,-532,0, + 0,0,0,0,0,0,0,0,0,-283, 0,0,0,0,0,0,0,0,0,0, - 0,-12,0,0,-272,0,0,0,0,0, - 0,0,0,-16,0,0,0,0,0,0, - 0,0,0,0,0,0,-5,0,0,0, - 0,0,0,0,0,0,-19,0,0,0, + -6,0,-36,0,-19,0,0,-4,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,0, - 0,0,0,0,0,0,-91,0,-262,0, - 0,0,0,0,-176,0,0,0,0,-36, - 0,0,-34,0,-415,-328,0,0,0,-20, - 0,0,-171,0,0,0,0,0,0,0, + 0,0,0,-128,0,0,0,0,-32,0, + 0,0,-23,0,0,0,0,0,0,0, + 0,0,0,-26,0,0,0,0,0,0, + 0,0,0,0,0,-20,0,0,0,0, + 0,0,-412,0,-171,0,0,0,0,0, 0,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,-55,0,0,0,0,0,0,0,0, - 0,0,0,-28,0,-30,0,0,0,-132, - 0,0,0,-44,0,0,0,0,0,0, - 0,0,-49,0,0,0,0,0,0,-187, - 0,0,-50,-175,0,0,0,0,0,0, + 0,0,-182,0,0,-132,0,0,0,0, + -337,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-83,0, + -24,0,0,0,0,0,0,0,0,0, + -25,-187,-440,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-5,0, + 0,0,-107,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,0, - 0,0,0,0,0,0,-51,0,-52,0, - 0,0,0,0,0,0,-45,0,0,0, - -182,0,-194,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,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-6,0,0,0,0,0,0,0,0, - 0,0,0,-461,0,0,0,0,-431,0, - 0,0,-211,0,0,0,0,0,0,0, - -370,-133,0,0,0,0,0,0,0,0, - 0,0,0,0,-83,-37,0,-183,0,-518, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-53,0,0,0,0,0,0,0, - 0,0,0,0,-54,0,0,0,0,0, - 0,0,0,-540,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-349,0,0,0,-22,0, - 0,0,-92,-287,0,0,0,0,-21,0, - 0,0,-191,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-56, - 0,0,0,0,0,0,0,-128,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,0,0, - 0,0,-85,0,0,0,0,0,0,0, - 0,-300,0,0,0,-186,0,0,0,0, - -280,0,0,-457,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,-184,0,-23,0, - 0,0,0,-371,0,0,0,-18,0,0, - 0,-386,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -68,0,0,0,0,0,0,0,-69,0, - -297,0,0,0,0,0,0,0,0,0, - -24,-357,0,0,0,-70,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-86,0,0,0,0,0,0,0, - 0,-301,0,0,0,-81,0,0,0,0, - 0,0,0,0,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, - -390,0,0,0,-173,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,-71,0,0,0,0,0,-72,-89,0, - 0,-25,0,-205,0,0,0,0,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,0,-215,0, - 0,0,0,0,0,0,-79,0,0,0, - -73,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-479, - 0,-90,0,0,0,0,0,0,0,-155, - 0,0,0,-344,0,0,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,-39,0,0,0,-75,-296, - 0,0,-219,0,0,0,0,0,0,0, - 0,0,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,-76,0, - 0,0,0,0,0,0,-77,0,-422,0, - 0,0,0,0,-474,0,0,0,-157,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-96, - 0,0,0,0,0,0,0,0,0,0, - 0,-158,0,0,0,0,0,0,0,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,-456,0,0,0, - 0,-315,0,0,-159,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-106,0,-376,0,0, - 0,0,0,-80,0,0,0,-160,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,0,0,-487,0, - -409,0,-108,0,0,0,-174,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,-84,0,0,0,0,0,0, - 0,0,0,-410,0,-110,0,0,0,-529, - 0,0,0,-162,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,0,-531,0,0,0, - 0,0,-213,0,0,0,-163,0,0,0, - -539,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-88, - 0,0,0,0,0,0,0,0,0,0, - 0,-192,0,0,0,0,0,0,0,-164, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-532,0,0,0,0,0,-221,0, - 0,0,-165,0,0,0,-94,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-95,0,0,0,0, - 0,0,0,-250,0,0,0,0,0,0, - 0,-478,0,0,0,-281,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-98,0, - 0,0,0,0,0,0,-105,0,-100,0, - 0,0,0,0,0,-389,0,0,-291,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,0,0,0,-254, - 0,-101,0,0,0,0,0,-257,-113,0, - 0,-534,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,0, - 0,0,-116,0,-124,0,0,0,0,0, - -99,-131,0,0,-393,0,0,0,-129,0, - 0,0,0,0,0,0,0,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,-394,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-179,0, - 0,0,-195,0,0,0,0,-449,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,-346,0,0,0,0,0, - 0,0,0,0,-378,0,-180,0,0,0, - -465,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-268,0,0,0,0,0,0,0,-273, - 0,0,0,-189,-451,0,0,0,-167,0, - 0,0,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,0,0, - 0,-304,0,-199,0,-125,0,-154,0,0, - 0,0,0,0,0,0,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,-152,0,0,0,-197,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-198,0,0,0,0, - 0,0,0,0,0,-153,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-149,0,0,0, - -200,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,-150,0,0,0, - -202,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-188, - 0,0,0,0,0,-151,0,0,0,-311, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-38,0, - 0,0,0,0,-416,0,0,0,0,0, - 0,0,0,0,0,0,0,-207,-13,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-143,0,0,0,-283,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-252, - -295,0,-208,0,0,0,0,-251,0,0, - -290,0,-481,0,0,0,-209,0,0,0, + 0,0,0,-41,0,0,-49,0,0,-85, 0,0,0,0,0,0,0,-270,0,0, - 0,0,-299,0,0,0,-32,0,0,0, - -210,0,0,0,0,0,0,0,-222,0, - 0,0,0,0,-177,0,0,0,0,-355, - 0,0,0,0,0,0,0,-423,0,0, - 0,0,-345,0,0,0,0,0,0,0, - 0,0,0,0,0,-397,-337,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-191,0,0,0,0,0,0, + 0,0,-546,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,-196,0,0,0, + 0,-27,0,0,0,0,0,0,0,0, + 0,0,0,0,-597,-45,0,0,0,0, + 0,-28,0,0,0,0,0,0,0,0, + 0,-217,0,0,0,0,-30,0,0,0, + 0,0,0,0,0,-1,0,0,0,-167, + 0,0,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,-44,0,0, + 0,0,0,0,0,0,-55,0,-50,0, + 0,0,0,0,0,-576,0,0,0,0, + -266,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-86,0,0,-92,0,0,0,0, + 0,0,-51,0,-173,0,0,0,-291,0, + 0,0,-598,0,0,0,0,-52,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-10, + 0,0,-53,0,0,0,0,0,0,-268, + 0,0,0,0,0,-211,0,0,0,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,0,0,0,0,0,0, + -108,0,0,0,0,-433,0,0,-186,0, + 0,0,0,0,0,0,-18,0,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,-421,-174,0,-498,0,-89,0, + 0,0,0,0,0,-466,0,0,0,0, + 0,0,0,-154,0,0,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,-311,0,0,0,0,0,0,0,0, + -90,-298,-96,0,0,0,0,0,0,0, + 0,-81,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,-34, + 0,0,0,0,0,0,0,0,-56,0, + 0,0,0,-195,0,0,0,0,0,0, + 0,0,0,-82,0,0,0,0,-446,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -106,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-68,0,0,0, + -205,0,0,0,0,-129,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-408,0, + -213,0,0,0,0,0,0,0,0,-69, + 0,0,-284,0,0,0,0,0,-21,0, + 0,0,0,-425,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-38,-194,0,0,0, + 0,0,0,0,0,0,0,-443,0,0, + -260,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,0,0, + 0,-403,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-290,0,0,0, + 0,0,0,0,0,0,0,-177,0,0, + 0,0,0,0,0,0,0,0,-155,0, + 0,0,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,-183,0, + 0,0,0,0,0,-465,0,-221,0,0, + -489,0,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,0, + 0,0,0,-342,0,-184,0,0,0,0, + 0,0,0,0,-70,0,0,-507,0,0, + 0,0,-157,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -71,0,-464,0,-338,0,0,0,0,0, + 0,0,0,0,-509,0,0,0,0,-158, + 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,0,0,0,0, + 0,-192,0,0,0,0,0,0,0,0, + 0,-539,0,0,0,0,-159,0,0,0, + 0,-457,0,0,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,0,0,0,0,0,0,0,-540,0, + 0,0,0,-160,0,0,0,0,-470,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-492,0,-72,0,-473,0,0,0,0, + 0,0,0,0,0,-354,0,0,0,0, + -161,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,-73,0, + -74,0,-265,0,0,0,0,0,0,0, + 0,0,-366,0,0,0,0,-162,0,0, + 0,0,-542,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-278,0,0,-75,0,0, + 0,0,0,0,-76,0,0,0,0,-371, + 0,0,0,0,-163,0,0,0,0,-77, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-279,-78,0,-80,0,0,0,0,0, + 0,-84,0,0,0,0,-372,0,0,0, + 0,-164,0,0,0,0,-563,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-281,-87, + 0,-88,0,0,0,0,0,0,-94,0, + -548,0,0,-419,0,0,0,0,-165,0, + 0,0,0,-588,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-297,-95,0,-98,0, + 0,0,0,0,0,-105,0,0,0,0, + -468,0,0,0,0,-292,0,0,0,0, + -113,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-352,-116,0,-131,0,-303,0,0, + 0,0,0,0,0,0,0,-97,0,0, + 0,0,-302,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,-203,0,-188,0,0,0,0,-276, + 0,-277,0,0,-112,0,0,0,0,-322, + 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,-180,0,-189, + -516,0,0,0,0,0,0,0,0,0, + 0,0,0,-29,0,-305,0,-263,0,-442, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-323,0,0,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,-514,0,0,0,0,0,-199, + 0,0,0,0,0,-200,0,0,0,-455, + 0,0,0,0,0,0,0,-447,0,0, + 0,0,0,-480,0,-201,0,0,0,0, + 0,-324,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-467,0, + 0,-391,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-11,0,-345,0,-587, + 0,0,-202,0,0,-207,0,-257,-208,0, + 0,0,0,0,0,0,0,-325,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-209,0,0,-348,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-40,0,-506,0,0,-210,0, + 0,0,0,-341,0,0,0,-537,0,0, + 0,0,0,-326,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, + -100,0,0,-222,0,0,-223,0,0,0, + 0,0,0,0,-353,0,0,-224,0,0, + 0,0,0,0,0,-589,0,0,0,0, + 0,-536,0,0,0,0,0,0,0,-327, + 0,0,0,0,-225,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-490,0,0,-226, + -569,0,0,0,0,0,0,0,0,0, + 0,0,0,-485,0,-42,0,0,-365,0, + 0,0,0,-346,0,-227,-602,-409,0,-406, + 0,0,0,0,0,-328,0,0,0,0, + -400,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-176,-228,0,-101,0,0,0,0, + 0,0,0,0,0,-229,-481,0,0,0, + 0,0,0,-454,0,0,0,0,0,0, + 0,-230,-407,0,-231,0,0,0,0,0, + 0,-329,0,0,0,0,-435,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-124, + 0,-232,-133,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-233,0,-280, + 0,0,0,0,0,0,0,0,0,0, + -339,-520,0,0,0,0,0,-330,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,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, + -234,0,0,-235,0,0,0,0,0,-393, + 0,-236,0,-373,0,-374,-575,-237,0,0, + 0,0,0,-331,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, + -294,0,0,-445,0,0,0,0,0,0, + 0,0,0,0,0,-301,0,-118,0,-239, + 0,-240,0,-430,0,0,0,-350,0,0, + -389,0,0,-243,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,-247,-125,0,0, + 0,0,0,0,-351,0,0,-248,-47,0, + -249,0,0,-119,0,-306,0,-340,0,-250, + 0,-434,0,0,0,-369,0,0,0,0, + 0,0,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,0, + 0,0,0,-336,0,0,0,0,0,-388, + -390,0,0,-392,0,0,0,-172,0,0, + 0,0,0,-477,0,0,0,0,0,0, + 0,-487,0,0,-479,0,0,0,0,0, + 0,-592,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,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,-251,0,0,-178,0,-401,0, + 0,0,0,-545,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-252,-590,0, + -253,0,0,0,0,0,0,-197,0,0, + -411,0,0,0,0,0,0,0,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,0,0,0,0,0,-397, + 0,0,-420,-428,0,-429,-245,0,0,-501, + 0,0,-254,0,0,-497,-255,-450,0,0, + 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,-282,0,-256,0,0, + 0,0,0,0,0,0,-258,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,0,-259,-264,-269, + 0,-496,0,0,0,0,0,0,-504,0, + 0,-271,-272,0,-286,0,0,0,0,-355, + 0,-287,-288,-198,-204,0,-463,0,0,0, + 0,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,-312,0,-517,0, + 0,0,0,-343,0,-344,0,0,-523,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-349,0,-357,0, + -544,0,0,0,0,0,0,-562,0,0, + -307,-564,0,-572,-579,-358,0,-363,0,0, + -308,-525,-364,0,0,-534,-104,0,0,0, + 0,-334,0,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,-370,-377,0,-378,0,-379,-380,0, + 0,0,0,-309,-381,-382,0,-383,0,0, + 0,0,-384,-535,0,-385,0,0,0,0, + 0,0,0,0,-321,0,0,0,0,-220, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-262,0,-405,0,-386,0,0,-387,0, + -402,-404,-422,-426,-427,-438,-441,-453,-460,0, + -547,0,0,0,0,-469,-475,0,0,0, + -152,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-559,0, + -560,0,-476,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,-478,-482,-484,-499,0,-522,0, + -566,0,-524,-526,0,0,-527,-528,-529,-531, + -565,0,-583,0,-549,-550,-552,-557,-561,0, + -241,0,-153,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-242,0,0,-320,0,0, + 0,0,-299,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-573,-581,-593,-603,0, + 0,0,0,-595,0,-601,0,0,0,0, + 0,0,0,-367,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,0,0,0,0,-413,0,-316, + 0,0,0,0,-414,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-150,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-415,-416,0,-151, + 0,0,0,0,0,0,0,0,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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-13,0, + 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,0,0, + 0,0,0,0,0,0,0,0,-33,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-399,0,0,0,0,0,0,0,0, + 0,0,0,0,-533,-431,-458,0,0,0, + 0,0,0,0,-459,0,0,0,0,-491, + -135,0,0,-500,-512,0,0,0,-111,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-538,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 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, + 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,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,0,0,0,0,0,0,-279,0,0, 0,0,0,0,0,0,0,0,0,0, - -204,-145,0,0,0,0,0,0,0,0, + 0,-145,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-265,0,0,0,0,-146, + 0,0,0,0,0,0,0,0,-146,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-216,0,0,0,0,-306,0,0, - 0,0,0,0,0,0,0,0,0,0, - -14,0,0,0,0,0,-47,-313,0,0, - 0,0,-286,0,0,0,0,-220,-103,0, - 0,0,-356,0,0,0,0,0,0,0, - 0,-223,-17,-241,-102,0,0,0,0,0, - -43,0,0,0,-224,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-325,0, - 0,0,0,0,0,0,0,-292,0,-435, - -15,0,-225,0,0,0,0,0,0,0, - 0,-40,0,0,0,-293,0,0,0,0, - 0,-419,0,0,0,0,0,0,-388,0, - 0,0,0,0,0,0,0,0,0,-242, - 0,0,0,0,-288,0,-440,0,0,0, - 0,0,0,0,0,0,0,0,0,-271, - 0,-203,0,-330,0,0,0,0,0,0, - 0,-305,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-313,0,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,-227,-147,0,0,0,0,0, + 0,0,-314,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-315, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-148,0,0,0,-228,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-447,0,0,0,0,-196, - 0,0,0,-326,0,0,0,0,0,0, - 0,0,-309,-400,0,-229,0,0,-310,-475, - -334,0,0,0,0,0,-336,-324,0,0, - 0,-463,-230,0,0,0,0,0,0,0, - -367,0,0,0,-231,0,0,0,0,0, - 0,0,-266,-168,0,0,0,0,0,0, - -232,0,0,0,0,0,0,0,0,0, - 0,0,0,-169,0,-398,0,0,0,0, - 0,0,0,0,0,0,0,-233,0,-482, - 0,0,0,0,-544,-234,0,-412,0,0, - 0,0,0,0,0,0,0,-533,0,0, - 0,0,0,0,0,0,0,0,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,0,0,0,-289,0,0,0, - -331,0,0,0,-358,0,-235,0,0,0, - 0,-354,-312,0,0,0,0,0,0,0, - -338,0,0,-436,0,0,0,0,0,0, - -236,0,0,0,0,0,-395,0,0,0, - -298,0,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,-472,0,0,-341, - 0,-343,-114,0,-237,0,0,0,-259,0, - 0,0,-238,0,-239,0,0,0,0,0, - 0,0,-48,0,-172,-352,0,0,0,0, - -240,0,0,-493,-9,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-243,0,0,0,0,0, - -439,0,-353,0,0,0,0,0,0,0, - 0,0,0,0,0,-432,0,-359,0,-459, - 0,0,0,0,0,0,0,0,0,-495, - 0,-332,-244,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-467, - 0,0,0,0,0,0,0,0,0,-366, - 0,-245,0,0,0,0,-509,-247,0,0, - 0,0,0,-248,0,0,0,0,0,-253, - 0,0,0,0,0,0,0,-258,0,0, - -249,0,0,0,0,-360,0,0,0,0, - 0,0,0,0,0,0,0,-260,0,0, - -361,0,0,0,0,0,-261,0,0,0, - 0,0,-522,0,-404,0,0,-123,0,0, - 0,0,-275,0,0,0,0,0,0,0, - 0,0,-374,0,-276,0,0,-314,0,0, - -391,0,0,0,-277,0,-484,0,0,-524, - 0,0,0,0,-375,0,-278,-302,0,0, - 0,0,-362,0,0,0,0,0,-476,0, - -303,-308,0,-97,0,0,0,-35,-434,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-316,-429,0,0,0,0,0, - 0,0,0,0,0,-505,0,0,0,-31, - 0,0,0,0,0,-317,0,-322,0,0, - 0,0,0,0,0,-526,0,0,0,0, - 0,0,0,0,0,0,0,0,-513,-380, - 0,-323,0,0,0,-112,0,0,0,-269, - 0,0,-528,0,0,0,0,-430,0,0, - 0,0,0,0,0,0,-443,0,-438,0, - 0,0,0,0,-42,0,-329,-135,0,-517, - 0,0,-333,0,0,0,0,0,-348,0, - 0,0,0,0,0,0,-385,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -350,-401,0,0,0,0,-541,0,-368,0, - 0,0,0,0,0,0,0,0,-372,-373, - -381,-107,0,0,0,-335,-530,0,-377,0, - 0,-384,0,-351,0,0,-402,0,0,0, - 0,0,-396,-446,-10,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-546,0,0,0,0,0, - 0,0,-433,0,0,0,0,0,0,0, - 0,0,0,0,-403,-411,-477,0,0,0, - 0,0,0,-417,0,0,-418,-442,-134,-420, - 0,-424,0,0,0,0,-426,0,-441,0, - 0,0,0,0,-464,0,0,0,0,0, - -466,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -140,0,0,0,-468,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-469,0,-141,0,0,0,-470, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-471,0, - -142,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-473,0,-60,0,0,0,-491, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-61,0, - 0,0,-492,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-62,0,0,0,-494,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-63,0,0,0,-499,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-64,0,0, - 0,-503,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -65,0,0,0,-515,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-66,0,0,0,-523,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-67,0,0,0, - -535,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-127, - 0,0,0,-545,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, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-137,0,0,0,0, - 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,-347,0,0,0, + 0,0,0,0,0,0,0,0,0,-376, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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,-392,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-458,0, - 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, - 0,0,0,-379,-448,0,0,0,-454,0, - -365,0,0,0,0,0,0,-414,0,0, - -489,0,-488,0,0,0,0,-480,0,0, - 0,0,0,0,-486,-504,0,0,0,0, - 0,0,0,-485,-508,0,-501,0,0,-166, + 0,0,0,0,0,0,0,-543,-166,-31, + 0,0,0,0,-14,0,0,0,0,0, + 0,-594,0,0,0,0,0,0,0,-122, + 0,0,0,-568,0,0,0,0,0,0, + 0,0,-556,0,0,0,0,0,-570,0, + -574,0,0,0,-333,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-318,-319,-320,0,0,0,0, + 0,0,0,0,0,0,-147,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-502,0,0,0,0,0,0,0,0, - 0,0,0,-455,0,0,0,0,-506,-507, - 0,0,0,0,0,0,-363,0,0,0, - 0,0,0,0,-427,0,0,-510,-364,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,0,0,-584, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-577,0,0,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,0,0,0,-148,0,0,0,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,-123,0,0,0,-359,0, + -360,0,0,0,-48,0,0,0,0,0, + -285,0,0,0,-578,-596,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-600,0,0,0,0,0,0,0,0, + 0,0,-521,0,0,-214,0,0,0,-361, + 0,0,0,0,0,-134,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-591,0,0,0,0,0,0,0,0, + 0,0,0,0,-103,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-424, + 0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-114,0,0,0,0, + 0,0,0,0,0,0,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,-530,0,0,0,0,0,0,0, + 0,0,0,-9,0,-168,-444,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-46,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-551,0,0,0,0,0, + 0,-423,0,0,0,0,0,-169,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,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-553,0,0,0, + 0,0,0,0,0,0,0,0,0,-17, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-190,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-567,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-193,0,0, + 0,0,0,-417,0,0,0,0,0,-585, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -580,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,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,0,0,0,0,0,0,0, + 0,0,-582,0,0,0,0,0,0,0, + -462,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-218,0,0,0,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,-586,0,0,0,0,0, + 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, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-599,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-456,0,0,0,0, + 0,0,0,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,-604,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,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,-142,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-244, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-60,0,0,0,0,0, + 0,0,0,0,0,0,0,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,0,0, + 0,0,0,0,0,0,0,0,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,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,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,-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, + -65,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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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, + -127,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,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-137,0,0,0, + 0,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,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,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,0,0,0,-436,-483,0, + 0,0,0,0,-300,0,0,0,0,0, + -472,0,0,0,0,0,0,0,0,-486, + 0,0,0,-513,0,0,0,0,0,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,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-452,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,-502,0,0,0,0,0,-394, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-439,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-471,-510,0,0, 0,0,0,0,-511,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,-263,0,0,0,0,0,0,0,0, - 0,0,0,0,-512,-521,0,0,0,0, - -516,0,0,0,0,-340,0,0,0,0, - 0,-525,-537,-519,0,0,0,-382,0,0, - 0,0,-520,0,0,0,-413,0,0,-538, - 0,0,0,0,-542,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-543,0, + 0,0,0,0,0,0,0,-375,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 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,-46,0,0,0,0,0,0,0,-437, - 0,0,0,0,0,0,0,0,-445,0, - 0,0,0,-405,0,0,0,0,0,0, + -503,0,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,0,0,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,0, + 0,-102,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,-383,0,0,0,0,0, + 0,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, - -185,0,0,0,0,0,-264,0,-115,0, - 0,0,0,0,-450,0,0,0,0,0, - -214,-498,0,0,0,0,0,0,-321,0, - 0,0,0,0,0,0,0,0,-181,0, + -115,0,0,0,0,0,-571,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -117,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-190,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-193,0,0,0,0,0,0,0,0, - 0,0,-212,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-369,0,0, - 0,0,0,-527,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-218,0, - 0,0,-342,0,0,0,0,0,0,0, - -399,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-425,0,0, - 0,0,0,0,0,0,0,0,-428,0, + -130,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 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,-452,0, - 0,0,0,0,0,0,-453,0,0,0, - -460,0,0,0,0,0,0,-57,0,0, - 0,0,0,0,0,-58,0,0,0,0, - 0,0,0,0,0,0,0,0,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,0,0,0,-387,0,0, - 0,0,0,0,-104,0,0,0,-111,0, - 0,0,0,0,0,-122,0,0,0,0, - 0,0,0,-130,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,-274,0,0,0,0, - 0,-496,0,0,0,0,0,0,0,0, - -282,0,0,0,0,0,0,0,0,0, - 0,-497,0,0,0,0,0,0,0,0, - 0,0,0,-500,-11,0,0,0,0,0, - 0,0,-118,0,0,0,0,0,0,-119, - 0,0,0,0,0,0,0,0,-120,0, - 0,0,0,0,0,0,0,0,0,0, - -121,0,0,0,0,0,0,0,-285,0, - 0,0,0,-483,0,0,0,0,0,0, + 0,0,0,0,0,-493,0,0,0,0, + 0,0,0,0,-120,0,0,0,0,0, + 0,0,0,0,-554,0,0,0,0,0, + 0,-555,0,0,0,0,0,0,0,0, + 0,0,0,-121,0,0,0,0,0,0, + -558,0,0,0,0,0,0,0,0,0, + 0,0,-296,0,0,0,0,0,0,-541, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,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,543 +701,705 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface BaseAction { public final static char baseAction[] = { - 176,4,137,82,82,33,33,68,68,39, - 39,43,43,202,1,1,16,16,16,16, + 191,5,154,94,94,30,30,81,81,39, + 39,42,42,218,1,1,16,16,16,16, 16,16,16,17,17,17,15,11,11,6, - 6,6,6,6,6,2,66,66,5,5, - 12,12,45,45,138,138,139,58,58,44, + 6,6,6,6,6,2,75,75,4,4, + 12,12,44,44,155,155,156,67,67,43, 18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18, - 140,140,140,115,115,19,19,19,19,19, + 157,157,157,132,132,19,19,19,19,19, 19,19,19,19,19,19,19,19,20,20, - 177,177,178,178,179,143,143,144,144,141, - 141,145,142,142,21,21,22,22,24,24, - 24,25,25,25,25,26,26,26,27,27, - 27,28,28,28,28,28,29,29,29,30, - 30,32,32,34,34,36,36,37,37,38, - 38,42,42,41,41,41,41,41,41,41, - 41,41,41,41,41,41,40,31,146,146, - 96,96,180,180,91,203,203,69,69,69, - 69,69,69,69,69,69,70,70,70,67, - 67,57,57,181,181,71,71,71,102,102, - 182,182,72,72,72,72,183,183,73,73, - 73,73,73,74,74,83,83,83,83,83, - 83,83,83,51,51,51,51,51,116,116, - 114,114,52,184,23,23,23,23,23,49, - 49,86,86,86,86,86,153,153,148,148, - 148,148,148,149,149,149,150,150,150,151, - 151,151,152,152,152,87,87,87,87,87, - 88,88,88,13,14,14,14,14,14,14, - 14,14,14,14,14,97,120,120,120,120, - 120,120,118,118,118,154,155,155,119,119, - 185,157,157,156,156,122,122,103,80,80, - 123,54,48,158,158,55,53,85,85,159, - 159,147,147,124,125,125,126,77,77,160, - 160,64,64,64,61,61,60,65,65,76, - 76,59,59,59,50,89,89,99,98,98, - 63,63,62,62,56,56,46,100,100,100, - 92,92,92,93,93,94,94,94,95,95, - 104,104,104,106,106,105,105,204,204,90, - 90,187,187,187,187,187,128,47,47,162, - 186,186,129,129,130,130,130,131,164,188, - 188,35,35,117,132,132,132,132,190,108, - 107,107,121,121,121,165,166,166,166,166, - 166,166,166,166,166,166,166,192,192,189, - 189,191,191,167,168,168,168,168,169,193, - 110,109,109,194,194,170,170,170,170,101, - 101,101,195,195,8,8,9,196,196,197, - 171,161,161,172,172,173,174,174,7,7, - 10,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,198,198,198,198,198,198,198, - 198,198,198,78,81,81,175,175,134,134, - 111,111,111,111,111,111,3,135,135,133, - 133,112,112,84,79,75,75,163,163,113, - 113,199,199,199,136,136,127,127,200,200, - 176,176,1119,35,2571,2547,1127,4613,27,30, - 31,804,806,26,28,2533,263,25,23,50, - 1221,106,76,77,108,2767,1229,1362,1246,1421, - 1368,1499,1491,2353,1547,245,1539,275,1633,1684, - 143,2163,1063,158,144,415,1840,1778,34,1723, - 35,786,32,2775,3480,27,30,31,804,806, - 342,28,2724,2592,760,233,2741,2313,1461,35, - 786,32,3614,3480,27,30,31,804,806,342, - 28,2041,354,846,1852,346,4805,2388,236,231, - 232,1374,330,35,400,1787,35,786,32,276, - 4856,27,30,31,804,806,59,28,727,322, - 1372,324,1386,317,1241,415,35,284,156,243, - 246,249,252,1495,1283,355,2022,162,322,1372, - 324,1977,317,1241,966,393,540,330,35,400, - 336,347,1049,1189,352,2022,527,932,2488,1979, - 3448,740,2469,2822,3545,2781,2257,35,786,32, - 2741,4756,27,30,31,804,806,26,28,1090, - 263,25,23,50,1221,106,76,77,108,346, - 1229,1362,1246,1421,1368,1499,1491,1323,1547,64, - 1539,3225,1633,1684,143,1394,1177,521,144,604, - 1232,546,2811,2138,3011,1886,2138,3589,4805,4420, - 1363,4805,522,2257,35,786,32,2741,4756,27, - 30,31,804,806,26,28,1090,263,25,23, - 50,1221,106,76,77,108,346,1229,1362,1246, - 1421,1368,1499,1491,623,1547,589,1539,3539,1633, - 1684,143,1102,1977,521,144,1977,4816,446,2811, - 460,3351,335,233,761,951,1019,4355,517,522, - 1613,35,786,32,1451,4649,27,30,31,804, - 806,57,28,330,35,400,245,231,232,3255, - 150,3293,2759,243,2257,35,786,32,2741,4756, - 27,30,31,804,806,26,28,1090,263,25, - 23,50,1221,106,76,77,108,346,1229,1362, - 1246,1421,1368,1499,1491,517,1547,2002,1539,2367, - 1633,1684,143,42,3334,521,144,155,35,281, - 2811,56,4809,1913,35,279,3322,2282,3293,94, - 522,2465,35,786,32,2741,4756,27,30,31, - 804,806,26,28,1090,263,25,23,50,1221, - 106,76,77,108,346,1229,1362,1246,1421,1368, - 1499,1491,42,1547,447,1539,3235,1633,1684,143, - 2063,3340,521,144,415,35,297,2811,2106,415, - 35,814,392,155,35,281,517,522,4871,2240, - 61,2080,1699,35,786,32,4805,4649,27,30, - 31,804,806,56,28,1234,1799,3328,56,3293, - 2600,35,786,32,435,4756,27,30,31,804, - 806,26,28,1090,263,25,23,50,1221,106, - 76,77,108,2432,1229,1362,1246,1421,1368,1499, - 1491,1977,1547,518,1539,2473,1633,1684,143,1676, - 951,382,144,4175,2326,35,786,32,332,4756, - 27,30,31,804,806,26,28,1090,263,25, - 23,50,1221,106,76,77,108,4161,1229,1362, - 1246,1421,1368,1499,1491,2564,1547,329,1539,1334, - 1633,1684,143,1234,2070,382,144,4175,746,2668, - 35,786,32,1799,4756,27,30,31,804,806, - 26,28,1090,263,25,23,50,1221,106,76, - 77,108,3065,1229,1362,1246,1421,1368,1499,1491, - 931,1547,60,1539,96,1633,1754,164,1233,389, - 383,1719,3076,35,786,32,2558,4756,27,30, - 31,804,806,26,28,1090,263,25,23,50, - 1221,106,76,77,108,357,1229,1362,1246,1421, - 1368,1499,1491,42,1547,502,1539,3024,1633,1754, - 164,330,1799,390,383,1719,415,35,3023,2695, - 965,415,35,3512,2532,35,786,32,3607,4756, - 27,30,31,804,806,26,28,1090,263,25, - 23,50,1221,106,76,77,108,2598,1229,1362, - 1246,1421,1368,1499,1491,3141,1547,56,1539,1742, - 1633,1684,143,427,322,382,144,4175,2842,35, - 786,32,2224,4756,27,30,31,804,806,26, - 28,1090,263,25,23,50,1221,106,76,77, - 108,1351,1229,1362,1246,1421,1368,1499,1491,499, - 1547,56,1539,93,1633,1684,143,2020,425,376, - 144,2166,3076,35,786,32,2137,4756,27,30, - 31,804,806,26,28,1090,263,25,23,50, - 1221,106,76,77,108,356,1229,1362,1246,1421, - 1368,1499,1491,42,1547,4531,1539,3044,1633,1754, - 164,2997,160,380,383,1719,2842,35,786,32, - 528,4756,27,30,31,804,806,26,28,1090, - 263,25,23,50,1221,106,76,77,108,70, - 1229,1362,1246,1421,1368,1499,1491,327,1547,1809, - 1539,1799,1633,1684,143,1234,375,376,144,2842, - 35,786,32,296,4756,27,30,31,804,806, - 26,28,1090,263,25,23,50,1221,106,76, - 77,108,501,1229,1362,1246,1421,1368,1499,1491, - 2282,1547,236,1539,2598,1633,1684,143,2075,42, - 376,144,2158,696,2842,35,786,32,379,4756, - 27,30,31,804,806,26,28,1090,263,25, - 23,50,1221,106,76,77,108,69,1229,1362, - 1246,1421,1368,1499,1491,1692,1547,464,1539,42, - 1633,1684,143,1374,374,158,144,2398,35,786, - 32,587,4756,27,30,31,804,806,26,28, - 1090,263,25,23,50,1221,106,76,77,108, - 2855,1229,1362,1246,1421,1368,1499,1491,328,1547, - 1799,1539,42,1633,1684,143,753,372,142,144, - 2842,35,786,32,2557,4756,27,30,31,804, - 806,26,28,1090,263,25,23,50,1221,106, - 76,77,108,377,1229,1362,1246,1421,1368,1499, - 1491,1348,1547,2598,1539,1651,1633,1684,143,1527, - 1221,155,144,1960,35,786,32,4176,4856,27, - 30,31,804,806,58,28,2842,35,786,32, - 2488,4756,27,30,31,804,806,26,28,1090, - 263,25,23,50,1221,106,76,77,108,142, - 1229,1362,1246,1421,1368,1499,1491,1271,1547,1799, - 1539,1766,1633,1684,143,415,4187,154,144,2842, - 35,786,32,3606,4756,27,30,31,804,806, - 26,28,1090,263,25,23,50,1221,106,76, - 77,108,581,1229,1362,1246,1421,1368,1499,1491, - 42,1547,2598,1539,834,1633,1684,143,2991,338, - 153,144,2842,35,786,32,379,4756,27,30, - 31,804,806,26,28,1090,263,25,23,50, - 1221,106,76,77,108,1321,1229,1362,1246,1421, - 1368,1499,1491,128,1547,451,1539,42,1633,1684, - 143,1374,2428,152,144,2842,35,786,32,1723, - 4756,27,30,31,804,806,26,28,1090,263, - 25,23,50,1221,106,76,77,108,4184,1229, - 1362,1246,1421,1368,1499,1491,42,1547,2078,1539, - 4511,1633,1684,143,1382,3602,151,144,2842,35, - 786,32,1799,4756,27,30,31,804,806,26, - 28,1090,263,25,23,50,1221,106,76,77, - 108,3624,1229,1362,1246,1421,1368,1499,1491,1799, - 1547,2078,1539,1102,1633,1684,143,1234,4585,150, - 144,2842,35,786,32,3510,4756,27,30,31, - 804,806,26,28,1090,263,25,23,50,1221, - 106,76,77,108,1896,1229,1362,1246,1421,1368, - 1499,1491,4249,1547,2078,1539,1102,1633,1684,143, - 2748,4602,149,144,2842,35,786,32,2499,4756, - 27,30,31,804,806,26,28,1090,263,25, - 23,50,1221,106,76,77,108,2763,1229,1362, - 1246,1421,1368,1499,1491,359,1547,1799,1539,463, - 1633,1684,143,1234,536,148,144,2842,35,786, - 32,214,4756,27,30,31,804,806,26,28, - 1090,263,25,23,50,1221,106,76,77,108, - 1330,1229,1362,1246,1421,1368,1499,1491,358,1547, - 2598,1539,42,1633,1684,143,2870,536,147,144, - 2842,35,786,32,530,4756,27,30,31,804, - 806,26,28,1090,263,25,23,50,1221,106, - 76,77,108,528,1229,1362,1246,1421,1368,1499, - 1491,326,1547,1799,1539,4072,1633,1684,143,1234, - 536,146,144,2842,35,786,32,2226,4756,27, - 30,31,804,806,26,28,1090,263,25,23, - 50,1221,106,76,77,108,2256,1229,1362,1246, - 1421,1368,1499,1491,42,1547,2598,1539,1500,1633, - 1684,143,415,3892,145,144,2842,35,786,32, - 529,4756,27,30,31,804,806,26,28,1090, - 263,25,23,50,1221,106,76,77,108,1469, - 1229,1362,1246,1421,1368,1499,1491,924,1547,1809, - 1539,51,1633,1684,143,385,2557,159,144,2842, - 35,786,32,322,4756,27,30,31,804,806, - 26,28,1090,263,25,23,50,1221,106,76, - 77,108,353,1229,1362,1246,1421,1368,1499,1491, - 42,1547,1809,1539,3161,1633,1684,143,2060,1460, - 140,144,2959,35,786,32,1234,4756,27,30, - 31,804,806,26,28,1090,263,25,23,50, - 1221,106,76,77,108,325,1229,1362,1246,1421, - 1368,1499,1491,2083,1547,1809,1539,408,1633,1684, - 143,1103,1450,189,144,3076,35,786,32,1828, - 4756,27,30,31,804,806,26,28,1090,263, - 25,23,50,1221,106,76,77,108,4049,1229, - 1362,1246,1421,1368,1499,1491,42,1547,71,1539, - 2450,1633,1754,164,3076,35,786,32,97,4756, - 27,30,31,804,806,26,28,1090,263,25, - 23,50,1221,106,76,77,108,2585,1229,1362, - 1246,1421,1368,1499,1491,2585,1547,1549,1539,1250, - 1633,1754,164,415,35,1778,278,451,415,35, - 814,392,3076,35,786,32,426,4756,27,30, - 31,804,806,26,28,1090,263,25,23,50, - 1221,106,76,77,108,2290,1229,1362,1246,1421, - 1368,1499,1491,456,1547,2357,1539,1633,1633,1754, - 164,3131,35,786,32,429,4756,27,30,31, - 804,806,26,28,1090,263,25,23,50,1221, - 106,76,77,108,406,1229,1362,1246,1421,1368, - 1499,1491,42,1547,410,1539,3133,1633,1754,164, - 415,35,1778,280,1174,415,35,814,392,3076, - 35,786,32,3449,4756,27,30,31,804,806, - 26,28,1090,263,25,23,50,1221,106,76, - 77,108,2357,1229,1362,1246,1421,1368,1499,1491, - 438,1547,1102,1539,418,3231,1809,4653,3076,35, - 786,32,3846,4756,27,30,31,804,806,26, - 28,1090,263,25,23,50,1221,106,76,77, - 108,302,1229,1362,1246,1421,1368,1499,1491,24, - 1547,1809,3213,3076,35,786,32,1809,4756,27, - 30,31,804,806,26,28,1090,263,25,23, - 50,1221,106,76,77,108,1809,1229,1362,1246, - 1421,1368,1499,1491,1934,3151,3076,35,786,32, - 69,4756,27,30,31,804,806,26,28,1090, - 263,25,23,50,1221,106,76,77,108,68, - 1229,1362,1246,1421,1368,1499,3205,3076,35,786, - 32,676,4756,27,30,31,804,806,26,28, - 1090,263,25,23,50,1221,106,76,77,108, - 2087,1229,1362,1246,1421,1368,3058,3076,35,786, - 32,2157,4756,27,30,31,804,806,26,28, - 1090,263,25,23,50,1221,106,76,77,108, - 2282,1229,1362,1246,1421,3066,3076,35,786,32, - 2555,4756,27,30,31,804,806,26,28,1090, - 263,25,23,50,1221,106,76,77,108,1246, - 1229,1362,1246,1421,3127,1374,35,786,32,3614, - 4549,27,30,31,804,806,342,28,1910,1404, - 35,786,32,743,3480,27,30,31,804,806, - 342,28,3076,35,786,32,2244,4756,27,30, - 31,804,806,26,28,1090,263,25,23,50, - 1221,106,76,77,108,1977,1229,1362,1246,2914, - 2134,2247,233,1353,335,322,1372,324,1958,317, - 1241,2127,2741,415,35,814,392,3349,2232,322, - 1372,324,316,317,1241,248,231,232,42,394, - 431,2489,3408,1828,2603,355,750,1605,35,786, - 32,3275,2585,41,30,31,804,806,437,408, - 3340,347,1049,1189,352,2051,35,786,32,687, - 2428,40,30,31,804,806,2585,3351,2352,309, - 313,2857,2965,1477,35,786,32,2585,4549,27, - 30,31,804,806,342,28,1707,2051,35,786, - 32,4689,3261,2195,30,31,804,806,364,2617, - 3076,35,786,32,3689,4756,27,30,31,804, - 806,26,28,1090,263,25,23,50,1221,106, - 76,77,108,1977,1229,1362,1246,2946,415,35, - 1778,3488,336,322,1372,324,182,320,1241,44, - 3334,1809,3076,35,786,32,369,4756,27,30, - 31,804,806,26,28,1090,263,25,23,50, - 1221,106,76,77,108,150,1229,1362,1246,2986, - 3076,35,786,32,53,4756,27,30,31,804, - 806,26,28,1090,263,25,23,50,1221,106, - 76,77,108,1809,1229,1362,1246,3003,1820,35, - 3581,32,3614,4549,27,30,31,804,806,342, - 28,3186,35,814,392,2984,4412,2138,415,35, - 1778,283,4805,42,238,263,87,603,1809,1732, - 35,786,32,2313,4549,27,30,31,804,806, - 342,28,580,1331,1809,1810,275,2741,1977,2741, - 4805,3235,35,814,392,929,4412,335,322,1372, - 324,52,317,1241,239,263,2489,1977,2489,1693, - 35,1778,278,2983,233,1045,335,2808,42,1977, - 2316,2159,3292,1160,2741,2747,275,2603,336,322, - 1372,324,1502,318,1241,1977,42,236,231,232, - 3553,288,1102,346,335,355,3203,4725,276,2051, - 35,786,32,535,233,2272,30,31,804,806, - 1809,349,1049,1189,352,1809,2811,2284,243,246, - 249,252,1495,509,2759,363,538,237,231,232, - 1635,3464,1999,966,415,3599,1778,74,276,2321, - 2149,2197,2453,2826,508,233,1464,355,90,3448, - 740,2469,2822,3545,2781,421,423,3559,244,247, - 250,253,1495,347,1049,1189,352,507,251,231, - 232,345,1631,966,1384,3076,35,786,32,2185, - 4756,27,30,31,804,806,26,28,1090,263, - 25,23,50,1221,106,76,77,108,2658,1229, - 1362,3015,3076,35,786,32,1621,4756,27,30, - 31,804,806,26,28,1090,263,25,23,50, - 1221,106,76,77,108,259,1229,1362,3031,542, - 1787,35,786,32,1809,4856,27,30,31,804, - 806,26,28,42,2313,515,1780,3226,229,42, - 2429,42,291,3263,1374,1678,156,42,2250,35, - 279,3609,1,1797,180,3310,542,3320,2598,1151, - 4149,2594,204,216,4485,2141,203,213,214,215, - 217,156,169,2506,1342,229,1642,3486,2741,201, - 4232,2219,168,156,183,167,170,171,172,173, - 174,180,3310,315,1342,2598,1257,2489,2741,204, - 216,4485,289,203,213,214,215,217,2253,169, - 415,35,814,392,4151,214,2571,2489,2313,168, - 181,184,167,170,171,172,173,174,1991,35, - 786,32,743,3480,27,30,31,804,806,342, - 28,3076,35,786,32,436,4756,27,30,31, - 804,806,26,28,1090,263,25,23,50,1221, - 106,76,77,108,363,1229,2579,757,35,814, - 392,1693,35,1778,3600,415,3464,3271,2774,2149, - 2197,2989,1412,2555,363,1151,299,4661,322,1372, - 324,42,317,1241,2313,4144,3002,442,2850,2149, - 2197,2395,275,88,355,531,102,1477,35,786, - 32,1221,4549,27,30,31,804,806,342,28, - 347,1049,1189,352,3076,35,786,32,532,4756, - 27,30,31,804,806,26,28,1090,263,25, - 23,50,1221,106,76,77,108,345,1229,2772, - 42,542,42,1903,4798,1784,1986,1977,4805,1552, - 35,297,298,314,3547,400,336,322,1372,324, - 229,318,1241,1908,3606,2138,2555,4519,156,384, - 4805,558,72,2616,431,1331,180,3310,542,2741, - 2598,3528,395,431,204,216,4485,292,203,213, - 214,215,217,1977,169,2174,354,229,2489,331, - 338,2357,336,2555,168,156,3869,167,170,171, - 172,173,174,180,3310,1977,2594,2598,1809,355, - 2357,204,216,4485,335,203,213,214,215,217, - 517,169,1221,2314,542,349,1049,1189,352,355, - 222,168,433,178,167,170,171,172,173,174, - 2357,67,1282,229,621,347,1049,1189,352,306, - 42,156,2420,1979,3385,509,3623,603,2427,180, - 3310,542,1142,2598,2458,397,431,204,216,4485, - 2490,203,213,214,215,217,508,169,1625,179, - 229,415,35,814,392,3606,1809,168,156,176, - 167,170,171,172,173,174,180,3310,2504,506, - 2598,1809,396,431,204,216,4485,2317,203,213, - 214,215,217,689,169,2592,49,542,2223,66, - 3403,338,1374,2489,168,46,177,167,170,171, - 172,173,174,42,65,2491,229,1721,1635,3464, - 652,155,35,457,156,2520,4678,2313,89,160, - 775,102,180,3310,542,42,2598,2521,2430,1764, - 204,216,4485,1809,203,213,214,215,217,2357, - 169,2573,2522,229,415,35,814,392,2723,1234, - 168,156,187,167,170,171,172,173,174,180, - 3310,240,263,2598,2560,1102,64,204,216,4485, - 4729,203,213,214,215,217,2313,169,199,275, - 502,35,814,392,2671,307,2460,168,2562,3961, - 167,170,171,172,173,174,1873,35,786,32, - 3614,3480,27,30,31,804,806,342,28,2431, - 42,233,2563,542,4158,49,415,35,814,392, - 1913,35,282,861,1969,2071,3276,542,1102,3589, - 291,98,346,4737,241,231,232,1102,3444,42, - 156,343,4741,4244,386,1616,229,2587,42,188, - 2353,275,1374,1221,156,4275,322,1372,324,2588, - 317,1241,180,3310,2590,3486,2598,1552,3677,297, - 204,216,4485,316,203,213,214,215,217,156, - 169,1901,1809,450,3682,3687,2748,947,1899,2595, - 168,542,192,167,170,171,172,173,174,2641, - 2659,1179,330,35,2244,2440,1221,1710,233,1221, - 229,190,2622,277,2138,55,3606,1809,156,4805, - 309,313,2857,2623,42,42,180,3310,573,2741, - 2598,254,231,232,204,216,4485,49,203,213, - 214,215,217,4333,169,1033,1969,1146,346,542, - 54,3425,338,1809,168,3689,186,167,170,171, - 172,173,174,527,1977,2690,2691,2357,229,3606, - 1282,2811,3606,335,2556,1821,156,2631,1809,2223, - 2077,513,2633,1374,180,3310,101,2695,2598,2656, - 1142,4332,204,216,4485,2590,203,213,214,215, - 217,2697,169,3157,337,338,198,333,338,830, - 160,3280,168,1770,195,167,170,171,172,173, - 174,3076,35,786,32,87,4756,27,30,31, - 804,806,26,28,1090,263,25,23,50,1221, - 106,76,77,108,2728,2785,3076,35,786,32, - 2765,4756,27,30,31,804,806,26,28,1090, - 263,25,23,50,1221,106,76,77,108,2770, - 2813,3076,35,786,32,2758,4756,27,30,31, - 804,806,26,28,1090,263,25,23,50,1221, - 106,76,77,108,2771,2912,3076,35,786,32, - 2772,4756,27,30,31,804,806,26,28,1090, - 263,25,23,50,1221,106,76,77,85,3076, - 1840,786,2072,173,4756,27,30,31,804,806, - 26,28,1090,263,25,23,50,1221,106,76, - 77,84,3076,35,786,32,2709,4756,27,30, - 31,804,806,26,28,1090,263,25,23,50, - 1221,106,76,77,83,3076,35,786,32,1897, - 4756,27,30,31,804,806,26,28,1090,263, - 25,23,50,1221,106,76,77,82,3076,35, - 786,32,2726,4756,27,30,31,804,806,26, - 28,1090,263,25,23,50,1221,106,76,77, - 81,3076,35,786,32,2780,4756,27,30,31, - 804,806,26,28,1090,263,25,23,50,1221, - 106,76,77,80,3076,35,786,32,2732,4756, - 27,30,31,804,806,26,28,1090,263,25, - 23,50,1221,106,76,77,79,3076,35,786, - 32,2657,4756,27,30,31,804,806,26,28, - 1090,263,25,23,50,1221,106,76,77,78, - 2904,35,786,32,2386,4756,27,30,31,804, - 806,26,28,1090,263,25,23,50,1221,106, - 76,77,104,3076,35,786,32,5370,4756,27, - 30,31,804,806,26,28,1090,263,25,23, - 50,1221,106,76,77,110,3076,35,786,32, - 5370,4756,27,30,31,804,806,26,28,1090, - 263,25,23,50,1221,106,76,77,109,3076, - 35,786,32,5370,4756,27,30,31,804,806, - 26,28,1090,263,25,23,50,1221,106,76, - 77,107,3076,35,786,32,5370,4756,27,30, - 31,804,806,26,28,1090,263,25,23,50, - 1221,106,76,77,105,1983,35,3581,32,3614, - 3480,27,30,31,804,806,342,28,5370,1461, - 35,786,32,3614,3480,27,30,31,804,806, - 342,28,3021,35,786,32,5370,4756,27,30, - 31,804,806,26,28,1090,263,25,23,50, - 1221,86,76,77,1570,843,35,457,2741,2312, - 4678,415,35,1778,3665,322,1372,324,1831,317, - 1241,2357,2741,415,35,297,5370,229,1809,322, - 1372,324,1045,317,1241,42,2699,5370,5370,3476, - 3550,229,534,5370,1809,2707,316,2357,5370,2741, - 42,206,216,4485,1374,205,213,214,215,217, - 305,455,5370,5370,5370,206,216,4485,346,205, - 213,214,215,217,42,42,42,381,1374,1374, - 1374,156,207,209,211,3377,202,218,208,210, - 3215,4316,2357,310,313,2857,207,209,211,3377, - 5370,218,208,210,1918,156,156,156,2741,42, - 2357,5370,5370,970,3278,3356,3371,2223,3068,5370, - 4347,1374,422,423,3559,1412,4250,229,1809,2223, - 4661,200,3144,1374,4347,1461,35,786,32,3614, - 3480,27,30,31,804,806,342,28,160,301, - 42,206,216,4485,3496,205,213,214,215,217, - 160,3383,1223,35,786,32,2728,3480,27,30, - 31,804,806,342,28,1809,2348,454,3682,3687, - 3078,1809,207,209,211,3377,2005,218,208,210, - 2741,5370,2357,2357,1809,322,1372,324,1657,317, - 1241,407,2741,1809,5370,5370,5370,1744,3420,229, - 1809,2741,3938,3582,3523,1809,5370,5370,3417,5370, - 4347,229,319,3442,324,3617,2616,1807,5370,2357, - 229,627,223,206,216,4485,1893,205,213,214, - 215,217,5370,4369,4343,206,216,4485,3645,205, - 213,214,215,217,206,216,4485,5370,205,213, - 214,215,217,5370,207,209,211,3377,193,524, - 208,210,502,35,814,392,207,209,211,3377, - 2092,523,208,210,2741,207,209,211,3377,2179, - 219,208,210,2741,2223,434,5370,5370,1374,5370, - 5370,5370,5370,229,5370,5370,5370,49,5370,5370, - 5370,5370,229,5370,5370,5370,1969,2029,5370,5370, - 5370,5370,2882,5370,5370,160,5370,206,216,4485, - 3516,205,213,214,215,217,206,216,4485,5370, - 205,213,214,215,217,1507,35,786,32,2475, - 3480,27,30,31,804,806,342,28,207,209, - 211,3377,5370,308,208,210,5370,207,209,211, - 3377,1181,503,208,210,2741,4833,1287,5370,1810, - 5370,2741,4833,2741,4805,2223,5370,5370,5370,1374, - 3653,1619,2429,5370,229,2741,542,5370,5370,42, - 229,5370,2489,1374,5370,319,3442,324,5370,502, - 35,814,392,5370,346,4290,160,5370,2028,411, - 4302,5370,5370,156,2028,411,4302,5370,5370,1977, - 156,180,3310,5370,5370,5370,5370,1054,335,3433, - 5370,5370,5370,5370,49,1015,35,814,392,412, - 413,414,3377,1969,2530,412,413,414,3377,196, - 5370,5370,502,35,814,392,5370,3444,3203,363, - 5370,5370,3348,2215,35,814,392,5370,3348,5370, - 49,4168,5370,2321,2149,2197,5370,5370,42,1969, - 47,5370,1374,5370,42,5370,5370,49,1374,5370, - 5370,5370,5370,3520,5370,2882,1969,47,49,1015, - 35,814,392,1015,35,814,392,1969,2506,156, - 655,502,35,814,392,156,5370,5370,2036,5370, - 5370,3516,5370,5370,4350,5370,415,417,502,35, - 814,392,415,418,49,5370,5370,5370,49,502, - 35,814,392,1969,2541,5370,49,1969,47,5370, - 607,5370,5370,4517,5370,1969,47,3117,5370,2753, - 5370,2839,5370,49,5370,3509,197,5370,5370,939, - 5370,5370,1969,47,49,1968,35,814,392,502, - 35,814,392,1969,47,5370,2158,502,35,814, - 392,2390,35,814,392,5370,5370,2245,42,5370, - 5370,5370,542,5370,5370,5370,1216,35,814,392, - 49,5370,5370,5370,49,5370,5370,5370,5370,1969, - 47,346,49,1969,47,5370,49,5370,5370,156, - 5370,1969,47,934,5370,1969,47,2543,2286,5370, - 5370,49,42,5370,2811,3060,542,5370,2049,4163, - 1969,2079,2741,5370,2065,415,35,814,392,415, - 35,814,392,5370,5370,346,415,35,814,392, - 5370,2489,5370,156,42,5370,5370,5370,542,5370, - 5370,5370,2346,415,35,814,392,5370,2811,5370, - 49,5370,5370,5370,49,5370,5370,346,2327,1969, - 881,49,5370,1969,883,156,415,35,814,392, - 1969,2872,42,5370,2286,5370,542,5370,49,5370, - 2811,415,35,814,392,5370,5370,1969,2563,5370, - 2723,5370,42,5370,5370,346,542,5370,509,5370, - 5370,49,5370,156,42,42,5370,5370,542,2741, - 1969,2079,188,42,5370,346,49,2741,4275,508, - 42,5370,5370,156,2741,1969,2998,346,346,42, - 5370,5370,188,2741,5370,156,346,5370,4275,5370, - 5370,42,506,346,188,2741,5370,5370,5370,42, - 4275,2811,346,2741,42,5370,5370,5370,2741,2811, - 5370,511,5370,5370,346,5370,2811,5370,5370,2284, - 5370,5370,346,5370,4268,2811,2391,346,5370,5370, - 5370,5370,5370,3680,5370,2410,5370,2811,5370,5370, - 5370,5370,5370,5370,4315,2811,5370,2421,5370,5370, - 2811,5370,5370,5370,5370,2974,4321,5370,5370,5370, - 539,5370,0,632,1,0,677,1,0,39, - 1,5385,0,39,1,5384,0,2567,1,0, - 39,5385,0,39,5384,0,1273,321,0,1369, - 29,0,444,1452,0,458,1590,0,5385,48, - 0,5384,48,0,38,585,0,38,5385,0, - 38,5384,0,5376,1,0,5375,1,0,285, - 398,0,285,290,0,5605,242,0,5604,242, - 0,5711,242,0,5710,242,0,5632,242,0, - 5631,242,0,5630,242,0,5629,242,0,5628, - 242,0,5627,242,0,5626,242,0,5625,242, - 0,5644,242,0,5643,242,0,5642,242,0, - 5641,242,0,5640,242,0,5639,242,0,5638, - 242,0,5637,242,0,5636,242,0,5635,242, - 0,5634,242,0,39,242,5385,0,39,242, - 5384,0,5408,242,0,1369,391,0,2672,126, - 0,35,33,0,1,448,0,462,1325,0, - 461,1727,0,47,37,0,5408,1,0,39, - 1,0,1409,91,0,32,34,0,39,585, - 0,1,792,0,1,5644,0,1,5643,0, - 1,5642,0,1,5641,0,1,5640,0,1, - 5639,0,1,5638,0,1,5637,0,1,5636, - 0,1,5635,0,1,5634,0,43,5406,0, - 43,37,0,505,3368,0,5408,1,230,0, - 39,1,230,0,230,420,0,5385,37,0, - 5384,37,0,238,3388,0,392,32,0,391, - 29,0,2672,128,0,2672,127,0,334,449, - 0,5380,409,0,5379,409,0,1,608,0, - 1,602,0,1,585,0,230,419,0,1, - 92,0,5406,45,0,37,45,0,1,334, - 0,2,5385,37,0,2,5384,37,0,5385, - 36,0,5384,36,0,505,4338,0,1,230, - 0,334,95,0,35,73,0,230,221,0, - 280,4257,0,230,220,0,5382,1,0,5378, - 1,0,1,230,3701,0,5379,230,0,3725, - 230,0,5382,387,0,5381,387,0,3823,230, - 0,10,12,0,8,10,12,0,3915,194, - 0,185,3587,0,3984,387,0,8,12,0 + 192,192,193,193,194,160,160,161,161,158, + 158,162,159,159,21,21,22,22,23,23, + 23,24,24,24,24,25,25,25,26,26, + 26,31,31,31,31,31,33,33,33,34, + 34,35,35,36,36,38,38,40,40,41, + 41,45,45,45,45,45,47,47,47,53, + 53,55,55,61,61,62,62,63,63,64, + 64,65,65,65,65,65,65,65,65,65, + 65,65,65,65,29,29,46,46,46,46, + 46,46,46,46,46,46,46,46,46,37, + 28,163,163,105,105,195,195,104,219,219, + 82,82,82,82,82,82,82,82,82,83, + 83,83,79,79,66,66,196,196,84,84, + 84,116,116,197,197,85,85,85,85,198, + 198,86,86,86,86,86,87,87,95,95, + 95,95,95,95,95,95,56,56,56,56, + 56,133,133,131,131,57,199,27,27,27, + 27,27,50,50,69,69,69,69,69,138, + 138,134,134,134,134,134,135,135,135,136, + 136,136,137,137,137,165,165,165,70,70, + 70,70,70,71,71,71,13,14,14,14, + 14,14,14,14,14,14,14,14,106,139, + 139,139,139,139,139,111,111,111,166,167, + 167,112,112,200,169,169,168,168,140,140, + 117,92,92,141,59,49,170,170,60,58, + 97,97,171,171,164,164,142,143,143,144, + 89,89,172,172,77,77,77,73,73,72, + 78,78,80,80,68,68,68,54,98,98, + 108,107,107,51,51,74,74,76,76,52, + 109,109,109,99,99,99,100,100,101,101, + 101,102,102,118,118,118,120,120,119,119, + 220,220,103,103,202,202,202,202,202,146, + 48,48,174,201,201,147,147,148,148,148, + 149,176,203,203,32,32,110,114,114,114, + 114,205,122,121,121,113,113,113,177,178, + 178,178,178,178,178,178,178,178,178,178, + 207,207,204,204,206,206,179,180,180,180, + 180,181,208,124,123,123,209,209,182,182, + 182,182,115,115,115,210,210,8,8,9, + 211,211,212,183,173,173,184,184,185,186, + 186,7,7,10,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,213,213,213,213, + 213,213,213,213,213,213,90,93,93,187, + 187,151,151,125,125,125,125,125,125,3, + 152,152,150,150,188,221,222,222,223,223, + 224,225,225,189,190,190,190,190,214,214, + 214,127,127,127,127,127,128,129,129,126, + 126,96,91,88,88,175,175,130,130,215, + 215,215,153,153,145,145,216,216,191,191, + 1119,35,2489,2466,4990,1128,27,30,31,1052, + 1067,26,28,2429,296,25,23,50,1467,106, + 76,77,108,1510,1751,1715,1939,1346,1484,177, + 588,1894,308,1988,1941,2010,1995,2713,2033,69, + 2035,176,1986,1394,1471,1331,191,157,35,330, + 2939,266,1572,1389,1258,35,1032,32,4804,3474, + 27,30,31,1052,1067,375,28,3633,2107,269, + 264,265,2856,35,1032,32,718,600,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,108,1510,1751,1715,2938,379, + 189,1642,35,490,2823,5769,309,2505,2136,2928, + 276,279,282,627,707,2295,984,3307,2289,35, + 1108,425,368,2823,645,388,355,901,357,157, + 3529,350,891,390,1351,753,1546,2484,5866,285, + 157,35,317,349,380,653,803,385,2730,1451, + 49,69,3902,1628,378,1647,4724,1802,71,35, + 433,2129,1476,2426,3491,2616,2265,35,1032,32, + 718,5370,27,30,31,1052,1067,26,28,1409, + 296,25,23,50,1467,106,76,77,108,1510, + 1751,1715,2938,1261,2357,162,342,346,1307,1533, + 35,1032,32,1231,266,41,30,31,1052,1067, + 2358,2927,2418,2950,157,2082,2080,34,3176,2941, + 484,3108,278,264,265,3567,1808,3074,3111,3173, + 161,579,923,157,3349,2265,35,1032,32,718, + 5370,27,30,31,1052,1067,26,28,1409,296, + 25,23,50,1467,106,76,77,108,1510,1751, + 1715,2938,1304,155,162,3483,2233,35,1032,32, + 5052,1232,27,30,31,1052,1067,57,28,630, + 2927,2597,2950,389,3483,483,3565,3566,2941,2389, + 3108,1998,550,576,3167,580,3074,3111,3173,161, + 579,2711,228,1610,35,1032,32,4230,654,27, + 30,31,1052,1067,375,28,2894,3249,3177,71, + 35,433,2891,71,35,2270,2225,2265,35,1032, + 32,718,5370,27,30,31,1052,1067,26,28, + 1409,296,25,23,50,1467,106,76,77,108, + 1510,1751,1715,2938,1213,49,162,71,35,433, + 69,550,576,3167,580,4726,2129,1269,931,35, + 330,360,2927,325,2950,352,3347,357,3000,371, + 2941,361,3108,362,2505,3208,4486,3177,3074,3111, + 3173,161,579,157,35,330,2475,35,1032,32, + 718,5370,27,30,31,1052,1067,26,28,1409, + 296,25,23,50,1467,106,76,77,108,1510, + 1751,1715,2938,61,1985,162,2079,1701,35,1032, + 32,4441,1752,27,30,31,1052,1067,26,28, + 643,2927,548,2950,902,585,1642,35,314,2941, + 3939,3108,2895,550,576,3167,580,3074,3111,3173, + 161,579,1701,35,1032,32,4441,2897,27,30, + 31,1052,1067,59,28,2624,3013,3217,2174,3177, + 3279,35,1032,32,718,1704,27,30,31,1052, + 1067,26,28,1409,296,25,23,50,1467,106, + 76,77,108,1510,1751,1715,1939,1619,2956,2494, + 3581,1894,3008,1988,1941,2010,1995,61,2882,1402, + 1657,4250,551,576,3167,580,2613,35,1032,32, + 718,2566,27,30,31,1052,1067,26,28,1409, + 296,25,23,50,1467,106,76,77,108,1510, + 1751,1715,1939,69,715,177,2389,1894,4788,1988, + 1941,2010,1995,2957,2033,2389,2035,176,3351,157, + 35,3373,415,2333,35,1032,32,718,2963,27, + 30,31,1052,1067,26,28,1409,296,25,23, + 50,1467,106,76,77,108,1510,1751,1715,1939, + 69,598,177,3015,1894,4235,1988,1941,2010,1995, + 2636,2033,426,2035,176,3351,1642,35,314,415, + 5803,418,2543,35,1032,32,718,379,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,108,1510,1751,1715,1939,441, + 535,177,645,1894,2627,1988,1941,2010,1995,497, + 2033,61,2035,176,3351,4866,2889,605,415,157, + 35,2232,2230,422,416,3084,546,2924,35,1032, + 32,718,3076,27,30,31,1052,1067,26,28, + 1409,296,25,23,50,1467,106,76,77,108, + 1510,1751,1715,1939,2882,2389,177,1645,1894,69, + 1988,1941,2010,1995,766,2033,2889,2035,176,480, + 423,416,3084,409,3279,35,1032,32,718,2104, + 27,30,31,1052,1067,26,28,1409,296,25, + 23,50,1467,106,76,77,108,1510,1751,1715, + 1939,1257,1642,35,567,1894,6068,1988,1941,2010, + 2839,69,1886,69,273,296,835,2956,927,413, + 416,3084,2924,35,1032,32,718,1103,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,108,1510,1751,1715,1939,496, + 1518,177,266,1894,3377,1988,1941,2010,1995,2147, + 2033,392,2035,176,157,35,2080,311,409,594, + 274,264,265,408,2924,35,1032,32,718,2713, + 27,30,31,1052,1067,26,28,1409,296,25, + 23,50,1467,106,76,77,108,1510,1751,1715, + 1939,69,1618,177,2136,1894,6147,1988,1941,2010, + 1995,391,2033,88,2035,176,102,3645,368,594, + 409,2924,35,1032,32,718,1570,27,30,31, + 1052,1067,26,28,1409,296,25,23,50,1467, + 106,76,77,108,1510,1751,1715,1939,4585,1885, + 177,2389,1894,5176,1988,1941,2010,1995,348,2033, + 1531,2035,176,157,35,2080,313,191,407,2683, + 35,1032,32,718,1087,27,30,31,1052,1067, + 26,28,1409,296,25,23,50,1467,106,76, + 77,108,1510,1751,1715,1939,1895,2461,35,312, + 1894,1618,1988,1941,2010,1995,93,2033,2790,2042, + 197,157,35,1108,425,2407,35,1032,32,718, + 405,27,30,31,1052,1067,26,28,1409,296, + 25,23,50,1467,106,76,77,108,1510,1751, + 1715,1939,3136,49,177,5723,1894,266,1988,1941, + 2010,1995,2364,2033,46,2035,176,157,35,2080, + 3368,175,484,363,2684,281,264,265,1788,35, + 1032,32,1513,889,40,30,31,1052,1067,2924, + 35,1032,32,718,2426,27,30,31,1052,1067, + 26,28,1409,296,25,23,50,1467,106,76, + 77,108,1510,1751,1715,1939,70,61,177,155, + 1894,4928,1988,1941,2010,1995,1087,2033,2389,2035, + 176,157,35,1108,425,188,2924,35,1032,32, + 718,466,27,30,31,1052,1067,26,28,1409, + 296,25,23,50,1467,106,76,77,108,1510, + 1751,1715,1939,468,332,177,155,1894,3488,1988, + 1941,2010,1995,365,2033,1219,2035,176,157,35, + 1108,425,187,2924,35,1032,32,718,2418,27, + 30,31,1052,1067,26,28,1409,296,25,23, + 50,1467,106,76,77,108,1510,1751,1715,1939, + 489,1233,177,2389,1894,155,1988,1941,2010,1995, + 1943,2033,51,2035,176,157,35,1108,425,186, + 2924,35,1032,32,718,2566,27,30,31,1052, + 1067,26,28,1409,296,25,23,50,1467,106, + 76,77,108,1510,1751,1715,1939,471,71,177, + 458,1894,69,1988,1941,2010,1995,3206,2033,3001, + 2035,176,157,35,1108,425,185,2924,35,1032, + 32,718,2566,27,30,31,1052,1067,26,28, + 1409,296,25,23,50,1467,106,76,77,108, + 1510,1751,1715,1939,470,2820,177,97,1894,69, + 1988,1941,2010,1995,871,2033,321,2035,176,157, + 35,1108,425,184,2924,35,1032,32,718,2566, + 27,30,31,1052,1067,26,28,1409,296,25, + 23,50,1467,106,76,77,108,1510,1751,1715, + 1939,469,2389,177,1398,1894,2573,1988,1941,2010, + 1995,6108,2033,322,2035,176,157,35,2080,316, + 183,2924,35,1032,32,718,2566,27,30,31, + 1052,1067,26,28,1409,296,25,23,50,1467, + 106,76,77,108,1510,1751,1715,1939,3252,55, + 177,1349,1894,69,1988,1941,2010,1995,2761,2033, + 332,2035,176,2102,35,2080,311,182,2924,35, + 1032,32,718,2566,27,30,31,1052,1067,26, + 28,1409,296,25,23,50,1467,106,76,77, + 108,1510,1751,1715,1939,69,98,177,237,1894, + 2173,1988,1941,2010,1995,56,2033,331,2035,176, + 157,3484,2080,74,181,2924,35,1032,32,718, + 147,27,30,31,1052,1067,26,28,1409,296, + 25,23,50,1467,106,76,77,108,1510,1751, + 1715,1939,69,227,177,1630,1894,2545,1988,1941, + 2010,1995,314,2033,340,2035,176,2102,35,2080, + 3485,180,2924,35,1032,32,718,2566,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,108,1510,1751,1715,1939,69, + 3077,177,1336,1894,3270,1988,1941,2010,1995,2004, + 2033,3191,2035,176,157,35,2080,3489,179,2924, + 35,1032,32,718,2567,27,30,31,1052,1067, + 26,28,1409,296,25,23,50,1467,106,76, + 77,108,1510,1751,1715,1939,69,2328,177,405, + 1894,704,1988,1941,2010,1995,1489,2033,419,2035, + 176,157,35,2080,566,178,2924,35,1032,32, + 718,1338,27,30,31,1052,1067,26,28,1409, + 296,25,23,50,1467,106,76,77,108,1510, + 1751,1715,1939,2540,1910,177,1456,1894,69,1988, + 1941,2010,1995,2824,2033,1045,2035,176,157,35, + 1108,425,192,2924,35,1032,32,718,1724,27, + 30,31,1052,1067,26,28,1409,296,25,23, + 50,1467,106,76,77,108,1510,1751,1715,1939, + 308,586,177,2529,1894,491,1988,1941,2010,1995, + 228,2033,3133,2035,176,157,35,1108,425,140, + 3045,35,1032,32,718,1374,27,30,31,1052, + 1067,26,28,1409,296,25,23,50,1467,106, + 76,77,108,1510,1751,1715,2938,308,762,162, + 2600,1243,35,1032,32,4230,3474,27,30,31, + 1052,1067,375,28,2738,2927,2737,2950,2361,4235, + 931,3533,330,2941,376,3108,427,464,1607,273, + 296,3074,3111,3173,161,173,3045,35,1032,32, + 718,379,27,30,31,1052,1067,26,28,1409, + 296,25,23,50,1467,106,76,77,108,1510, + 1751,1715,2938,69,69,162,1107,266,2826,1471, + 1635,310,3249,355,901,357,2326,2032,350,891, + 1985,2927,2888,2950,2935,274,264,265,2505,2941, + 349,3108,4228,1618,2505,1775,2401,3074,3111,3173, + 161,172,3045,35,1032,32,718,1169,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,108,1510,1751,1715,2938,2889, + 2677,162,1788,35,1032,32,2677,1704,2707,30, + 31,1052,1067,343,346,1307,69,2927,61,2950, + 3250,4235,5114,2437,412,2941,934,3108,1800,2394, + 412,2494,3377,3074,3111,3173,161,171,3045,35, + 1032,32,718,379,27,30,31,1052,1067,26, + 28,1409,296,25,23,50,1467,106,76,77, + 108,1510,1751,1715,2938,475,3745,162,645,1243, + 35,1032,32,4230,3474,27,30,31,1052,1067, + 375,28,2136,2927,1984,2950,1968,35,490,3684, + 5769,2941,544,3108,2505,479,369,493,2505,3074, + 3111,3173,161,170,3045,35,1032,32,718,1894, + 27,30,31,1052,1067,26,28,1409,296,25, + 23,50,1467,106,76,77,108,1510,1751,1715, + 2938,1894,410,162,2399,266,3004,2433,3259,534, + 2677,355,901,357,359,2540,350,891,1982,2927, + 586,2950,594,284,264,265,2505,2941,2666,3108, + 3071,386,157,3589,3358,3074,3111,3173,161,169, + 3045,35,1032,32,718,2071,27,30,31,1052, + 1067,26,28,1409,296,25,23,50,1467,106, + 76,77,108,1510,1751,1715,2938,2882,2677,162, + 2274,1243,35,1032,32,4230,3474,27,30,31, + 1052,1067,375,28,1885,2927,2065,2950,5176,2878, + 35,312,588,2941,2673,3108,313,585,1724,637, + 2540,3074,3111,3173,161,168,3045,35,1032,32, + 718,2396,27,30,31,1052,1067,26,28,1409, + 296,25,23,50,1467,106,76,77,108,1510, + 1751,1715,2938,2429,331,162,1894,266,428,464, + 487,3565,3566,355,901,357,485,2601,350,891, + 439,2927,4421,2950,2059,287,264,265,5790,2941, + 3657,3108,587,2540,2094,1342,358,3074,3111,3173, + 161,167,3045,35,1032,32,718,2637,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,108,1510,1751,1715,2938,2684, + 1894,162,1877,2243,35,1032,32,5052,1561,27, + 30,31,1052,1067,56,28,443,2927,667,2950, + 2461,35,315,430,464,2941,89,3108,215,102, + 5700,1232,3190,3074,3111,3173,161,166,3045,35, + 1032,32,718,1169,27,30,31,1052,1067,26, + 28,1409,296,25,23,50,1467,106,76,77, + 108,1510,1751,1715,2938,1822,467,162,1710,35, + 1032,32,4441,417,27,30,31,1052,1067,58, + 28,1913,2891,2927,2952,2950,429,464,42,3248, + 2505,2941,233,3108,1232,1906,1232,3190,1791,3074, + 3111,3173,161,165,3045,35,1032,32,718,486, + 27,30,31,1052,1067,26,28,1409,296,25, + 23,50,1467,106,76,77,108,1510,1751,1715, + 2938,2597,3205,162,1788,35,1032,32,364,371, + 3025,30,31,1052,1067,2891,2319,2891,69,2927, + 2432,2950,1001,4235,2953,35,565,2941,69,3108, + 60,1232,585,2630,2440,3074,3111,3173,161,164, + 3045,35,1032,32,718,379,27,30,31,1052, + 1067,26,28,1409,296,25,23,50,1467,106, + 76,77,108,1510,1751,1715,2938,1825,1894,162, + 645,3164,371,3166,371,69,1618,2091,589,1518, + 2693,1902,2891,3377,69,2927,2154,2950,1570,4235, + 753,1618,1232,2941,2340,3108,1518,585,24,2141, + 3377,3074,3111,3173,161,163,3105,35,1032,32, + 718,379,27,30,31,1052,1067,26,28,1409, + 296,25,23,50,1467,106,76,77,108,1510, + 1751,1715,2938,2136,2667,162,645,266,370,371, + 69,69,2420,2891,69,1266,2952,368,1518,5768, + 2136,2927,3377,2950,61,278,264,265,5964,2941, + 2346,3108,61,2402,4600,2637,6048,3074,3111,3173, + 161,160,3165,35,1032,32,718,4666,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,108,1510,1751,1715,1939,366, + 371,177,2136,1894,335,1988,1941,2010,1995,1561, + 2033,61,2035,176,925,6055,368,1894,222,3279, + 35,1032,32,718,2505,27,30,31,1052,1067, + 26,28,1409,296,25,23,50,1467,106,76, + 77,108,1510,1751,1715,1939,2428,1849,319,2505, + 1894,1386,1988,1941,2010,1995,94,2033,1894,2042, + 197,3279,35,1032,32,718,3362,27,30,31, + 1052,1067,26,28,1409,296,25,23,50,1467, + 106,76,77,108,1510,1751,1715,1939,69,44, + 3248,2677,1894,69,1988,1941,2010,1995,4727,2033, + 69,2042,197,69,69,1429,69,2327,723,1316, + 61,2399,2939,1729,6189,587,2637,1106,3279,35, + 1032,32,718,460,27,30,31,1052,1067,26, + 28,1409,296,25,23,50,1467,106,76,77, + 108,1510,1751,1715,1939,69,1017,3349,2508,1894, + 5781,1988,1941,2010,1995,255,2033,2539,2042,197, + 3279,35,1032,32,718,329,27,30,31,1052, + 1067,26,28,1409,296,25,23,50,1467,106, + 76,77,108,1510,1751,1715,1939,388,835,499, + 2537,1894,69,1988,1941,2010,1995,5794,2033,69, + 2042,197,3084,2740,2762,2568,380,653,803,385, + 1017,3349,2606,2638,1894,1894,578,3279,35,1032, + 32,718,459,27,30,31,1052,1067,26,28, + 1409,296,25,23,50,1467,106,76,77,108, + 1510,1751,1715,1939,68,53,2678,3073,1894,2637, + 1988,1941,2010,1995,2644,2033,3134,2042,197,3441, + 35,1032,32,718,462,27,30,31,1052,1067, + 26,28,1409,296,25,23,50,1467,106,76, + 77,108,1510,1751,1715,1939,324,2706,339,2607, + 1894,69,1988,1941,2010,1995,2057,2033,3247,2042, + 197,2787,69,2827,69,3248,2085,1126,2782,4350, + 4572,2888,2637,2881,2198,3366,2637,157,35,1108, + 425,1892,3387,35,1032,32,718,1894,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,108,1510,1751,1715,2938,49, + 324,212,266,1007,657,232,761,87,829,1365, + 2129,863,266,3587,3702,1929,2446,2927,577,2950, + 281,264,265,2246,2637,2941,1532,3108,2628,3366, + 284,264,265,3074,3479,3333,35,1032,32,718, + 1894,27,30,31,1052,1067,26,28,1409,296, + 25,23,50,1467,106,76,77,108,1510,1751, + 1715,2938,1424,231,1518,266,2705,4235,3377,1896, + 52,3043,2252,2886,3135,1814,2605,2947,2502,2978, + 2927,2637,2950,570,264,265,2979,2739,2941,3849, + 3108,3279,35,1032,32,718,3436,27,30,31, + 1052,1067,26,28,1409,296,25,23,50,1467, + 106,76,77,108,1510,1751,1715,1939,2136,2637, + 338,2637,1894,3194,1988,1941,2822,3333,35,1032, + 32,718,368,27,30,31,1052,1067,26,28, + 1409,296,25,23,50,1467,106,76,77,108, + 1510,1751,1715,2938,2106,2786,3009,3129,235,3103, + 233,3101,5938,3195,87,397,4235,3067,3099,3193, + 3219,2637,2927,2637,2950,3220,173,3234,2746,3288, + 2941,1894,3428,3279,35,1032,32,718,379,27, + 30,31,1052,1067,26,28,1409,296,25,23, + 50,1467,106,76,77,108,1510,1751,1715,1939, + 334,2178,4242,3365,1894,1894,1988,2828,3333,35, + 1032,32,718,1894,27,30,31,1052,1067,26, + 28,1409,296,25,23,50,1467,106,76,77, + 108,1510,1751,1715,2938,2333,3249,3342,2965,2715, + 6984,6984,6984,90,2637,6984,2637,6984,6984,6984, + 6984,6984,6984,2927,1894,2950,3279,35,1032,32, + 718,3433,27,30,31,1052,1067,26,28,1409, + 296,25,23,50,1467,106,76,77,108,1510, + 1751,1715,1939,256,3163,226,6984,1894,1894,2748, + 3333,35,1032,32,718,1894,27,30,31,1052, + 1067,26,28,1409,296,25,23,50,1467,106, + 76,77,108,1510,1751,1715,2938,6984,67,6984, + 6984,6984,6984,6984,6984,66,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,2927,6984,3419,3279,35, + 1032,32,718,6984,27,30,31,1052,1067,26, + 28,1409,296,25,23,50,1467,106,76,77, + 108,1510,1751,1715,1939,6984,4445,1894,1894,2811, + 3279,35,1032,32,718,6984,27,30,31,1052, + 1067,26,28,1409,296,25,23,50,1467,106, + 76,77,108,1510,1751,1715,1939,65,64,6984, + 6984,2814,3333,35,1032,32,718,6984,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,108,1510,1751,1715,2938,1743, + 35,1032,32,4230,1400,27,30,31,1052,1067, + 375,28,3333,35,1032,32,718,3425,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,108,1510,1751,1715,2938,1820, + 35,1032,32,4230,6182,27,30,31,1052,1067, + 375,28,1360,35,1032,32,4804,3426,27,30, + 31,1052,1067,375,28,2671,2707,1894,6984,387, + 1471,355,901,357,6984,1894,350,891,6984,388, + 1894,69,6984,6984,1894,2497,1471,6984,826,157, + 35,1108,425,189,6984,6984,143,55,380,653, + 803,385,3531,6984,234,54,2136,1894,755,189, + 101,355,901,357,3309,592,350,891,1668,388, + 369,49,6984,6984,355,901,357,6984,2666,353, + 891,6984,2129,1547,6984,6984,6984,488,380,653, + 803,385,6984,3279,35,1032,32,718,2531,27, + 30,31,1052,1067,26,28,1409,296,25,23, + 50,1467,106,76,77,108,1510,1751,1715,2626, + 3279,35,1032,32,718,6984,27,30,31,1052, + 1067,26,28,1409,296,25,23,50,1467,106, + 76,77,108,1510,1751,1715,2664,6984,6984,6984, + 6984,402,3279,35,1032,32,718,6984,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,108,1510,1751,1715,2676,3279, + 35,1032,32,718,6984,27,30,31,1052,1067, + 26,28,1409,296,25,23,50,1467,106,76, + 77,108,1510,1751,1715,2692,3279,35,1032,32, + 718,6984,27,30,31,1052,1067,26,28,1409, + 296,25,23,50,1467,106,76,77,108,1510, + 1751,1715,3414,3279,35,1032,32,718,6984,27, + 30,31,1052,1067,26,28,1409,296,25,23, + 50,1467,106,76,77,108,1510,1751,1715,3416, + 3279,35,1032,32,718,6984,27,30,31,1052, + 1067,26,28,1409,296,25,23,50,1467,106, + 76,77,108,1510,1751,1715,3418,1221,35,3482, + 32,4804,3474,27,30,31,1052,1067,375,28, + 3279,35,1032,32,718,6984,27,30,31,1052, + 1067,26,28,1409,296,25,23,50,1467,106, + 76,77,108,1510,1751,1715,3916,6984,1894,69, + 243,35,1108,425,1471,3495,35,1108,425,4742, + 6984,2136,3302,6984,6984,6984,6984,1471,271,296, + 157,35,1108,425,1894,368,6984,189,414,355, + 901,357,49,2671,350,891,2880,308,600,1894, + 189,1894,6984,2129,1377,69,1592,6984,6984,195, + 1471,6984,49,6984,4961,3902,266,6984,6984,6984, + 3364,189,6984,2129,2223,6984,6984,2188,6984,5023, + 3372,5085,213,189,269,264,265,3279,35,1032, + 32,718,3476,27,30,31,1052,1067,26,28, + 1409,296,25,23,50,1467,106,76,77,108, + 1510,1751,2695,157,35,1108,425,6984,6984,6984, + 6984,309,229,6984,6984,276,279,282,627,707, + 2155,35,1032,32,4230,3474,27,30,31,1052, + 1067,375,28,6984,1894,49,454,456,3481,1351, + 753,1546,2484,5866,285,6984,2129,2948,1466,35, + 3482,32,4230,3474,27,30,31,1052,1067,375, + 28,6984,6984,2641,2556,3279,35,1032,32,718, + 2616,27,30,31,1052,1067,26,28,1409,296, + 25,23,50,1467,106,76,77,108,1510,1751, + 2732,259,355,901,357,2250,600,350,891,69, + 1471,69,6984,6984,1471,2780,1471,4472,6984,349, + 6241,157,35,1108,425,1894,1894,6984,262,189, + 355,901,357,193,6984,350,891,189,3372,189, + 213,6247,230,2677,6984,387,3708,1592,3715,237, + 249,903,1894,49,6984,3109,3666,236,246,247, + 248,250,6984,1,2129,1476,2436,202,600,6984, + 69,4235,342,346,1307,1471,2250,6984,6984,6984, + 201,1471,5209,216,200,203,204,205,206,207, + 262,189,6984,379,3664,388,6984,6984,189,6984, + 3372,3567,213,69,193,2677,6984,3787,1471,6984, + 3275,237,249,903,380,653,803,385,1362,236, + 246,247,248,250,2531,6984,6984,6984,6984,202, + 6984,189,6984,6984,6984,6984,6984,455,456,3481, + 3788,6984,201,6984,214,217,200,203,204,205, + 206,207,1511,35,1032,32,4230,1400,27,30, + 31,1052,1067,375,28,1413,35,1032,32,4804, + 6984,27,30,31,1052,1067,375,28,6984,6984, + 1974,3450,6984,6984,3377,6984,6984,6984,6984,6984, + 6984,6984,3279,35,1032,32,718,4483,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,108,1510,2534,6984,6984,2136, + 6984,6984,6984,6984,355,901,357,6984,6984,350, + 891,6984,388,369,2136,6984,6984,355,901,357, + 6984,589,351,891,6984,388,2188,6984,4600,6984, + 3377,380,653,803,385,6984,6984,6984,6984,2126, + 6984,590,6984,6984,382,653,803,385,3279,35, + 1032,32,718,6984,27,30,31,1052,1067,26, + 28,1409,296,25,23,50,1467,106,76,77, + 108,1510,2537,345,6984,6984,6984,6984,600,6984, + 2136,6984,6984,6984,2393,6984,1388,2781,6984,4235, + 6984,4235,4235,6984,369,6984,6984,6984,6984,6984, + 262,189,243,35,1108,425,388,6984,6984,6984, + 3372,3849,213,3849,3849,2677,6984,6984,6984,6984, + 96,237,249,903,6984,382,653,803,385,236, + 246,247,248,250,49,431,6984,6984,6984,202, + 600,6984,69,6984,6984,2129,2151,1471,1388,6984, + 6984,6984,201,4235,6984,3588,200,203,204,205, + 206,207,262,189,243,35,1108,425,6984,2235, + 189,6984,3372,6984,213,3849,6984,2677,6984,1753, + 6984,6984,6984,237,249,903,6984,542,6984,396, + 542,236,246,247,248,250,49,517,6984,6984, + 6984,202,600,6984,3591,2245,2268,2129,2288,541, + 2393,6984,541,6984,201,4235,6984,211,200,203, + 204,205,206,207,262,189,501,35,1108,425, + 6984,2188,6984,6984,3372,539,213,3849,539,2677, + 6984,6984,6984,6984,6984,237,249,903,6984,6984, + 6984,396,6984,236,246,247,248,250,49,603, + 6984,6984,6984,202,600,6984,3625,2245,2268,2129, + 47,652,6984,6984,3564,6984,201,6984,6984,209, + 200,203,204,205,206,207,262,189,243,35, + 1108,425,6984,2750,2250,6984,3372,6984,213,1471, + 69,2677,6984,6984,6984,1471,6984,237,249,903, + 6984,6984,6984,542,6984,236,246,247,248,250, + 49,689,193,6984,6984,202,600,6984,189,2250, + 6984,2129,47,6984,1471,541,6984,4446,201,6984, + 6984,210,200,203,204,205,206,207,262,189, + 2292,35,1108,425,6984,740,6984,193,3372,6984, + 213,540,6984,2677,6984,6984,6984,6984,6984,237, + 249,903,6984,6984,6984,6984,6984,236,246,247, + 248,250,49,775,6984,6984,6984,202,600,6984, + 6984,2250,6984,2129,2861,6984,1471,6984,6984,3917, + 201,6984,6984,220,200,203,204,205,206,207, + 262,189,501,35,1108,425,6984,2235,2250,193, + 3372,6984,213,1471,6984,2677,6984,6984,6984,6984, + 6984,237,249,903,3925,6984,6984,6984,6984,236, + 246,247,248,250,49,861,193,6984,6984,202, + 600,6984,6984,6984,6984,2129,2876,6984,6984,6984, + 6984,6984,201,6984,6984,3658,200,203,204,205, + 206,207,262,189,501,35,1108,425,6984,5775, + 6984,6984,3372,6984,213,6984,6984,2677,6984,6984, + 6984,6984,6984,237,249,903,3930,6984,6984,6984, + 6984,236,246,247,248,250,49,947,6984,6984, + 6984,202,600,6984,6984,6984,6984,2129,47,6984, + 6984,6984,6984,3957,201,6984,6984,225,200,203, + 204,205,206,207,262,189,243,35,1108,425, + 6984,2864,6984,6984,3372,6984,213,6984,69,2677, + 6984,6984,6984,600,6984,237,249,903,6984,6984, + 6984,6984,6984,236,246,247,248,250,49,1033, + 6984,6984,6984,202,600,379,189,6984,6984,2129, + 47,6984,6984,6984,6984,2928,201,6984,6984,219, + 200,203,204,205,206,207,262,189,6984,6984, + 645,6984,6984,1671,6984,6984,3372,6984,213,6984, + 6984,2677,6984,6984,6984,6984,6984,237,249,903, + 6984,6984,6984,6984,2730,236,246,247,248,250, + 6984,6984,6984,6984,6984,202,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,6984,6984,6984,201,6984, + 6984,228,200,203,204,205,206,207,3279,35, + 1032,32,718,6984,27,30,31,1052,1067,26, + 28,1409,296,25,23,50,1467,106,76,77, + 108,2548,3279,35,1032,32,718,6984,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,108,2575,3279,35,1032,32, + 718,6984,27,30,31,1052,1067,26,28,1409, + 296,25,23,50,1467,106,76,77,108,2600, + 3593,35,554,6984,6984,6984,6984,6984,6984,6984, + 6984,6984,6984,271,296,3279,35,1032,32,718, + 6984,27,30,31,1052,1067,26,28,1409,296, + 25,23,50,1467,106,76,77,85,6984,6984, + 6984,6984,6984,6984,6984,6984,3279,2082,1032,2176, + 718,266,27,30,31,1052,1067,26,28,1409, + 296,25,23,50,1467,106,76,77,84,269, + 264,265,3279,35,1032,32,718,6984,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,83,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,6984,6984,6984,6984,6984, + 276,279,282,627,707,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,2286,2946,3361,3371,6159,3279, + 35,1032,32,718,6984,27,30,31,1052,1067, + 26,28,1409,296,25,23,50,1467,106,76, + 77,82,3279,35,1032,32,718,6984,27,30, + 31,1052,1067,26,28,1409,296,25,23,50, + 1467,106,76,77,81,6984,6984,6984,563,564, + 568,3279,35,1032,32,718,6984,27,30,31, + 1052,1067,26,28,1409,296,25,23,50,1467, + 106,76,77,80,3424,3279,35,1032,32,718, + 6984,27,30,31,1052,1067,26,28,1409,296, + 25,23,50,1467,106,76,77,79,3279,35, + 1032,32,718,6984,27,30,31,1052,1067,26, + 28,1409,296,25,23,50,1467,106,76,77, + 78,2984,35,1032,32,718,6984,27,30,31, + 1052,1067,26,28,1409,296,25,23,50,1467, + 106,76,77,104,3279,35,1032,32,718,6984, + 27,30,31,1052,1067,26,28,1409,296,25, + 23,50,1467,106,76,77,110,3279,35,1032, + 32,718,6984,27,30,31,1052,1067,26,28, + 1409,296,25,23,50,1467,106,76,77,109, + 3279,35,1032,32,718,6984,27,30,31,1052, + 1067,26,28,1409,296,25,23,50,1467,106, + 76,77,107,3279,35,1032,32,718,6984,27, + 30,31,1052,1067,26,28,1409,296,25,23, + 50,1467,106,76,77,105,3225,35,1032,32, + 718,6984,27,30,31,1052,1067,26,28,1409, + 296,25,23,50,1467,86,76,77,1576,243, + 35,1108,425,4235,6984,2055,35,1108,425,6984, + 6984,1843,6984,6984,6984,6984,4235,6984,6984,6984, + 243,35,1108,425,1932,262,6984,6984,6984,4235, + 6984,49,6984,157,35,1108,425,308,262,6984, + 6984,6984,2129,47,6984,6984,239,249,903,6984, + 6984,262,49,6984,238,246,247,248,250,239, + 249,903,6984,2129,47,49,1718,238,246,247, + 248,250,239,249,903,6984,2129,2619,6984,6984, + 238,246,247,248,250,6984,6984,1765,240,242, + 244,3263,6984,251,241,243,3544,35,1108,425, + 4742,240,242,244,3263,6984,251,241,243,272, + 296,3413,6984,6984,240,242,244,3263,6984,251, + 241,243,6984,6984,6984,6984,6984,6984,308,1869, + 6984,6047,6984,6984,6984,6984,6984,72,6984,6984, + 6984,6984,1916,6984,6047,6984,6984,266,6984,6984, + 6984,6984,6984,6984,6984,1963,6984,6047,6984,6984, + 6984,6984,6984,6984,6984,270,264,265,1360,35, + 1032,32,4804,6984,27,30,31,1052,1067,375, + 28,2066,35,1032,32,4230,4187,27,30,31, + 1052,1067,375,28,2144,35,1108,425,6984,6984, + 2021,6984,309,6984,6984,4235,277,280,283,627, + 707,6984,6984,6984,6984,6984,1665,6984,6984,6984, + 440,4235,2136,6984,6984,6984,49,262,6984,6984, + 6984,6984,6984,6984,6984,286,369,2129,47,6984, + 355,901,357,262,6984,351,891,6984,239,249, + 903,6984,6984,352,3347,357,238,246,247,248, + 250,647,6984,6984,239,249,903,6984,6984,6984, + 6984,6984,238,246,247,248,250,1754,243,35, + 1108,425,4235,6984,6984,243,35,1108,425,6984, + 240,242,244,3263,6984,582,241,243,157,35, + 1108,425,6984,6984,262,6984,240,242,244,3263, + 49,581,241,243,6984,6984,6984,49,6984,6984, + 6984,2129,47,6984,6984,239,249,903,2129,47, + 49,6984,6984,238,246,247,248,250,2110,6984, + 6984,2129,2884,4235,6984,1812,6984,6984,6984,6984, + 6984,2199,1859,2624,6984,6984,4235,6984,6984,6984, + 6984,6984,6984,6984,6984,262,6984,240,242,244, + 3263,6984,252,241,243,6984,6984,1179,262,6984, + 6984,4333,4235,6984,6984,6984,239,249,903,3642, + 35,554,6984,6984,238,246,247,248,250,239, + 249,903,272,296,262,6984,6984,238,246,247, + 248,250,1378,6984,6984,6984,3377,4235,6984,2467, + 35,1108,425,6984,6984,1210,444,5951,240,242, + 244,3263,6984,341,241,243,6984,6984,6984,3849, + 266,240,242,244,3263,1296,536,241,243,4333, + 4235,49,6984,6984,6984,6984,6984,6984,270,264, + 265,6984,2129,47,6984,6984,2136,445,446,447, + 3263,1378,262,6984,6984,3377,4235,2826,6984,6984, + 368,6984,600,6984,6984,6984,993,6984,6984,6984, + 6984,69,3250,1210,444,5951,600,6984,3849,277, + 280,283,627,707,379,189,6984,6984,6984,6984, + 4585,6984,6984,6984,221,396,6984,6984,379,189, + 6984,69,6984,6984,6984,2136,600,6984,3274,2601, + 3077,2245,2268,6984,6984,445,446,447,3263,368, + 6984,6984,6984,645,6984,6984,6984,6984,379,189, + 6984,6984,6984,6984,448,450,2670,6984,2928,6984, + 3250,4235,6984,6984,6984,69,6984,3118,6984,4666, + 4235,6984,6984,645,396,69,6984,563,564,569, + 600,1131,69,379,6215,6984,593,600,6984,3077, + 2245,2268,379,223,69,6984,6984,3387,6984,4235, + 6984,69,379,189,6984,6984,600,6984,645,379, + 189,6984,221,69,6984,6984,6984,645,4235,221, + 69,379,448,451,6984,4235,6984,2601,379,189, + 6984,6984,596,6984,2601,6984,6984,6984,221,6984, + 379,2366,6984,6984,6984,6984,645,379,6984,6984, + 6984,6984,6984,2601,6984,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,645,6984,6984,6984,6984, + 2423,6984,645,6984,3583,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,6984,6984,6984,6984,3674, + 6984,4254,6984,6984,6984,6984,597,6984,4269,6984, + 6984,6984,6984,6984,6984,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,6984,6984,4271,6984,6984, + 6984,6984,6984,6984,6984,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,6984,6984,6984,6984,6984, + 6984,6984,3935,6984,0,758,1,0,919,1, + 0,39,1,6999,0,39,1,6998,0,799, + 1,0,39,6999,0,39,6998,0,1153,354, + 0,1309,29,0,477,1361,0,491,1363,0, + 6999,48,0,6998,48,0,38,814,0,38, + 6999,0,38,6998,0,6990,1,0,6989,1, + 0,318,431,0,318,323,0,7252,275,0, + 7251,275,0,7358,275,0,7357,275,0,7279, + 275,0,7278,275,0,7277,275,0,7276,275, + 0,7275,275,0,7274,275,0,7273,275,0, + 7272,275,0,7291,275,0,7290,275,0,7289, + 275,0,7288,275,0,7287,275,0,7286,275, + 0,7285,275,0,7284,275,0,7283,275,0, + 7282,275,0,7281,275,0,39,275,6999,0, + 39,275,6998,0,7022,275,0,1309,424,0, + 4052,126,0,35,33,0,1,481,0,495, + 1165,0,494,1305,0,47,37,0,7022,1, + 0,39,1,0,639,91,0,32,34,0, + 39,814,0,1,1117,0,1,7291,0,1, + 7290,0,1,7289,0,1,7288,0,1,7287, + 0,1,7286,0,1,7285,0,1,7284,0, + 1,7283,0,1,7282,0,1,7281,0,43, + 7020,0,43,37,0,538,3262,0,7022,1, + 263,0,39,1,263,0,263,453,0,6999, + 37,0,6998,37,0,271,4425,0,425,32, + 0,424,29,0,4052,128,0,4052,127,0, + 1,5746,0,1,5385,0,1,5442,0,1, + 5509,0,1,5532,0,1,5561,0,1,5585, + 0,1,5608,0,1,2284,0,1,5416,0, + 1,7006,0,1,7005,0,1,7004,0,1, + 7003,0,1,7002,0,1,7001,0,1,7000, + 0,1,1119,0,1,1163,0,1,1178,0, + 1,1203,0,1,1282,0,1,672,0,367, + 482,0,6994,442,0,6993,442,0,1,2469, + 0,1,814,0,263,452,0,1,92,0, + 275,6999,0,275,6998,0,7020,45,0,37, + 45,0,1,367,0,2,6999,37,0,2, + 6998,37,0,6999,36,0,6998,36,0,538, + 5986,0,1,263,0,367,95,0,35,73, + 0,263,254,0,313,4934,0,263,253,0, + 6996,1,0,6992,1,0,1,263,3573,0, + 6993,263,0,3574,263,0,6996,420,0,6995, + 420,0,3586,263,0,10,12,0,8,10, + 12,0,3656,227,0,218,5147,0,3659,420, + 0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1097,350 +1413,394 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 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,42,43,44,45,46,47,48,49, - 50,51,52,53,54,0,56,57,58,59, - 60,61,62,0,64,65,66,67,0,1, - 2,71,4,10,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,0,56,57,58,59, + 0,61,62,63,4,65,66,67,0,69, + 0,1,2,73,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,0,42,43, + 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,0,56,57,58,59,60,61,62,0, - 64,65,66,67,0,1,2,71,4,0, + 86,87,56,57,58,59,0,61,62,63, + 95,65,66,67,0,69,0,1,2,73, 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,0,42,43,44,45,46,47, - 48,49,50,51,52,53,54,100,56,57, - 58,59,60,61,62,0,64,65,66,67, - 99,6,0,71,0,3,74,75,76,77, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,0,0,56,57, + 58,59,0,61,62,63,0,65,66,67, + 94,69,0,1,2,73,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,55, + 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,58,59,60,61, - 62,0,64,65,66,67,5,92,93,0, - 1,2,74,75,76,77,78,79,80,81, + 52,53,0,0,56,57,58,59,0,61, + 62,63,96,65,66,67,94,69,92,93, + 0,0,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,0,42,43,44,45, - 46,47,48,49,50,51,52,53,54,0, - 56,57,58,59,60,61,62,0,64,65, - 66,67,99,6,0,1,2,0,74,75, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,86,87, + 56,57,58,59,0,61,62,63,4,65, + 66,67,94,69,101,102,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,72,42,43,44,45,46,47,48,49, - 50,51,52,53,54,68,56,57,58,59, - 60,61,62,0,64,65,66,67,0,92, - 93,0,1,2,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,0,56,57,58,59, + 0,61,62,63,4,65,66,67,0,69, + 0,1,2,5,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,0,42,43, + 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,0,56,57,58,59,60,61,62,0, - 64,65,66,67,0,6,0,89,0,91, + 86,87,56,57,58,59,0,61,62,63, + 95,65,66,67,0,69,0,0,0,0, 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,55,42,43,44,45,46,47, - 48,49,50,51,52,53,54,100,56,57, - 58,59,60,61,62,0,64,65,66,67, - 0,92,93,87,88,0,74,75,76,77, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,0,70,56,57, + 58,59,0,61,62,63,0,65,66,67, + 94,69,86,87,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,0, + 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,68,56,57,58,59,60,61, - 62,0,64,65,66,67,0,1,2,0, - 0,5,74,75,76,77,78,79,80,81, + 52,53,86,87,56,57,58,59,0,61, + 62,63,0,65,66,67,0,69,92,93, + 0,0,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,55,42,43,44,45, - 46,47,48,49,50,51,52,53,54,70, - 56,57,58,59,60,61,62,0,64,65, - 66,67,0,1,2,0,4,0,74,75, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,0,68, + 56,57,58,59,0,61,62,63,4,65, + 66,67,0,69,92,93,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,0,42,43,44,45,46,47,48,49, - 50,51,52,53,54,70,56,57,58,59, - 60,61,62,0,64,65,66,67,0,6, - 0,0,9,3,74,75,76,77,78,79, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,86,87,56,57,58,59, + 0,61,62,63,0,65,66,67,0,69, + 0,1,2,0,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,0,42,43, + 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,70,56,57,58,59,60,61,62,0, - 64,65,66,67,0,1,2,89,0,91, + 0,68,56,57,58,59,0,61,62,63, + 4,65,66,67,0,69,0,1,2,95, 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,55,42,43,44,45,46,47, - 48,49,50,51,52,53,54,0,56,57, - 58,59,60,61,62,0,64,65,66,67, - 0,0,0,1,2,4,74,75,76,77, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,0,0,56,57, + 58,59,6,61,62,63,96,65,66,67, + 0,69,0,1,2,0,74,75,76,77, 78,79,80,81,82,83,84,85,0,1, - 2,3,4,5,6,7,0,9,10,11, + 2,3,4,5,6,7,8,0,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,41,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,0, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,55,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,0,56,57,58,4,0,61, + 52,53,0,68,56,57,58,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,0,1,2,0,4,39,0,41, + 0,1,2,3,4,5,6,7,8,0, + 0,0,0,55,56,57,58,5,0,61, + 62,63,0,1,2,3,4,120,6,71, + 8,73,34,35,23,24,0,0,1,2, + 3,4,5,6,7,8,88,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 60,71,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,0, + 0,99,100,3,39,0,41,0,3,9, + 5,0,7,0,9,0,1,2,0,4, + 55,56,57,58,0,7,61,62,63,0, + 1,2,3,4,0,6,71,8,73,34, + 35,36,37,0,39,34,35,0,1,2, + 0,4,5,88,7,0,9,0,0,54, + 60,3,55,0,64,60,9,0,68,64, + 55,0,72,68,3,70,71,72,73,114, + 115,116,0,1,2,3,4,5,6,7, + 8,86,87,0,89,90,91,92,93,94, + 95,96,97,98,99,100,101,102,103,104, + 105,106,107,108,109,110,111,112,60,72, + 120,54,117,118,119,0,92,93,3,72, + 5,64,7,70,9,0,1,2,3,4, + 97,6,60,8,97,0,1,2,3,4, + 5,96,7,0,97,0,89,90,0,34, + 35,36,37,5,39,7,0,22,23,24, + 25,26,27,28,29,30,31,32,33,54, + 0,1,2,3,4,60,6,0,8,64, + 97,4,5,68,7,70,71,72,73,0, + 0,0,0,1,2,60,71,54,6,64, + 8,86,87,68,89,90,91,92,93,94, + 95,96,97,98,99,100,101,102,103,104, + 105,106,107,108,109,110,111,112,0,0, + 60,0,117,118,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,0, + 1,2,3,4,39,6,41,8,0,1, + 2,91,4,5,55,7,95,0,98,0, + 55,56,57,58,0,64,61,62,63,68, + 65,0,1,2,0,4,0,3,73,22, + 23,24,25,26,27,28,29,30,31,32, + 33,0,0,88,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,64,70, + 0,1,2,39,4,41,6,0,8,0, + 1,2,0,4,70,6,70,8,54,55, + 56,57,58,0,0,61,62,63,0,65, + 101,102,103,104,105,106,107,108,109,110, + 111,112,0,1,2,3,4,5,6,7, + 8,0,88,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,0,1,2, + 0,68,39,6,41,8,0,7,70,0, + 1,2,60,4,5,54,7,0,55,56, + 57,58,70,0,61,62,63,4,65,0, + 1,2,3,4,0,6,73,8,9,101, + 102,103,104,105,106,107,108,109,110,111, + 112,88,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,0,70,54,60, + 0,39,0,41,0,0,1,2,4,4, + 5,72,7,0,0,0,0,55,56,57, + 58,0,9,61,62,63,22,65,7,0, + 34,35,0,89,90,73,22,23,24,25, + 26,27,28,29,30,31,32,33,0,0, + 88,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,72,54,0,1,2, + 39,4,41,0,1,2,64,4,5,70, + 7,0,54,0,0,0,55,56,57,58, + 0,96,61,62,63,10,65,0,114,115, + 116,89,90,0,73,22,23,24,25,26, + 27,28,29,30,31,32,33,89,90,88, 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,0,1,2,40,39, - 0,41,0,1,2,3,4,5,55,7, - 8,0,0,0,0,3,56,57,58,59, - 60,8,62,23,24,0,120,25,89,0, - 91,71,72,22,23,24,0,26,27,28, - 29,30,31,32,33,34,86,22,23,24, - 0,26,27,28,29,30,31,32,33,34, - 65,66,0,103,104,105,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,39,0,1,2,39,4,41,6,0, - 0,9,3,0,0,6,3,8,9,90, - 10,0,56,57,58,59,60,0,62,8, - 0,118,0,3,25,3,9,71,72,103, - 104,105,0,0,35,36,37,38,98,39, - 0,41,86,0,1,2,3,4,5,6, - 7,0,9,0,55,0,0,37,38,103, - 104,105,63,0,1,2,63,68,69,70, - 71,72,73,0,1,2,3,4,5,6, - 7,0,9,63,73,4,87,88,89,90, - 91,92,93,94,95,96,97,98,99,100, - 101,90,70,22,41,106,107,108,109,110, - 111,112,113,114,115,116,117,118,119,0, - 0,70,3,68,69,6,106,8,9,0, - 0,1,2,3,4,5,63,7,0,119, - 87,88,4,70,25,0,0,1,2,3, - 4,5,101,7,35,36,37,38,107,108, - 109,110,111,112,113,114,115,116,117,0, - 41,0,0,4,55,55,0,1,2,3, - 4,5,63,7,103,104,105,68,69,70, - 71,72,73,22,23,24,0,26,27,28, - 29,30,31,32,33,34,87,88,89,90, - 91,92,93,94,95,96,97,98,99,100, - 101,0,1,2,55,106,107,108,109,110, - 111,112,113,114,115,116,117,118,119,0, + 30,31,32,33,0,1,2,60,0,39, + 6,41,4,60,0,0,1,2,3,4, + 0,6,91,8,9,55,56,57,58,98, + 22,61,62,63,0,65,22,23,24,25, + 26,27,28,29,30,31,32,33,114,115, + 116,0,1,2,39,0,0,0,88,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,0,1,2,0,39,5, - 41,7,0,1,2,0,4,5,0,7, - 0,3,96,97,0,56,57,58,59,60, - 0,62,0,64,0,1,2,22,23,24, - 71,26,27,28,29,30,31,32,33,34, - 0,1,2,41,4,86,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,41,0,1,2,39,72,41,0,1, - 2,69,4,5,0,7,0,87,88,0, - 4,55,56,57,58,59,60,8,62,89, - 64,91,0,1,2,3,4,5,22,7, - 8,0,1,2,3,4,5,6,7,41, - 9,0,86,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,69,0, - 71,0,39,0,41,63,0,1,2,0, - 4,5,9,7,63,73,0,0,0,56, - 57,58,59,60,63,62,8,64,0,0, - 1,2,0,4,71,6,8,8,9,0, - 1,2,3,4,5,6,7,0,9,86, - 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,67,87,88,41,39, - 0,41,0,1,2,3,4,5,0,7, - 8,73,73,87,88,0,56,57,58,59, - 60,72,62,8,64,0,0,25,0,90, - 0,71,0,1,2,3,4,0,6,0, - 3,9,0,1,2,8,86,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,67,41,0,55,39,0,41,0, - 1,2,0,4,5,63,7,0,1,2, - 63,75,72,56,57,58,59,60,69,62, - 73,64,0,1,2,3,4,5,71,7, - 0,1,2,3,4,5,101,7,0,1, - 2,0,107,86,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,41, - 0,1,2,39,4,41,6,90,0,9, - 0,1,2,63,72,5,55,7,10,0, - 56,57,58,59,60,0,62,8,64,0, - 1,2,0,4,0,6,0,0,9,0, - 1,2,0,4,25,6,0,39,9,41, - 86,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,0,1,2,55, - 39,5,41,0,1,2,0,0,61,6, - 0,4,68,6,68,69,9,56,57,58, - 59,60,70,62,68,64,0,0,0,0, - 3,3,0,1,2,0,8,41,94,95, - 8,35,36,0,41,35,36,86,0,1, + 31,32,33,0,1,2,0,41,39,3, + 41,0,68,0,0,1,2,3,4,0, + 6,91,8,9,55,56,57,58,98,64, + 61,62,63,68,65,22,23,24,25,26, + 27,28,29,30,31,32,33,0,1,2, + 3,4,5,39,7,0,0,88,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,0,0,1,2,39,0,41, - 63,63,0,0,68,0,68,69,63,67, - 8,73,0,10,56,57,58,59,60,0, - 62,68,64,0,1,2,0,1,2,0, - 1,2,0,35,36,0,0,1,2,3, - 4,5,6,7,86,9,10,11,12,13, - 14,15,16,17,18,19,20,21,120,65, - 66,0,59,0,41,4,3,41,63,0, - 41,35,36,37,38,73,40,8,42,43, + 32,33,0,1,2,0,4,39,6,41, + 8,0,0,1,2,0,4,60,6,0, + 8,0,7,55,56,57,58,0,9,61, + 62,63,0,65,0,1,2,3,4,5, + 6,7,8,0,10,11,12,13,14,15, + 16,17,18,19,20,21,88,55,0,1, + 2,0,1,2,0,1,2,55,34,35, + 36,37,38,9,40,54,42,43,44,45, + 46,47,48,49,50,51,52,53,0,1, + 2,72,71,59,6,0,0,0,64,3, + 66,67,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,66,67,0,66,67,3, + 0,1,2,69,91,5,34,35,36,37, + 38,98,40,55,42,43,44,45,46,47, + 48,49,50,51,52,53,60,60,0,64, + 64,59,0,0,68,0,3,9,0,0, + 0,69,10,5,9,73,0,1,2,3, + 4,5,6,7,8,55,10,11,12,13, + 14,15,16,17,18,19,20,21,0,1, + 2,0,0,41,39,0,0,5,3,0, + 34,35,36,37,38,0,40,55,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,0,0,0,25,0,0,61,63,8, - 8,65,66,8,68,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,0,96,97, - 0,0,0,70,4,8,0,41,69,8, - 35,36,37,38,8,40,0,42,43,44, - 45,46,47,48,49,50,51,52,53,54, - 69,25,69,71,73,0,61,0,73,0, - 1,2,67,8,0,8,71,0,1,2, - 3,4,5,6,7,55,9,10,11,12, - 13,14,15,16,17,18,19,20,21,0, - 73,55,71,0,1,2,0,0,0,0, - 0,0,35,36,37,38,8,40,8,42, - 43,44,45,46,47,48,49,50,51,52, - 53,54,0,25,102,25,71,0,61,0, - 73,4,65,66,0,1,2,3,4,5, - 6,7,0,9,10,11,12,13,14,15, - 16,17,18,19,20,21,55,68,0,0, - 0,3,98,3,68,6,69,68,0,35, - 36,37,38,0,40,0,42,43,44,45, - 46,47,48,49,50,51,52,53,54,0, - 0,0,3,3,3,61,74,55,69,65, - 66,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,55,0,0,0,0,55,0, - 55,0,0,0,3,3,35,36,37,38, - 0,40,0,42,43,44,45,46,47,48, - 49,50,51,52,53,54,0,0,0,0, - 4,0,61,0,0,40,3,0,67,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,0,0,0,3,55,72,55,72,70, - 0,0,0,70,35,36,37,38,68,40, - 0,42,43,44,45,46,47,48,49,50, - 51,52,53,54,63,0,0,63,0,72, - 61,72,4,40,94,95,67,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,0, - 0,69,3,3,0,55,0,3,0,102, - 70,69,35,36,37,38,0,40,0,42, - 43,44,45,46,47,48,49,50,51,52, - 53,54,0,0,69,0,3,0,5,6, - 3,0,9,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,0,26,27, - 28,29,30,31,32,33,34,0,35,36, - 37,38,0,0,0,42,0,3,72,0, - 0,0,3,3,3,0,10,121,55,0, - 72,0,3,0,0,118,63,0,65,66, - 0,68,69,70,0,70,90,0,0,0, - 102,70,0,0,0,39,0,41,0,0, - 87,88,89,0,0,92,93,94,95,96, - 97,98,99,100,101,0,60,0,0,106, - 55,108,109,110,111,112,113,114,115,116, - 117,0,1,2,3,4,5,6,7,102, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,0,0,0,0,0,0, - 0,0,0,0,0,0,35,36,37,38, - 0,40,0,42,43,44,45,46,47,48, - 49,50,51,52,53,54,0,0,0,0, - 0,0,61,0,1,2,3,4,5,6, - 7,0,9,10,11,12,13,14,15,16, - 17,18,19,20,21,0,0,0,0,0, - 0,0,0,0,0,0,0,0,35,36, - 37,38,0,40,0,42,43,44,45,46, - 47,48,49,50,51,52,53,54,0,1, - 2,3,4,5,6,7,63,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,35,36,37,38,0,40,0, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,0,0,0,0,0,0,61, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,0,0,0,0,0,0,0,0, - 0,0,0,0,0,35,36,37,38,0, - 40,0,42,43,44,45,46,47,48,49, - 50,51,52,53,54,0,1,2,3,4, - 5,6,7,0,9,10,11,12,13,14, - 15,16,17,18,19,20,21,0,0,0, - 0,0,0,0,0,0,0,0,0,0, + 0,1,2,68,64,59,0,1,2,0, + 1,2,66,67,0,1,2,3,4,5, + 6,7,8,55,10,11,12,13,14,15, + 16,17,18,19,20,21,0,99,100,54, + 64,0,71,64,0,9,118,0,34,35, + 36,37,38,9,40,55,42,43,44,45, + 46,47,48,49,50,51,52,53,0,1, + 2,99,100,59,89,90,0,0,0,0, + 66,67,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,68,0,0,0,72,68, + 3,64,0,69,9,9,34,35,36,37, + 38,9,40,55,42,43,44,45,46,47, + 48,49,50,51,52,53,0,1,2,0, + 0,59,64,4,0,0,0,71,3,9, + 71,69,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,68,0,0,0,73,73, + 3,69,38,0,9,9,34,35,36,37, + 38,55,40,54,42,43,44,45,46,47, + 48,49,50,51,52,53,0,1,2,0, + 0,59,0,73,39,39,70,0,9,9, + 3,69,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,0,0,0,64,3,39, + 0,0,0,3,0,9,34,35,36,37, + 38,55,40,9,42,43,44,45,46,47, + 48,49,50,51,52,53,0,0,0,0, + 3,72,5,6,7,0,74,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 60,34,35,36,37,71,38,40,72,0, + 0,0,3,71,3,0,0,73,9,0, + 10,54,86,87,55,0,0,60,0,10, + 118,64,4,66,67,68,0,70,22,23, + 24,25,26,27,28,29,30,31,32,33, + 75,41,0,86,87,0,89,90,91,92, + 93,94,95,96,9,55,99,100,101,60, + 103,104,105,106,107,108,109,110,111,112, + 61,72,54,68,117,0,1,2,3,4, + 5,6,7,8,39,10,11,12,13,14, + 15,16,17,18,19,20,21,0,1,2, + 0,0,60,3,3,0,0,0,0,34, 35,36,37,38,0,40,0,42,43,44, - 45,46,47,48,49,50,51,52,53,54, - 0,1,2,3,4,5,6,7,0,9, + 45,46,47,48,49,50,51,52,53,22, + 23,24,25,26,27,28,29,30,31,32, + 33,66,67,0,1,2,3,4,5,6, + 7,8,55,10,11,12,13,14,15,16, + 17,18,19,20,21,60,0,59,54,3, + 54,0,0,1,2,0,0,34,35,36, + 37,38,0,40,0,42,43,44,45,46, + 47,48,49,50,51,52,53,0,0,0, + 3,3,59,0,1,2,3,4,5,6, + 7,8,0,10,11,12,13,14,15,16, + 17,18,19,20,21,54,0,55,0,54, + 54,3,0,0,0,64,54,34,35,36, + 37,38,10,40,0,42,43,44,45,46, + 47,48,49,50,51,52,53,0,0,0, + 89,90,0,60,0,1,2,3,4,5, + 6,7,8,41,10,11,12,13,14,15, + 16,17,18,19,20,21,0,55,54,3, + 0,0,0,0,62,0,0,4,34,35, + 36,37,38,0,40,121,42,43,44,45, + 46,47,48,49,50,51,52,53,0,0, + 0,3,0,59,0,1,2,3,4,5, + 6,7,8,71,10,11,12,13,14,15, + 16,17,18,19,20,21,54,54,0,54, + 54,0,0,0,0,0,64,54,34,35, + 36,37,38,0,40,0,42,43,44,45, + 46,47,48,49,50,51,52,53,0,0, + 0,89,90,59,0,1,2,3,4,5, + 6,7,8,71,10,11,12,13,14,15, + 16,17,18,19,20,21,54,54,54,0, + 0,0,0,0,0,3,68,97,34,35, + 36,37,38,0,40,70,42,43,44,45, + 46,47,48,49,50,51,52,53,0,0, + 0,3,3,59,0,1,2,3,4,5, + 6,7,8,0,10,11,12,13,14,15, + 16,17,18,19,20,21,0,0,0,0, + 0,3,0,0,0,0,9,54,34,35, + 36,37,38,70,40,71,42,43,44,45, + 46,47,48,49,50,51,52,53,0,1, + 2,3,4,5,6,7,8,0,10,11, + 12,13,14,15,16,17,18,19,20,21, + 0,0,113,113,71,0,0,0,0,0, + 9,0,34,35,36,37,38,0,40,72, + 42,43,44,45,46,47,48,49,50,51, + 52,53,0,1,2,3,4,5,6,7, + 8,0,10,11,12,13,14,15,16,17, + 18,19,20,21,0,38,0,70,0,113, + 0,0,113,0,0,0,34,35,36,37, + 38,0,40,72,42,43,44,45,46,47, + 48,49,50,51,52,53,0,1,2,3, + 4,5,6,7,8,0,10,11,12,13, + 14,15,16,17,18,19,20,21,0,0, + 0,70,0,0,0,0,0,0,0,0, + 34,35,36,37,38,0,40,0,42,43, + 44,45,46,47,48,49,50,51,52,53, + 0,1,2,3,4,5,6,7,8,0, 10,11,12,13,14,15,16,17,18,19, 20,21,0,0,0,0,0,0,0,0, - 0,0,0,0,0,35,36,37,38,0, + 0,0,0,0,34,35,36,37,38,0, 40,0,42,43,44,45,46,47,48,49, - 50,51,52,53,54,0,1,2,0,4, - 0,0,0,0,0,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 0,26,27,28,29,30,31,32,33,34, - 0,0,0,0,39,0,0,0,0,0, - 0,0,0,0,0,1,2,0,4,0, - 0,56,57,58,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,0, - 26,27,28,29,30,31,32,33,34,0, - 0,0,0,39,0,1,2,3,4,5, - 6,7,8,9,0,0,0,0,0,0, - 56,57,58,0,0,0,22,23,24,25, - 26,27,28,29,30,31,32,33,34,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,55,0,0,0,55, - 0,0,0,0,0,0,0,63,68,0, - 0,0,0,0,0,0,0,73,0,1, - 2,3,4,5,6,7,8,9,0,0, - 0,0,0,0,94,95,0,0,0,0, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,0,0,0,0,0,0,0, + 50,51,52,53,0,1,2,0,4,0, + 0,0,0,0,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,0,0, + 0,0,0,0,0,41,0,0,0,0, + 0,0,0,0,1,2,0,4,0,0, + 56,57,58,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,0,0,0, + 0,0,0,0,41,0,0,0,0,0, + 0,0,0,1,2,0,0,0,0,56, + 57,58,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,0,0,0,0, + 0,0,0,41,0,0,0,0,0,0, + 0,0,1,2,0,0,0,3,56,57, + 58,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,0,0,0,0,0, + 36,37,41,0,1,2,3,4,5,6, + 7,8,9,0,0,0,0,56,57,58, + 0,0,0,0,60,22,23,24,25,26, + 27,28,29,30,31,32,33,0,0,0, + 0,0,39,22,23,24,25,26,27,28, + 29,30,31,32,33,0,0,54,0,0, + 0,0,0,60,0,1,2,3,4,5, + 6,7,8,9,0,72,0,0,0,0, + 0,117,0,119,0,0,22,23,24,25, + 26,27,28,29,30,31,32,33,0,0, + 0,0,0,39,0,0,0,0,0,0, + 0,0,0,0,0,0,1,2,3,4, + 5,0,7,0,60,0,0,0,0,0, + 0,0,0,0,0,0,72,22,23,24, + 25,26,27,28,29,30,31,32,33,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,63,0,0,0,0,0,0,0,0, - 0,73,0,0,0,0,0,0,0,0, + 0,0,0,0,0,60,0,0,0,64, + 0,0,0,68,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,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; @@ -1448,349 +1808,393 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface TermAction { public final static char termAction[] = {0, - 5370,5332,5308,5308,5308,5308,5308,5308,5348,5308, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5336,1,1,1,1, + 6984,6946,6922,6922,6922,6922,6922,6922,6922,6962, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,334,1,1,1,1942, - 5545,1,1202,304,3612,1,1,5381,290,5062, - 5062,5377,285,5673,1450,3794,3667,2201,3439,3695, - 3197,3769,1555,3750,2990,3744,10,5351,5351,5351, - 5351,5351,5351,5351,5351,5351,5351,5351,5351,5351, - 5351,5351,5351,5351,5351,5351,5351,5351,5351,5351, - 5351,5351,5351,5351,5351,5351,5351,5351,5351,5351, - 5351,5351,5351,5351,5351,5351,5351,137,5351,5351, - 5351,5351,5351,5351,5351,5351,5351,5351,5351,5351, - 5351,135,5351,5351,5351,5351,5351,5351,5351,399, - 5351,5351,5351,5351,5370,5023,5020,5351,5408,300, - 5351,5351,5351,5351,5351,5351,5351,5351,5351,5351, - 5351,5351,8,5354,5354,5354,5354,5354,5354,5354, - 5354,5354,5354,5354,5354,5354,5354,5354,5354,5354, - 5354,5354,5354,5354,5354,5354,5354,5354,5354,5354, - 5354,5354,5354,5354,5354,5354,5354,5354,5354,5354, - 5354,5354,5354,388,5354,5354,5354,5354,5354,5354, - 5354,5354,5354,5354,5354,5354,5354,2288,5354,5354, - 5354,5354,5354,5354,5354,115,5354,5354,5354,5354, - 2323,3771,5370,5354,5370,4792,5354,5354,5354,5354, - 5354,5354,5354,5354,5354,5354,5354,5354,5370,5332, - 5308,5308,5308,5308,5308,5308,5339,5308,1,1, + 1,1,1,1,1,1,1,1,1,6950, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5336,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,922, + 1,1,1,1,121,135,1,1,1,1, + 39,2562,7192,1558,7022,3487,1,1,1,6995, + 434,6998,6999,6991,2498,3580,3434,3319,3376,3569, + 4713,3579,729,3578,3915,3577,10,6965,6965,6965, + 6965,6965,6965,6965,6965,6965,6965,6965,6965,6965, + 6965,6965,6965,6965,6965,6965,6965,6965,6965,6965, + 6965,6965,6965,6965,6965,6965,6965,6965,6965,6965, + 6965,6965,6965,6965,6965,6965,6965,6965,6965,6965, + 6965,6965,6965,6965,6965,6965,6965,6965,6965,6965, + 4307,4395,6965,6965,6965,6965,133,6965,6965,6965, + 3501,6965,6965,6965,367,6965,6984,6998,6999,6965, + 6965,6965,6965,6965,6965,6965,6965,6965,6965,6965, + 6965,6965,8,6968,6968,6968,6968,6968,6968,6968, + 6968,6968,6968,6968,6968,6968,6968,6968,6968,6968, + 6968,6968,6968,6968,6968,6968,6968,6968,6968,6968, + 6968,6968,6968,6968,6968,6968,6968,6968,6968,6968, + 6968,6968,6968,6968,6968,6968,6968,6968,6968,6968, + 6968,6968,6968,6968,6968,6968,137,432,6968,6968, + 6968,6968,134,6968,6968,6968,129,6968,6968,6968, + 3593,6968,6984,6583,6580,6968,6968,6968,6968,6968, + 6968,6968,6968,6968,6968,6968,6968,6968,6984,6946, + 6922,6922,6922,6922,6922,6922,6922,6953,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,136,1,1,1,1942,5545,1, - 1202,5370,3612,1,1,5381,2874,3746,3721,401, - 5384,5385,1450,3794,3667,2201,3439,3695,3197,3769, - 1555,3750,2990,3744,5370,5332,5308,5308,5308,5308, - 5308,5308,5339,5308,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5336, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5370,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5370, - 1,1,1,1942,5545,1,1202,117,3612,1, - 1,5381,2323,3771,5370,5384,5385,5370,1450,3794, - 3667,2201,3439,3695,3197,3769,1555,3750,2990,3744, - 5370,5332,5308,5308,5308,5308,5308,5308,5339,5308, + 1,1,1,1,1,1,1,6950,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5336,1,1,1,1, + 1,1,125,139,1,1,1,1,153,2562, + 7192,1558,1324,3487,1,1,3593,6995,3790,3758, + 124,333,2498,3580,3434,3319,3376,3569,4713,3579, + 729,3578,3915,3577,6984,6946,6922,6922,6922,6922, + 6922,6922,6922,6953,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1989,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3393,1,1,1,1942, - 5545,1,1202,5370,3612,1,1,5381,111,3746, - 3721,5370,5041,5038,1450,3794,3667,2201,3439,3695, - 3197,3769,1555,3750,2990,3744,5370,5332,5308,5308, - 5308,5308,5308,5308,5339,5308,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5336,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,138,1,1, + 1,1,1,6950,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,4307,4395, + 1,1,1,1,6984,2562,7192,1558,2663,3487, + 1,1,3628,6995,1080,4229,4307,4395,2498,3580, + 3434,3319,3376,3569,4713,3579,729,3578,3915,3577, + 6984,6946,6922,6922,6922,6922,6922,6922,6922,6953, 1,1,1,1,1,1,1,1,1,1, - 1,5370,1,1,1,1942,5545,1,1202,116, - 3612,1,1,5381,5370,3771,121,4003,29,4026, - 1450,3794,3667,2201,3439,3695,3197,3769,1555,3750, - 2990,3744,5370,5332,5308,5308,5308,5308,5308,5308, - 5339,5308,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5336,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5029,1,1,1,1,1,1, - 1,1,1,1,1,1,1,2288,1,1, - 1,1942,5545,1,1202,5370,3612,1,1,5381, - 5370,3746,3721,2915,2942,5370,1450,3794,3667,2201, - 3439,3695,3197,3769,1555,3750,2990,3744,5370,5332, - 5308,5308,5308,5308,5308,5308,5339,5308,1,1, + 1,1,1,1,1,1,1,1,1,6950, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5336,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5370, + 1,1,1,1,123,136,1,1,1,1, + 432,2562,7192,1558,425,3487,1,1,6984,6995, + 48,6583,6580,1755,2498,3580,3434,3319,3376,3569, + 4713,3579,729,3578,3915,3577,6984,6946,6922,6922, + 6922,6922,6922,6922,6922,6953,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3405,1,1,1,1942,5545,1, - 1202,5370,3612,1,1,5381,5370,5384,5385,512, - 444,2874,1450,3794,3667,2201,3439,3695,3197,3769, - 1555,3750,2990,3744,5370,5332,5308,5308,5308,5308, - 5308,5308,5339,5308,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5336, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5032,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3625, - 1,1,1,1942,5545,1,1202,5370,3612,1, - 1,5381,5370,5023,5020,510,5408,5370,1450,3794, - 3667,2201,3439,3695,3197,3769,1555,3750,2990,3744, - 5370,5332,5308,5308,5308,5308,5308,5308,5339,5308, + 1,1,1,1,1,6950,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5336,1,1,1,1, + 4307,4395,1,1,1,1,154,2562,7192,1558, + 3501,3487,1,1,421,6995,122,545,141,6984, + 2498,3580,3434,3319,3376,3569,4713,3579,729,3578, + 3915,3577,6984,6946,6922,6922,6922,6922,6922,6922, + 6922,6953,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5370,1,1,1,1,1,1,1,1, - 1,1,1,1,1,4895,1,1,1,1942, - 5545,1,1202,5370,3612,1,1,5381,114,1187, - 5370,373,968,3388,1450,3794,3667,2201,3439,3695, - 3197,3769,1555,3750,2990,3744,5370,5332,5308,5308, - 5308,5308,5308,5308,5339,5308,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5336,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5370,1,1, + 1,6950,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,145,1200,1,1, + 1,1,6984,2562,7192,1558,130,3487,1,1, + 3628,6995,4307,4395,4307,4395,2498,3580,3434,3319, + 3376,3569,4713,3579,729,3578,3915,3577,6984,6946, + 6922,6922,6922,6922,6922,6922,6922,6953,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1286,1,1,1,1942,5545,1,1202,5370, - 3612,1,1,5381,48,5041,5038,4003,458,4026, - 1450,3794,3667,2201,3439,3695,3197,3769,1555,3750, - 2990,3744,5370,3701,1,1,1,1,1,1, - 3725,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5379,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5035,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5370,1,1, - 1,1942,5545,1,1202,5370,3612,1,1,5381, - 5370,39,37,5163,5163,5408,1450,3794,3667,2201, - 3439,3695,3197,3769,1555,3750,2990,3744,39,5023, - 5020,4748,2567,3819,3888,602,5370,3911,943,5636, - 5634,5643,5642,5638,5639,5637,5640,5641,5644,5635, - 5631,5710,5711,5406,5625,5632,5628,5604,5630,5629, - 5626,5627,5605,3865,3842,3957,3934,5772,5389,113, - 3796,867,1005,5391,869,4122,993,5392,5390,833, - 5386,5387,5388,400,1397,5773,5774,391,5370,1417, - 5370,5230,5230,230,5226,230,230,230,5234,230, + 1,1,1,1,1,1,1,6950,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,230,1,1,1,1, - 1,1,1,1,1,5370,5384,5385,745,1, - 339,5223,1,5013,5009,5267,5017,5273,1369,5270, - 5380,225,91,5370,5370,5172,1,1,1,3209, - 5786,5374,729,5710,5711,226,5002,5379,4003,361, - 4026,420,230,5631,5710,5711,443,5625,5632,5628, - 5604,5630,5629,5626,5627,5605,5874,5631,5710,5711, - 133,5625,5632,5628,5604,5630,5629,5626,5627,5605, - 3980,1098,5370,5809,5810,5811,5370,5230,5230,230, - 5226,230,230,230,5276,230,1,1,1,1, + 1,1,4307,4395,1,1,1,1,6984,2562, + 7192,1558,149,3487,1,1,6984,6995,3790,3758, + 144,398,2498,3580,3434,3319,3376,3569,4713,3579, + 729,3578,3915,3577,6984,6946,6922,6922,6922,6922, + 6922,6922,6922,6953,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,230,1,1,1,1,1,1,1,1, - 1,823,448,1,1,1,1,5223,5154,33, - 1,5154,5151,350,5370,5151,1133,5151,5151,5730, - 5003,1,1,1,1,3209,5786,131,729,366, - 75,5373,238,3679,5151,5243,2387,419,230,5809, - 5810,5811,371,5370,5151,5151,5151,5151,2356,5006, - 5370,575,5874,312,5013,5009,608,5017,585,5288, - 602,139,5288,125,5151,5370,5370,5432,5433,5809, - 5810,5811,5151,43,5220,5220,1059,5151,5151,5151, - 5151,5151,5151,370,5013,5009,589,5017,585,1, - 602,39,1,3548,366,5408,5151,5151,5151,5151, - 5151,5151,5151,5151,5151,5151,5151,5151,5151,5151, - 5151,366,1329,3046,5217,5151,5151,5151,5151,5151, - 5151,5151,5151,5151,5151,5151,5151,5151,5151,5370, - 391,1903,5175,664,2773,5175,810,5175,5175,47, - 1,5013,5009,608,5017,585,1059,602,5370,952, - 2915,2942,735,1198,5175,5370,334,5023,5020,608, - 2567,585,2249,602,5175,5175,5175,5175,4190,1860, - 1817,1774,1731,1688,1645,1602,1559,1516,1460,48, - 2153,227,5370,5385,5175,5145,1,5013,5009,5267, - 5017,5273,5175,5270,5809,5810,5811,5175,5175,5175, - 5175,5175,5175,5631,5710,5711,129,5625,5632,5628, - 5604,5630,5629,5626,5627,5605,5175,5175,5175,5175, - 5175,5175,5175,5175,5175,5175,5175,5175,5175,5175, - 5175,300,5384,5385,5385,5175,5175,5175,5175,5175, - 5175,5175,5175,5175,5175,5175,5175,5175,5175,5370, - 5308,5308,230,5308,230,230,230,5317,230,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,230,1,1,8535,1,1, - 1,1,1,1,38,5050,5047,5370,1,5044, - 5305,602,5370,5023,5020,228,2567,5178,1,602, - 124,4939,2446,2417,5370,1,1,1,3567,5582, - 112,1202,365,3612,294,5384,5385,5631,5710,5711, - 221,5625,5632,5628,5604,5630,5629,5626,5627,5605, - 398,5059,5059,635,285,5874,5370,5308,5308,230, - 5308,230,230,230,230,230,1,1,1,1, + 1,1,1,6950,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,142,3472, + 1,1,1,1,6984,2562,7192,1558,2994,3487, + 1,1,6984,6995,3862,3822,4307,4395,2498,3580, + 3434,3319,3376,3569,4713,3579,729,3578,3915,3577, + 6984,6946,6922,6922,6922,6922,6922,6922,6922,6953, 1,1,1,1,1,1,1,1,1,1, - 1,230,1,1,8535,1,1,1,1,1, - 1,285,36,5302,5299,1,5775,5305,5370,5023, - 5020,2538,2567,5178,5370,602,39,2915,2942,5370, - 5408,3428,1,1,1,3567,5582,5378,1202,4003, - 3612,4026,1,5013,5009,589,5017,585,3465,602, - 5053,348,5023,5020,589,2567,585,334,602,1503, - 334,351,5874,5370,5308,5308,230,5308,230,230, - 230,5323,230,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,230,1, - 1,8535,1,1,1,1,1,1,1014,123, - 5377,5370,1,132,5305,1059,5370,5023,5020,5370, - 2567,585,2387,602,1059,5056,122,5370,5370,1, - 1,1,3567,5582,1059,1202,5382,3612,5370,1, - 5169,5169,5370,5166,220,334,5376,366,334,5370, - 5013,5009,608,5017,585,5288,602,37,5288,5874, - 5370,5308,5308,230,5308,230,230,230,5317,230, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,230,1,1,8535,1, - 1,1,1,1,1,5381,2915,2942,5406,1, - 5370,5305,1,5013,5009,608,5017,585,5370,602, - 312,5375,366,2915,2942,1,1,1,1,3567, - 5582,1102,1202,5326,3612,139,194,312,5370,366, - 29,221,348,39,39,3223,5408,1,334,157, - 3223,334,5370,5240,5237,5053,5874,5370,5308,5308, - 230,5308,230,230,230,5317,230,1,1,1, + 1,1,1,1,1,1,1,1,1,6950, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,8535,1,1,1,1, - 1,1,5381,5406,5370,1369,1,1,5305,5370, - 5023,5020,5370,2567,585,1059,602,5370,8262,7411, - 1059,5358,428,1,1,1,3567,5582,1946,1202, - 5056,3612,1,5013,5009,608,5017,585,221,602, - 1,5013,5009,589,5017,585,2249,602,5370,8687, - 8687,5370,4190,5874,5370,5308,5308,230,5308,230, - 230,230,230,230,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,230, - 1,1,8535,1,1,1,1,1,1,5406, - 449,39,39,1,5408,5305,5258,5732,1,5258, - 5370,5384,5385,1059,1102,585,4903,602,5003,409, - 1,1,1,3567,5582,5370,1202,5261,3612,92, - 1,1,5370,1,126,5279,5370,537,5279,95, - 39,39,514,5408,5264,5311,5370,5006,5311,575, - 5874,5370,5308,5308,230,5308,230,230,230,230, - 230,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,230,1,1,8535, - 1,1,1,1,1,1,37,5163,5163,2700, - 1,5163,5305,37,5163,5163,118,39,3666,334, - 120,5408,5148,334,4429,2773,334,1,1,1, - 3567,5582,2970,1202,3415,3612,5370,321,1,5370, - 5026,3223,5370,5384,5385,323,344,3121,2630,2502, - 5382,3174,3091,5370,5406,3174,3091,5874,5370,5308, - 5308,230,5308,230,230,230,230,230,1,1, + 1,1,1,1,4307,4395,1,1,1,1, + 6984,2562,7192,1558,155,3487,1,1,6984,6995, + 333,6998,6999,190,2498,3580,3434,3319,3376,3569, + 4713,3579,729,3578,3915,3577,6984,6946,6922,6922, + 6922,6922,6922,6922,6922,6953,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,230,1,1,8535,1,1,1, - 1,1,1,5370,5370,5041,5038,1,119,5305, - 1059,1059,1,304,3427,462,344,344,1059,5381, - 161,344,5370,5673,1,1,1,3567,5582,5370, - 1202,5886,3612,37,5163,5163,45,5285,5285,5370, - 5295,5291,130,3174,3091,461,1,5013,5009,4748, - 5017,3819,3888,602,5874,3911,5181,5208,5214,5187, - 5190,5202,5199,5205,5196,5193,5184,5211,344,3980, - 1098,399,2832,314,2799,392,1637,5282,5157,5370, - 5406,3865,3842,3957,3934,161,5389,5380,3796,867, - 1005,5391,869,4122,993,5392,5390,833,5386,5387, - 5388,5370,5370,519,5379,1,5370,1417,5160,5376, - 5378,39,39,5376,520,39,5023,5020,4748,2567, - 3819,3888,602,5364,3911,792,5636,5634,5643,5642, - 5638,5639,5637,5640,5641,5644,5635,1,2446,2417, - 48,1,5370,1154,5384,533,5370,3441,4095,5329, - 3865,3842,3957,3934,5380,5389,5370,3796,867,1005, - 5391,869,4122,993,5392,5390,833,5386,5387,5388, - 4944,5379,891,5377,5375,8,1417,1,5375,5370, - 8262,7411,5345,5367,134,163,5377,141,5023,5020, - 4748,2567,3819,3888,602,5384,3911,792,5636,5634, - 5643,5642,5638,5639,5637,5640,5641,5644,5635,5370, - 533,4910,5377,293,3125,3125,5370,287,1,5370, - 1,5370,3865,3842,3957,3934,5380,5389,191,3796, - 867,1005,5391,869,4122,993,5392,5390,833,5386, - 5387,5388,1,5379,3800,191,5367,5370,1417,293, - 163,2531,39,39,1,5013,5009,4748,5017,3819, - 3888,602,5370,3911,5181,5208,5214,5187,5190,5202, - 5199,5205,5196,5193,5184,5211,4919,5815,5370,5370, - 5370,4214,2356,4215,5829,1231,5656,4326,5370,3865, - 3842,3957,3934,5370,5389,399,3796,867,1005,5391, - 869,4122,993,5392,5390,833,5386,5387,5388,5370, - 5370,5370,4216,4539,1273,1417,3202,4931,8335,39, - 39,39,5023,5020,4748,2567,3819,3888,602,5342, - 3911,792,5636,5634,5643,5642,5638,5639,5637,5640, - 5641,5644,5635,1369,432,5370,452,5370,3428,295, - 1369,5370,5370,424,4257,4269,3865,3842,3957,3934, - 128,5389,5370,3796,867,1005,5391,869,4122,993, - 5392,5390,833,5386,5387,5388,5370,5370,5370,5370, - 1194,100,1417,103,99,3678,4434,378,5345,39, - 5023,5020,4748,2567,3819,3888,602,5342,3911,792, - 5636,5634,5643,5642,5638,5639,5637,5640,5641,5644, - 5635,5370,430,1,3674,2700,3132,3200,3411,1242, - 35,5370,453,2114,3865,3842,3957,3934,5252,5389, - 73,3796,867,1005,5391,869,4122,993,5392,5390, - 833,5386,5387,5388,4628,311,185,2162,5370,2075, - 1417,3234,1993,3601,2630,2502,5345,39,5023,5020, - 4748,2567,3819,3888,602,5374,3911,792,5636,5634, - 5643,5642,5638,5639,5637,5640,5641,5644,5635,280, - 5370,4265,5320,2810,5370,5314,5370,4525,526,3800, - 3537,4145,3865,3842,3957,3934,1,5389,5370,3796, - 867,1005,5391,869,4122,993,5392,5390,833,5386, - 5387,5388,224,1,4109,5370,1319,5370,5843,5837, - 4862,5370,5841,5636,5634,5643,5642,5638,5639,5637, - 5640,5641,5644,5635,5631,5710,5711,525,5625,5632, - 5628,5604,5630,5629,5626,5627,5605,5370,5835,5836, - 5866,5867,5370,5370,5370,5844,5370,4882,3290,5370, - 5370,5370,4532,4894,4185,2,632,5361,5846,5370, - 3327,5370,4634,5370,5370,5373,1053,5370,1907,1926, - 5370,5847,5868,5845,5370,3537,4334,5370,5370,5370, - 1,2032,5370,5370,5370,677,5370,575,5370,5370, - 5857,5856,5869,5370,5370,5838,5839,5862,5863,5860, - 5861,5840,5842,5864,5865,5370,5911,5370,5370,5870, - 37,5850,5851,5852,5848,5849,5858,5859,5854,5853, - 5855,39,5023,5020,4748,2567,3819,3888,602,3800, - 3911,792,5636,5634,5643,5642,5638,5639,5637,5640, - 5641,5644,5635,5370,5370,5370,5370,5370,5370,5370, - 5370,5370,5370,5370,5370,5370,3865,3842,3957,3934, - 5370,5389,5370,3796,867,1005,5391,869,4122,993, - 5392,5390,833,5386,5387,5388,5370,5370,5370,5370, - 5370,5370,1417,39,5023,5020,4748,2567,3819,3888, - 602,5370,3911,792,5636,5634,5643,5642,5638,5639, - 5637,5640,5641,5644,5635,5370,5370,5370,5370,5370, - 5370,5370,5370,5370,5370,5370,5370,5370,3865,3842, - 3957,3934,5370,5389,5370,3796,867,1005,5391,869, - 4122,993,5392,5390,833,5386,5387,5388,39,5023, - 5020,4748,2567,3819,3888,602,1813,3911,792,5636, - 5634,5643,5642,5638,5639,5637,5640,5641,5644,5635, - 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, - 5370,5370,5370,3865,3842,3957,3934,5370,5389,5370, - 3796,867,1005,5391,869,4122,993,5392,5390,833, - 5386,5387,5388,5370,5370,5370,5370,5370,5370,1417, - 39,5023,5020,4824,2567,3819,3888,602,5370,3911, - 792,5636,5634,5643,5642,5638,5639,5637,5640,5641, - 5644,5635,5370,5370,5370,5370,5370,5370,5370,5370, - 5370,5370,5370,5370,5370,3865,3842,3957,3934,5370, - 5389,5370,3796,867,1005,5391,869,4122,993,5392, - 5390,833,5386,5387,5388,39,5023,5020,4748,2567, - 3819,3888,602,5370,3911,792,5636,5634,5643,5642, - 5638,5639,5637,5640,5641,5644,5635,5370,5370,5370, - 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, - 3865,3842,3957,3934,5370,5389,5370,3796,867,1005, - 5391,869,4122,993,5392,5390,833,5386,5387,5388, - 39,5023,5020,4748,2567,3819,3888,602,5370,3911, - 792,5636,5634,5643,5642,5638,5639,5637,5640,5641, - 5644,5635,5370,5370,5370,5370,5370,5370,5370,5370, - 5370,5370,5370,5370,5370,3865,3842,3957,3934,5370, - 5389,5370,3796,867,1005,5391,869,4122,993,5392, - 5390,833,5386,5387,5388,5370,5023,5020,5370,5408, - 5370,5370,5370,5370,5370,877,5636,5634,5643,5642, - 5638,5639,5637,5640,5641,5644,5635,5631,5710,5711, - 5370,5625,5632,5628,5604,5630,5629,5626,5627,5605, - 5370,5370,5370,5370,5772,5370,5370,5370,5370,5370, - 5370,5370,5370,5370,242,5138,5134,5370,5142,5370, - 5370,1397,5773,5774,877,5125,5131,5104,5107,5119, - 5116,5122,5113,5110,5101,5128,5080,5074,5071,5370, - 5098,5077,5089,5068,5083,5086,5095,5092,5065,5370, - 127,5370,5370,5772,29,391,391,5249,391,391, - 5249,391,5249,5249,5370,5370,5370,5370,5370,5370, - 1397,5773,5774,5370,5370,5370,391,391,391,5249, - 391,391,391,391,391,391,391,391,391,5370, - 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, - 5370,5370,5370,5370,5370,2700,5370,5370,5370,5029, - 5370,5370,5370,5370,5370,5370,5370,5249,5255,5370, - 5370,5370,5370,5370,5370,5370,5370,5249,32,392, - 392,5246,392,392,5246,392,5246,5246,5370,5370, - 5370,5370,5370,5370,2630,2502,5370,5370,5370,5370, - 392,392,392,5246,392,392,392,392,392,392, - 392,392,392,5370,5370,5370,5370,5370,5370,5370, - 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, - 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, - 5370,5246,5370,5370,5370,5370,5370,5370,5370,5370, - 5370,5246 + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,6950,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 138,2146,1,1,1,1,6984,2562,7192,1558, + 1524,3487,1,1,6984,6995,327,6998,6999,3537, + 2498,3580,3434,3319,3376,3569,4713,3579,729,3578, + 3915,3577,6984,3573,1,1,1,1,1,1, + 1,3574,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6993,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,6984,6984,1,1, + 1,1,2000,2562,7192,1558,1324,3487,1,1, + 6984,6995,37,6705,6705,552,2498,3580,3434,3319, + 3376,3569,4713,3579,729,3578,3915,3577,39,6565, + 6562,5188,799,5532,5416,5561,2284,6984,1216,7283, + 7281,7290,7289,7285,7286,7284,7287,7288,7291,7282, + 7278,7357,7358,7272,7279,7275,7251,7277,7276,7273, + 7274,7252,5509,5442,5608,5585,7003,7020,5385,7419, + 1163,1282,7005,1178,5746,1203,7006,7004,1119,7000, + 7001,7002,6984,996,954,7420,7421,1565,6984,6772, + 6772,263,6768,263,263,263,263,6776,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,323,6604,6604,6984,318,263,118,1, + 6984,6555,6551,2469,6559,6902,814,6902,2284,6984, + 384,372,115,6765,1,1,1,5346,6984,968, + 7433,642,1,6555,6551,2469,6559,6544,814,263, + 2284,453,4688,4612,7357,7358,257,345,6555,6551, + 2469,6559,6902,814,6902,2284,7521,7283,7281,7290, + 7289,7285,7286,7284,7287,7288,7291,7282,7278,7357, + 7358,7272,7279,7275,7251,7277,7276,7273,7274,7252, + 1519,3079,7456,7457,7458,6984,6772,6772,263,6768, + 263,263,263,263,6884,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,6984, + 1,5322,5298,4435,263,33,1,47,6693,377, + 6693,120,6693,6984,6693,431,6601,6601,131,318, + 6765,1,1,1,6984,3676,968,7433,642,367, + 6565,6562,2469,799,150,814,263,2284,452,6693, + 6693,6693,6693,394,6693,4688,4612,1,6711,6711, + 6984,6708,367,7521,367,157,399,1,383,6693, + 1519,960,1414,543,377,6693,399,126,377,6693, + 318,6984,377,6693,6261,6693,6693,6693,6693,7456, + 7457,7458,381,6565,6562,3889,799,367,814,367, + 2284,6693,6693,1,6693,6693,6693,6693,6693,6693, + 6693,6693,6693,6693,6693,6693,6693,6693,6693,6693, + 6693,6693,6693,6693,6693,6693,6693,6693,1519,399, + 377,4079,6693,6693,6693,6984,3862,3822,6717,399, + 6717,6690,6717,2416,6717,1,6555,6551,2469,6559, + 7377,814,1519,2284,399,37,6999,6999,6999,6999, + 6999,3445,6999,6984,399,6984,4020,3993,6984,6717, + 6717,6717,6717,1706,6717,1659,6984,6999,6999,6999, + 6999,6999,6999,6999,6999,6999,6999,6999,6999,6717, + 1,6555,6551,3889,6559,6717,814,39,2284,6717, + 7379,7022,367,6717,367,6717,6717,6717,6717,6984, + 111,156,38,6592,6589,6999,3079,751,6586,6999, + 2284,6717,6717,6999,6717,6717,6717,6717,6717,6717, + 6717,6717,6717,6717,6717,6717,6717,6717,6717,6717, + 6717,6717,6717,6717,6717,6717,6717,6717,6984,37, + 1519,6984,6717,6717,6717,6984,6922,6922,263,6922, + 263,263,263,263,6931,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,10901,1,1,1,1,1,1,1, + 6555,6551,6878,6559,263,6881,1,6824,481,1, + 1,5654,1,6696,7020,6696,3537,258,5677,139, + 6919,1,1,1,6984,668,2290,7229,1558,4850, + 3487,6984,6565,6562,347,7022,406,2334,254,7278, + 7357,7358,7272,7279,7275,7251,7277,7276,7273,7274, + 7252,6984,6984,7521,6984,6922,6922,263,6922,263, + 263,263,263,263,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,10901,1,1,1,1,1,1,3265,2099, + 6984,6565,6562,263,799,1,814,6984,2284,6984, + 6565,6562,6984,799,1222,814,1372,2284,3314,6919, + 1,1,1,320,6984,2290,7229,1558,159,3487, + 1080,4229,2052,2005,1958,1911,1864,1817,1770,1723, + 1676,1629,403,6555,6551,3889,6559,1,814,1, + 2284,29,7521,6984,6922,6922,263,6922,263,263, + 263,263,6937,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 10901,1,1,1,1,1,1,6984,6998,6999, + 132,7303,263,814,1,2284,6984,3676,2900,482, + 39,39,1519,7022,6869,6571,6869,404,6919,1, + 1,1,1277,6984,2290,7229,1558,1666,3487,1, + 6555,6551,3889,6559,146,814,253,2284,6595,3382, + 4275,2834,2768,2702,2636,2570,2504,2438,2372,2306, + 2240,7521,6984,6922,6922,263,6922,263,263,263, + 263,6931,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,10901, + 1,1,1,1,1,1,119,1424,4160,1519, + 6984,263,6984,1,39,92,1,1,7022,1, + 6887,6598,6887,6984,259,158,6984,6919,1,1, + 1,151,6990,2290,7229,1558,2350,3487,3710,547, + 4688,4612,128,4133,4106,254,7278,7357,7358,7272, + 7279,7275,7251,7277,7276,7273,7274,7252,148,6984, + 7521,6984,6922,6922,263,6922,263,263,263,263, + 6931,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,10901,1, + 1,1,1,1,1,6989,4079,6984,6565,6562, + 263,7022,1,95,39,39,6794,7022,6925,1027, + 6925,114,4160,260,476,337,6919,1,1,1, + 6984,3445,2290,7229,1558,7320,3487,356,7456,7457, + 7458,4020,3993,495,254,7278,7357,7358,7272,7279, + 7275,7251,7277,7276,7273,7274,7252,4133,4106,7521, + 6984,6922,6922,263,6922,263,263,263,263,263, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,10901,1,1, + 1,1,1,1,6984,6998,6999,1519,39,263, + 2000,1,7022,6699,261,1,6555,6551,6878,6559, + 113,6881,5654,6824,6994,6919,1,1,1,5677, + 3022,2290,7229,1558,326,3487,7278,7357,7358,7272, + 7279,7275,7251,7277,7276,7273,7274,7252,7456,7457, + 7458,36,6916,6913,6993,6984,6984,6984,7521,6984, + 6922,6922,263,6922,263,263,263,263,263,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,10901,1,1,1, + 1,1,1,6984,10657,10382,6984,957,263,4425, + 1,6984,10053,572,1,6555,6551,2469,6559,6984, + 814,5654,2284,345,6919,1,1,1,5677,6121, + 2290,7229,1558,4850,3487,7278,7357,7358,7272,7279, + 7275,7251,7277,7276,7273,7274,7252,381,39,39, + 4435,7022,367,345,367,6984,6984,7521,6984,6922, + 6922,263,6922,263,263,263,263,263,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,10901,1,1,1,1, + 1,1,6984,6565,6562,6984,799,263,6720,1, + 2284,6984,6984,6565,6562,152,799,1519,6720,1, + 2284,29,3710,6919,1,1,1,6984,194,2290, + 7229,1558,6984,3487,1,6555,6551,672,799,5532, + 5416,5561,2284,112,6723,6750,6756,6729,6732,6744, + 6741,6747,6738,6735,6726,6753,7521,1062,6984,6998, + 6999,6984,6583,6580,6984,6998,6999,2798,5509,5442, + 5608,5585,7003,6996,5385,1309,1163,1282,7005,1178, + 5746,1203,7006,7004,1119,7000,7001,7002,37,6705, + 6705,194,461,1565,6705,6984,1,494,553,4435, + 39,39,39,6565,6562,5188,799,5532,5416,5561, + 2284,6978,1117,7283,7281,7290,7289,7285,7286,7284, + 7287,7288,7291,7282,5631,794,91,5631,794,6714, + 37,6705,6705,6995,5654,367,5509,5442,5608,5585, + 7003,5677,5385,2047,1163,1282,7005,1178,5746,1203, + 7006,7004,1119,7000,7001,7002,1519,6702,6984,3272, + 577,1565,1,271,577,6984,6785,6988,117,6984, + 6984,6959,6545,5346,6994,6991,174,6565,6562,5188, + 799,5532,5416,5561,2284,7020,1117,7283,7281,7290, + 7289,7285,7286,7284,7287,7288,7291,7282,43,6762, + 6762,6984,116,6548,6993,1,6984,5346,6383,6984, + 5509,5442,5608,5585,7003,147,5385,628,1163,1282, + 7005,1178,5746,1203,7006,7004,1119,7000,7001,7002, + 6984,6782,6779,4378,3273,1565,6984,10657,10382,326, + 833,833,39,39,1,6555,6551,672,799,5532, + 5416,5561,2284,6759,6723,6750,6756,6729,6732,6744, + 6741,6747,6738,6735,6726,6753,6984,5322,5298,4160, + 3306,463,2193,7533,6984,6990,6987,6984,5509,5442, + 5608,5585,7003,6996,5385,7020,1163,1282,7005,1178, + 5746,1203,7006,7004,1119,7000,7001,7002,6984,10787, + 10787,5322,5298,1565,4133,4106,6984,6984,6984,465, + 39,39,39,6565,6562,5188,799,5532,5416,5561, + 2284,6956,1117,7283,7281,7290,7289,7285,7286,7284, + 7287,7288,7291,7282,6390,6984,6984,6984,6989,2614, + 4429,7462,1,6995,6992,6992,5509,5442,5608,5585, + 7003,6940,5385,7020,1163,1282,7005,1178,5746,1203, + 7006,7004,1119,7000,7001,7002,37,6705,6705,433, + 1,1565,7476,424,6984,6984,328,7422,4431,6943, + 1499,6959,39,6565,6562,5188,799,5532,5416,5561, + 2284,6956,1117,7283,7281,7290,7289,7285,7286,7284, + 7287,7288,7291,7282,1173,442,6984,6984,6991,6991, + 4490,6995,1896,6984,6872,6994,5509,5442,5608,5585, + 7003,1953,5385,1309,1163,1282,7005,1178,5746,1203, + 7006,7004,1119,7000,7001,7002,45,6899,6899,1, + 1,1565,1,6991,6875,6993,3121,6984,6990,6994, + 4523,6959,39,6565,6562,5188,799,5532,5416,5561, + 2284,6988,1117,7283,7281,7290,7289,7285,7286,7284, + 7287,7288,7291,7282,6984,6984,6984,5970,1153,6993, + 354,6984,485,6568,8,6990,5509,5442,5608,5585, + 7003,6896,5385,6981,1163,1282,7005,1178,5746,1203, + 7006,7004,1119,7000,7001,7002,571,1,6984,6984, + 2509,6989,7484,7490,7488,227,3160,7283,7281,7290, + 7289,7285,7286,7284,7287,7288,7291,7282,7278,7357, + 7358,7272,7279,7275,7251,7277,7276,7273,7274,7252, + 1519,7482,7483,7513,7514,2966,3934,7491,6989,1, + 1,6984,4435,701,4934,486,573,6981,6595,337, + 6545,7493,4307,4395,3316,6984,6984,1156,48,7320, + 6987,7494,6999,2089,2127,7515,6984,7492,7278,7357, + 7358,7272,7279,7275,7251,7277,7276,7273,7274,7252, + 6972,6548,100,7504,7503,1,7509,7510,7516,7507, + 7508,7487,7489,7511,224,628,7485,7486,7512,1519, + 7497,7498,7499,7495,7496,7505,7506,7501,7500,7502, + 3014,6598,6999,2486,7517,1,6555,6551,6866,6559, + 6812,6827,6815,6824,224,6723,6750,6756,6729,6732, + 6744,6741,6747,6738,6735,6726,6753,6984,6909,6905, + 6984,103,4782,4969,5031,99,6984,574,595,6809, + 6806,6821,6818,6839,477,6803,491,6854,6863,6833, + 6857,6800,6860,6830,6836,6851,6848,6845,6842,7278, + 7357,7358,7272,7279,7275,7251,7277,7276,7273,7274, + 7252,6711,6711,39,6565,6562,5188,799,5532,5416, + 5561,2284,7020,1117,7283,7281,7290,7289,7285,7286, + 7284,7287,7288,7291,7282,3277,6984,3496,6574,3497, + 6577,127,6984,11379,9059,424,6984,5509,5442,5608, + 5585,7003,6984,5385,218,1163,1282,7005,1178,5746, + 1203,7006,7004,1119,7000,7001,7002,313,6984,6984, + 6934,6326,1565,39,6565,6562,5188,799,5532,5416, + 5561,2284,6984,1117,7283,7281,7290,7289,7285,7286, + 7284,7287,7288,7291,7282,4079,6984,7020,6984,6687, + 2878,5058,6984,6984,6984,6797,2944,5509,5442,5608, + 5585,7003,758,5385,6984,1163,1282,7005,1178,5746, + 1203,7006,7004,1119,7000,7001,7002,6984,6984,6984, + 4020,3993,6984,1501,39,6565,6562,672,799,5532, + 5416,5561,2284,919,1117,7283,7281,7290,7289,7285, + 7286,7284,7287,7288,7291,7282,6984,628,6335,6345, + 6984,6984,6984,48,7583,6984,6984,6998,5509,5442, + 5608,5585,7003,6984,5385,6975,1163,1282,7005,1178, + 5746,1203,7006,7004,1119,7000,7001,7002,6984,6984, + 1,6352,6984,1565,39,6565,6562,672,799,5532, + 5416,5561,2284,3178,1117,7283,7281,7290,7289,7285, + 7286,7284,7287,7288,7291,7282,4160,6998,344,6364, + 1309,6984,432,6984,73,457,4200,3314,5509,5442, + 5608,5585,7003,6984,5385,6984,1163,1282,7005,1178, + 5746,1203,7006,7004,1119,7000,7001,7002,6984,6984, + 6984,4133,4106,1565,39,6565,6562,5188,799,5532, + 5416,5561,2284,4775,1117,7283,7281,7290,7289,7285, + 7286,7284,7287,7288,7291,7282,1309,3153,6928,6984, + 411,6984,6984,35,6984,4263,2271,4364,5509,5442, + 5608,5585,7003,2,5385,3220,1163,1282,7005,1178, + 5746,1203,7006,7004,1119,7000,7001,7002,6984,6984, + 6984,6371,3571,1565,39,6565,6562,6291,799,5532, + 5416,5561,2284,6984,1117,7283,7281,7290,7289,7285, + 7286,7284,7287,7288,7291,7282,584,1,6984,583, + 6984,4940,6984,6984,6984,6984,591,37,5509,5442, + 5608,5585,7003,3170,5385,4837,1163,1282,7005,1178, + 5746,1203,7006,7004,1119,7000,7001,7002,39,6565, + 6562,5188,799,5532,5416,5561,2284,6984,1117,7283, + 7281,7290,7289,7285,7286,7284,7287,7288,7291,7282, + 6984,1,3585,3585,4899,6984,6984,6984,6984,6984, + 196,6984,5509,5442,5608,5585,7003,1,5385,591, + 1163,1282,7005,1178,5746,1203,7006,7004,1119,7000, + 7001,7002,39,6565,6562,672,799,5532,5416,5561, + 2284,6984,1117,7283,7281,7290,7289,7285,7286,7284, + 7287,7288,7291,7282,6984,3486,6984,3170,6984,1, + 6984,6984,3585,6984,6984,6984,5509,5442,5608,5585, + 7003,6984,5385,196,1163,1282,7005,1178,5746,1203, + 7006,7004,1119,7000,7001,7002,39,6565,6562,672, + 799,5532,5416,5561,2284,6984,1117,7283,7281,7290, + 7289,7285,7286,7284,7287,7288,7291,7282,6984,6984, + 6984,3032,6984,6984,6984,6984,6984,6984,6984,6984, + 5509,5442,5608,5585,7003,6984,5385,6984,1163,1282, + 7005,1178,5746,1203,7006,7004,1119,7000,7001,7002, + 39,6565,6562,5188,799,5532,5416,5561,2284,6984, + 1117,7283,7281,7290,7289,7285,7286,7284,7287,7288, + 7291,7282,6984,6984,6984,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,5509,5442,5608,5585,7003,6984, + 5385,6984,1163,1282,7005,1178,5746,1203,7006,7004, + 1119,7000,7001,7002,6984,6565,6562,6984,7022,6984, + 6984,6984,6984,6984,1046,7283,7281,7290,7289,7285, + 7286,7284,7287,7288,7291,7282,7278,7357,7358,7272, + 7279,7275,7251,7277,7276,7273,7274,7252,6984,6984, + 6984,6984,6984,6984,6984,7419,6984,6984,6984,6984, + 6984,6984,6984,275,6680,6676,6984,6684,6984,6984, + 954,7420,7421,1046,6667,6673,6646,6649,6661,6658, + 6664,6655,6652,6643,6670,6622,6616,6613,6640,6619, + 6631,6610,6625,6628,6637,6634,6607,6984,6984,6984, + 6984,6984,6984,6984,7419,6984,6984,6984,6984,6984, + 6984,6984,6984,6998,6999,6984,6984,6984,6984,954, + 7420,7421,1352,7283,7281,7290,7289,7285,7286,7284, + 7287,7288,7291,7282,7278,7357,7358,7272,7279,7275, + 7251,7277,7276,7273,7274,7252,6984,6984,6984,6984, + 6984,6984,6984,7419,6984,6984,6984,6984,6984,6984, + 6984,275,6893,6890,75,6984,6984,4496,954,7420, + 7421,1352,6667,6673,6646,6649,6661,6658,6664,6655, + 6652,6643,6670,6622,6616,6613,6640,6619,6631,6610, + 6625,6628,6637,6634,6607,6984,6984,6984,6984,6984, + 7046,7047,7419,29,424,424,6791,424,6791,424, + 6791,424,6791,6984,6984,6984,6984,954,7420,7421, + 6984,575,6984,6984,3931,424,424,424,424,424, + 424,424,424,424,424,424,424,6984,6984,6984, + 6984,6984,6791,7278,7357,7358,7272,7279,7275,7251, + 7277,7276,7273,7274,7252,6984,6984,6571,6984,6984, + 6984,6984,6984,6791,32,425,425,6788,425,6788, + 425,6788,425,6788,6984,6791,6984,6984,6984,6984, + 6984,866,6984,2733,6984,6984,425,425,425,425, + 425,425,425,425,425,425,425,425,6984,6984, + 6984,6984,6984,6788,6984,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,37,6998,6998,6998,6998, + 6998,6984,6998,6984,6788,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,6984,6788,6998,6998,6998, + 6998,6998,6998,6998,6998,6998,6998,6998,6998,6984, + 6984,6984,6984,6984,6984,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,6984,6984,6984,6984,6984, + 6984,6984,6984,6984,6984,6998,6984,6984,6984,6998, + 6984,6984,6984,6998 }; }; public final static char termAction[] = TermAction.termAction; @@ -1798,61 +2202,67 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asb { public final static char asb[] = {0, - 1,603,609,119,119,555,600,600,555,87, - 87,801,623,87,791,45,555,360,632,632, - 273,217,218,402,402,399,930,930,47,930, - 399,210,6,785,713,724,816,724,531,724, - 474,724,708,724,787,399,785,8,119,673, - 609,609,609,609,787,673,344,212,361,361, - 361,361,361,361,361,361,361,933,939,944, - 941,948,946,953,951,955,954,956,480,957, - 360,360,313,971,12,12,609,930,415,415, - 927,313,914,930,930,415,399,789,1080,914, - 914,10,623,399,528,539,533,583,534,787, - 399,399,584,791,10,600,344,87,87,87, - 87,399,873,914,914,344,986,86,1080,344, - 933,866,866,873,360,361,361,361,361,361, - 361,361,361,361,361,361,361,361,361,361, - 361,361,361,361,360,360,360,360,360,360, - 360,360,360,360,360,360,361,12,12,415, - 415,785,313,313,415,1079,397,914,223,634, - 399,529,925,923,539,399,815,611,605,584, - 816,588,399,584,399,396,914,914,802,802, - 802,802,584,914,360,361,616,639,731,731, - 787,212,313,86,360,914,396,398,396,914, - 313,941,941,939,939,939,946,946,946,946, - 944,944,951,948,948,954,953,955,1038,956, - 914,914,802,801,802,927,802,789,399,594, - 675,1079,529,923,591,399,539,1038,534,609, - 586,467,1028,539,815,606,815,815,584,588, - 588,399,399,399,673,673,673,673,399,399, - 360,399,1080,361,87,937,227,914,398,1080, - 360,594,804,344,1079,594,923,923,1080,816, - 816,802,609,396,814,1030,393,673,815,815, - 815,815,399,588,590,917,590,360,360,360, - 360,673,673,584,397,914,937,785,789,399, - 397,594,804,596,922,923,397,827,816,127, - 555,397,815,815,393,976,361,1038,268,264, - 785,815,815,819,590,591,361,399,914,914, - 914,914,873,873,399,937,938,937,360,227, - 472,933,789,596,806,596,923,977,827,827, - 1026,1040,520,673,534,164,555,397,815,816, - 787,1030,361,361,393,980,114,820,399,591, - 914,914,766,937,873,361,313,472,596,806, - 673,591,827,827,126,520,1026,411,787,801, - 977,816,324,980,399,673,819,399,787,787, - 399,938,914,313,13,591,127,827,977,267, - 976,914,787,399,127,984,325,787,399,873, - 399,399,399,635,827,360,173,393,977,399, - 399,984,324,1038,361,1038,977,323,673,673, - 673,325,673,399,487,977,977,399,816,914, - 399,399,87,591,914,591,816,399,977,316, - 673,316,325,1038,325,344,344,342,323,344, - 977,977,271,322,591,173,977,675,325,914, - 393,914,342,520,673,914,984,173,914,914, - 779,325,271,325,977,520,360,325,322,590, - 816,816,781,360,323,873,977,914,975,172, - 325,914,977,975,975,325 + 58,20,522,32,32,229,376,376,229,135, + 135,1037,809,135,9,165,229,471,818,818, + 270,22,23,39,39,510,662,662,524,662, + 510,101,825,590,962,973,608,973,1,973, + 52,973,957,973,592,510,590,827,32,955, + 522,522,522,522,592,955,455,103,472,472, + 472,472,472,472,472,472,472,665,671,676, + 673,680,678,685,683,687,686,688,313,689, + 471,471,310,703,831,831,522,662,108,108, + 659,310,912,662,662,108,510,594,1092,912, + 912,829,809,510,361,213,3,753,4,592, + 510,510,1094,9,829,376,455,135,135,135, + 135,510,871,912,912,455,915,134,1092,455, + 665,751,751,871,471,472,472,472,472,472, + 472,472,472,472,472,472,472,472,472,472, + 472,472,472,472,471,471,471,471,471,471, + 471,471,471,471,471,471,472,831,831,108, + 108,590,310,310,108,1091,508,912,28,820, + 510,362,657,655,213,510,607,513,518,1094, + 608,364,510,1094,510,507,912,912,1038,1038, + 1038,1038,1094,912,471,472,611,618,980,980, + 592,103,310,134,471,912,507,509,507,912, + 310,673,673,671,671,671,678,678,678,678, + 676,676,683,680,680,686,685,687,1050,688, + 912,912,1038,136,586,455,1015,1013,1020,1018, + 1022,1021,1023,1024,1037,1038,659,1038,594,510, + 370,770,1091,362,655,367,510,213,1050,4, + 522,1096,420,1040,213,607,519,607,607,1094, + 364,364,510,510,510,955,955,955,955,510, + 510,471,510,1092,472,135,669,167,912,509, + 1092,471,370,596,563,574,574,574,574,558, + 592,760,472,472,472,472,472,472,472,472, + 472,471,471,471,471,471,471,471,471,471, + 471,471,471,472,455,1091,370,655,655,1092, + 608,608,1038,522,507,606,1042,504,955,607, + 607,607,607,510,364,366,765,366,471,471, + 471,471,955,955,1094,508,912,669,590,594, + 510,508,370,596,510,472,1013,1013,1013,1018, + 1015,1015,1021,1020,1022,1050,1023,372,654,655, + 508,712,608,382,229,508,607,607,504,708, + 472,1050,208,204,590,607,607,262,366,367, + 472,510,912,912,912,912,871,871,510,669, + 670,669,471,167,425,665,594,372,598,1094, + 866,471,372,655,709,712,712,803,1052,353, + 955,4,419,229,508,607,608,592,1042,472, + 472,504,805,257,263,510,367,912,912,629, + 669,871,472,310,425,372,598,510,955,367, + 712,712,381,353,803,48,592,1037,709,608, + 435,805,510,955,262,510,592,592,510,670, + 912,310,832,367,382,712,709,207,708,912, + 592,510,382,758,436,592,510,871,510,510, + 510,821,712,471,64,504,709,510,510,758, + 435,1050,472,1050,709,434,955,955,955,436, + 955,510,320,709,709,510,608,912,510,510, + 135,367,912,367,608,510,709,427,955,427, + 436,1050,436,455,455,453,434,455,709,709, + 211,433,367,64,709,770,436,912,504,912, + 453,353,955,912,758,64,912,912,642,436, + 211,436,709,353,471,436,433,366,608,608, + 947,471,434,871,709,912,707,63,436,912, + 709,707,707,436 }; }; public final static char asb[] = Asb.asb; @@ -1860,115 +2270,116 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asr { public final static byte asr[] = {0, - 39,10,41,60,0,5,7,3,63,6, - 9,90,26,11,12,23,13,56,27,28, - 14,29,30,15,16,31,32,17,18,33, - 57,34,10,58,19,22,20,24,21,1, - 2,4,73,8,39,0,66,65,35,36, - 6,92,93,98,9,99,5,42,70,55, - 68,111,112,108,109,110,116,115,117,88, - 87,113,114,96,97,94,95,100,101,37, - 38,69,89,106,63,3,26,11,12,39, - 23,13,56,27,28,14,29,30,15,16, - 31,32,17,18,33,57,34,10,58,19, - 20,24,21,1,2,4,22,0,68,70, - 69,120,1,2,0,67,39,23,13,56, - 27,14,29,30,15,16,31,32,17,18, - 33,57,34,58,19,22,20,24,21,12, - 11,26,8,3,9,6,25,62,64,86, - 28,60,41,7,1,2,5,4,10,59, - 0,71,61,37,38,9,6,35,36,42, - 47,3,4,52,53,54,40,50,45,49, - 12,21,11,17,15,16,18,19,14,13, - 20,10,44,48,46,43,51,67,8,7, - 5,1,2,66,65,0,3,68,70,69, - 120,63,8,73,90,0,91,89,35,36, - 92,93,87,88,68,94,95,96,97,98, - 99,100,101,107,90,108,109,110,111,112, - 113,114,115,116,117,118,73,71,1,2, - 4,9,6,72,63,55,3,8,69,25, - 70,0,65,66,3,10,44,48,46,43, - 51,12,21,11,17,15,16,18,19,14, - 13,20,52,53,54,40,50,45,49,5, - 7,4,37,38,9,6,35,36,42,47, - 1,2,118,8,0,86,103,104,105,41, - 72,102,121,71,60,74,62,59,64,76, - 78,84,82,75,80,81,83,85,67,77, - 79,25,8,26,39,23,56,27,28,29, - 30,31,32,33,57,34,58,22,24,61, - 65,66,10,44,48,46,43,51,12,21, - 11,17,15,16,18,19,14,13,20,52, - 53,54,40,50,45,49,37,38,35,36, - 42,47,9,6,3,4,7,5,1,2, - 0,74,3,68,72,90,69,73,25,63, - 8,67,70,0,26,11,12,39,23,43, - 65,13,44,56,27,28,45,14,29,30, - 15,16,31,66,32,46,17,18,47,33, - 48,57,49,61,50,34,51,58,19,22, - 20,24,21,52,53,54,40,3,37,38, - 9,6,35,36,42,68,7,1,2,4, - 10,5,0,4,8,67,1,2,0,68, - 72,90,69,118,73,71,11,12,43,65, - 13,44,45,14,15,16,66,46,17,18, - 47,48,49,61,50,51,10,19,20,21, - 52,53,54,40,37,38,35,36,42,8, - 25,5,7,1,2,4,3,9,6,0, - 41,4,72,1,2,67,8,0,86,59, - 7,103,104,105,62,8,3,9,6,5, - 72,71,25,60,26,11,12,39,23,13, - 56,27,28,14,29,30,15,16,31,32, - 17,18,33,57,34,10,58,19,22,20, - 24,21,4,1,2,41,0,1,2,69, - 71,8,0,23,24,61,8,90,73,68, - 69,70,120,0,4,8,72,67,55,0, - 4,8,72,67,0,8,72,118,73,25, - 69,0,9,6,3,7,5,63,4,1, - 2,68,70,90,73,8,69,0,26,11, - 12,23,13,27,28,14,29,30,15,16, - 31,7,32,17,18,33,34,19,22,20, - 24,21,1,2,8,63,9,6,5,4, - 73,25,3,0,26,11,12,39,23,13, - 56,27,28,14,29,30,15,16,31,32, - 17,18,33,57,34,10,58,19,22,20, - 24,21,1,2,4,90,0,10,56,39, + 55,4,71,1,2,69,9,0,9,64, + 68,72,1,2,7,5,4,3,60,120, + 0,3,64,70,68,120,60,9,72,97, + 0,64,70,68,120,1,2,0,74,3, + 64,71,97,68,72,39,60,9,69,70, + 0,4,9,69,1,2,0,41,10,55, + 62,0,73,59,36,37,7,5,34,35, + 40,46,3,4,51,52,53,38,49,44, + 48,12,21,11,17,15,16,18,19,14, + 13,20,10,43,47,45,42,50,69,9, + 8,6,1,2,67,66,0,42,66,43, + 44,67,8,45,46,47,48,59,49,50, + 51,52,53,38,36,37,7,5,34,35, + 6,40,64,3,4,10,1,2,56,57, + 58,12,21,11,17,15,16,18,19,14, + 13,20,25,31,32,27,30,29,22,26, + 23,24,28,33,41,0,98,91,34,35, + 99,100,86,87,64,89,90,92,93,94, + 95,96,101,102,97,103,104,105,106,107, + 108,109,110,111,112,118,72,73,1,2, + 4,7,5,71,60,54,3,9,68,39, + 70,0,88,61,8,114,115,116,63,9, + 3,7,5,6,71,73,39,62,25,11, + 12,41,23,13,56,26,27,14,28,29, + 15,16,30,31,17,18,32,57,55,33, + 10,58,19,20,24,21,1,2,4,22, + 0,22,1,2,4,114,115,116,0,66, + 67,3,10,43,47,45,42,50,12,21, + 11,17,15,16,18,19,14,13,20,51, + 52,53,38,49,44,48,6,8,4,36, + 37,7,5,34,35,40,46,1,2,118, + 9,0,64,71,97,68,118,72,73,11, + 12,42,66,13,43,44,14,15,16,67, + 45,17,18,46,47,48,59,49,50,10, + 19,20,21,51,52,53,38,36,37,34, + 35,40,9,39,6,8,1,2,4,3, + 7,5,0,1,2,68,73,9,0,23, + 24,59,9,97,72,64,68,120,70,0, + 69,41,23,13,56,26,14,28,29,15, + 16,30,31,17,18,32,57,33,58,19, + 22,20,24,21,12,11,25,9,3,7, + 5,39,63,65,88,27,62,55,61,8, + 1,2,4,10,6,0,88,114,115,116, + 55,71,113,121,73,62,74,63,61,65, + 76,78,84,82,75,80,81,83,85,69, + 77,79,39,9,25,41,23,56,26,27, + 28,29,30,31,32,57,33,58,22,24, + 59,66,67,10,43,47,45,42,50,12, + 21,11,17,15,16,18,19,14,13,20, + 51,52,53,38,49,44,48,36,37,34, + 35,40,46,7,5,3,4,8,6,1, + 2,0,4,9,71,69,0,4,9,71, + 69,54,0,67,66,34,35,99,100,94, + 95,6,40,70,54,106,107,103,104,105, + 111,110,112,87,86,108,109,92,93,89, + 90,96,101,36,37,91,117,10,56,41, 57,58,12,21,11,17,15,16,18,19, - 14,13,20,74,72,90,118,71,67,120, - 119,91,106,89,37,38,35,36,92,93, - 87,88,55,68,94,95,96,97,98,99, - 100,101,107,70,108,109,110,111,112,113, - 114,115,116,117,69,26,23,27,28,29, - 30,31,32,33,34,22,24,25,8,73, - 3,63,7,5,9,6,1,2,4,0, - 8,73,120,1,2,9,6,4,3,63, - 69,68,0,23,24,61,3,68,90,70, - 69,73,25,74,72,67,8,0,22,1, - 2,4,103,104,105,0,64,26,11,12, - 39,23,13,56,27,86,28,14,29,30, - 15,16,31,59,32,17,18,33,57,34, - 10,58,19,62,22,20,24,21,8,3, - 9,6,71,25,60,7,4,41,5,1, - 2,0,11,12,43,65,13,44,45,14, - 15,16,66,7,46,17,18,47,48,49, - 61,50,51,10,19,20,21,52,53,54, - 40,1,2,3,37,38,9,6,35,36, - 5,42,4,73,8,0,8,69,71,70, - 0,61,23,24,7,5,1,2,4,74, - 67,120,119,106,37,38,63,3,91,89, - 6,92,93,35,36,88,87,55,94,95, - 96,97,9,98,99,100,68,90,73,70, - 108,109,110,111,112,113,114,115,116,117, - 72,118,101,107,71,69,25,8,0,8, - 67,69,0,102,0,65,66,37,38,9, - 6,35,36,5,42,47,3,4,7,52, - 53,54,50,45,49,12,21,11,17,15, - 16,18,19,14,13,20,10,44,48,46, - 43,51,63,1,2,40,0,25,8,3, - 7,5,9,6,4,1,2,72,0,39, - 23,13,56,27,14,29,30,15,16,31, - 32,17,18,33,57,34,10,58,19,22, - 20,24,21,12,11,26,8,3,9,25, - 62,59,64,86,28,60,55,4,6,7, - 5,41,1,2,0 + 14,13,20,25,31,32,27,30,29,22, + 26,23,24,28,33,64,68,3,60,7, + 5,1,2,4,0,23,24,59,3,64, + 97,70,68,72,39,74,71,69,9,0, + 9,71,118,72,39,68,0,11,12,13, + 14,15,16,17,18,19,20,21,25,23, + 26,27,28,29,30,31,32,33,22,24, + 39,9,72,8,1,2,60,3,7,5, + 6,4,0,59,23,24,8,6,1,2, + 4,74,69,120,119,117,36,37,60,3, + 98,91,5,99,100,34,35,87,86,54, + 89,90,92,93,7,94,95,96,64,97, + 72,70,103,104,105,106,107,108,109,110, + 111,112,71,118,101,102,73,68,39,9, + 0,65,25,11,12,41,23,13,56,26, + 88,27,14,28,29,15,16,30,61,31, + 17,18,32,57,33,10,58,19,63,22, + 20,24,21,9,3,7,5,73,39,62, + 8,6,55,1,2,4,0,113,0,54, + 64,89,90,0,9,68,73,70,0,25, + 11,12,41,23,13,56,26,27,14,28, + 29,15,16,30,31,17,18,32,57,33, + 10,58,19,22,20,24,21,1,2,4, + 97,0,38,0,9,69,68,0,7,5, + 3,8,6,60,4,1,2,64,70,97, + 72,9,68,0,6,8,3,60,5,7, + 97,25,11,12,41,23,13,56,26,27, + 14,28,29,15,16,30,31,17,18,32, + 57,33,10,58,19,22,20,24,21,1, + 2,4,72,9,0,72,9,87,86,0, + 11,12,42,66,13,43,44,14,15,16, + 67,8,45,17,18,46,47,48,59,49, + 50,10,19,20,21,51,52,53,38,1, + 2,3,36,37,7,5,34,35,6,40, + 4,72,9,0,66,67,36,37,34,35, + 40,46,51,52,53,38,49,44,48,12, + 21,11,17,15,16,18,19,14,13,20, + 10,43,47,45,42,50,7,5,60,8, + 6,4,1,2,3,0,10,56,41,57, + 58,12,21,11,17,15,16,18,19,14, + 13,20,74,71,97,118,73,69,120,8, + 31,32,33,22,24,1,2,30,29,28, + 27,26,6,4,23,25,119,98,117,91, + 36,37,34,35,99,100,9,60,3,5, + 72,39,87,86,54,89,90,92,93,7, + 94,95,96,101,102,70,103,104,105,106, + 107,108,109,110,111,112,68,64,0,39, + 9,3,8,6,7,5,4,1,2,71, + 0,41,23,13,56,26,14,28,29,15, + 16,30,31,17,18,32,57,33,10,58, + 19,22,20,24,21,12,11,25,9,3, + 7,39,63,61,65,88,27,62,54,4, + 5,8,6,1,2,55,0 }; }; public final static byte asr[] = Asr.asr; @@ -1976,61 +2387,67 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Nasb { public final static char nasb[] = {0, - 13,12,12,39,39,258,12,12,151,46, - 46,12,21,5,211,12,151,72,12,12, - 85,80,80,80,80,240,12,12,30,12, - 222,144,20,134,160,161,188,161,110,161, - 99,161,154,12,10,222,134,210,39,12, - 12,12,12,12,28,12,280,222,72,72, - 236,72,72,72,72,72,72,12,12,12, - 12,12,12,12,12,12,12,12,72,12, - 72,72,90,12,258,258,12,12,258,258, - 49,90,165,12,12,258,11,12,181,165, - 165,148,138,222,12,258,232,28,17,28, - 222,11,12,201,148,12,280,46,46,46, - 46,222,215,165,165,1,72,92,181,280, - 12,58,58,215,172,72,72,72,72,72, - 72,72,72,72,72,72,72,72,72,72, - 72,72,72,72,72,72,72,72,72,72, - 72,72,72,72,72,172,72,151,151,41, - 41,134,90,90,41,54,144,165,12,12, - 222,136,136,136,265,233,64,64,12,277, - 188,258,277,66,233,143,165,165,12,12, - 12,12,180,165,72,72,12,12,12,12, - 10,222,90,46,102,165,143,222,143,165, - 90,12,12,12,12,12,12,12,12,12, + 77,12,12,43,43,32,12,12,293,297, + 297,12,158,5,201,12,293,85,12,12, + 104,23,23,23,23,242,12,12,122,12, + 180,218,157,176,259,260,210,260,13,260, + 69,260,253,12,10,180,176,200,43,12, + 12,12,12,12,165,12,30,180,85,85, + 238,85,85,85,85,85,85,12,12,12, + 12,12,12,12,12,12,12,12,85,12, + 85,85,109,12,32,32,12,12,32,32, + 79,109,302,12,12,32,11,12,146,302, + 302,290,212,180,12,32,65,165,40,165, + 180,11,12,222,290,12,30,297,297,297, + 297,180,197,302,302,1,85,53,146,30, + 12,55,55,197,31,85,85,85,85,85, + 85,85,85,85,85,85,85,85,85,85, + 85,85,85,85,85,85,85,85,85,85, + 85,85,85,85,85,31,85,293,293,45, + 45,176,109,109,45,148,218,302,12,12, + 180,178,178,178,275,66,63,63,12,228, + 210,32,228,111,66,217,302,302,12,12, + 12,12,145,302,85,85,12,12,12,12, + 10,180,109,297,18,302,217,180,217,302, + 109,12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 165,165,12,12,12,203,12,12,11,258, - 151,123,12,258,127,222,177,12,207,12, - 12,52,252,265,64,64,258,258,66,258, - 241,11,233,222,12,12,12,12,233,11, - 72,222,181,72,46,258,82,165,194,181, - 72,258,258,41,54,113,136,113,181,188, - 230,12,12,28,258,129,23,12,258,258, - 121,121,233,241,115,12,12,172,172,172, - 172,12,12,179,233,165,34,203,12,240, - 233,113,113,258,113,258,144,258,188,260, - 258,277,258,108,140,177,72,12,78,12, - 134,121,121,197,115,127,72,241,165,165, - 165,165,215,215,233,258,190,12,172,203, - 195,12,12,258,258,117,113,177,243,258, - 12,260,253,12,229,52,151,144,108,96, - 218,23,72,72,140,12,28,192,277,127, - 165,165,12,34,215,72,90,195,117,117, - 12,127,260,243,187,129,12,12,28,12, - 177,96,126,12,277,12,248,277,28,28, - 11,190,165,90,163,127,260,258,177,167, - 12,165,28,277,260,258,169,218,11,215, - 11,277,277,165,243,102,70,23,177,277, - 208,15,183,12,72,12,177,12,12,12, - 12,184,12,241,175,177,177,241,105,165, - 11,11,46,127,165,258,188,208,177,94, - 12,12,184,12,184,284,284,272,12,284, - 177,177,12,258,127,258,177,46,184,165, - 23,165,225,258,12,165,15,70,165,165, - 258,184,12,184,177,23,172,184,94,127, - 105,105,21,72,12,36,177,165,119,69, - 184,165,177,119,12,184 + 302,302,12,231,201,25,12,12,12,12, + 12,12,12,12,12,12,224,12,12,11, + 32,293,126,12,32,153,180,169,12,72, + 12,12,21,262,275,63,63,32,32,111, + 32,243,11,66,180,12,12,12,12,66, + 11,85,180,146,85,297,32,97,302,250, + 146,85,32,32,259,260,260,260,260,282, + 10,12,85,85,85,85,85,85,85,85, + 85,85,85,85,85,85,85,85,85,85, + 85,85,31,85,45,148,61,178,61,146, + 210,130,12,12,165,32,171,160,12,32, + 32,118,118,66,243,120,12,12,31,31, + 31,31,12,12,144,66,302,38,224,12, + 242,66,61,61,180,85,12,12,12,12, + 12,12,12,12,12,12,12,32,61,32, + 218,32,210,270,32,228,32,16,214,169, + 85,12,114,12,176,118,118,100,120,153, + 85,243,302,302,302,302,197,197,66,32, + 93,12,31,224,251,12,12,32,32,111, + 302,85,91,61,169,245,32,12,270,263, + 12,129,21,293,218,16,134,34,160,85, + 85,214,12,165,132,228,153,302,302,12, + 38,197,85,109,251,91,91,66,12,153, + 270,245,209,171,12,12,165,12,169,134, + 152,12,228,12,140,228,165,165,11,93, + 302,109,300,153,270,32,169,95,12,302, + 165,228,270,32,191,34,11,197,11,228, + 228,302,245,18,83,160,169,228,73,155, + 205,12,85,12,169,12,12,12,12,206, + 12,243,167,169,169,243,137,302,11,11, + 297,153,302,32,210,73,169,116,12,12, + 206,12,206,304,304,186,12,304,169,169, + 12,32,153,32,169,297,206,302,160,302, + 296,32,12,302,155,83,302,302,32,206, + 12,206,169,160,31,206,116,153,137,137, + 158,85,12,183,169,302,75,82,206,302, + 169,75,12,206 }; }; public final static char nasb[] = Nasb.nasb; @@ -2038,35 +2455,37 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Nasr { public final static char nasr[] = {0, - 3,13,10,9,153,151,121,150,149,5, - 2,0,176,0,163,0,43,1,0,33, - 94,93,65,2,9,10,4,5,0,4, - 46,198,0,144,0,4,180,0,107,0, - 5,10,9,2,13,4,46,0,4,197, - 0,158,0,66,139,138,0,5,2,9, - 10,140,0,108,0,2,66,0,68,131, - 43,5,10,9,2,13,0,193,0,76, - 0,4,179,0,13,2,9,10,5,82, - 0,177,0,113,0,43,162,0,154,185, - 0,4,31,0,43,57,0,161,0,154, - 190,0,63,0,155,0,127,0,164,0, - 109,0,66,50,0,4,68,0,4,10, - 9,2,65,5,89,50,0,94,93,50, - 65,59,5,10,9,2,0,50,5,89, - 4,23,0,2,5,121,117,118,119,13, - 86,0,46,4,33,0,186,0,49,43, - 181,4,40,0,4,40,39,0,2,137, - 66,0,68,40,49,69,4,43,0,142, - 0,195,0,2,115,0,5,101,194,0, - 94,93,50,5,59,0,123,103,0,33, - 93,94,4,0,4,96,0,174,5,173, - 0,45,2,0,46,4,182,0,1,123, - 0,45,2,3,0,5,10,9,13,3, - 1,0,116,4,49,81,0,5,101,170, - 0,39,5,2,9,10,160,4,0,4, - 49,81,83,0,4,49,81,101,47,5, - 0,40,4,23,183,0,2,58,0,4, - 46,40,0,4,46,102,0 + 3,13,10,9,138,137,113,136,135,4, + 2,0,166,205,0,173,0,5,28,0, + 170,0,80,0,13,2,9,10,4,52, + 37,5,0,186,4,185,0,161,0,42, + 1,0,121,0,4,10,9,2,13,128, + 5,0,192,0,4,2,9,10,157,0, + 51,0,122,0,44,2,3,0,166,200, + 0,141,117,0,176,0,191,0,5,212, + 0,81,149,42,4,10,9,2,13,0, + 145,0,159,0,201,0,5,194,0,4, + 115,209,0,13,2,9,10,4,94,0, + 2,75,0,208,0,130,0,123,0,167, + 0,5,52,213,0,75,54,0,1,141, + 0,210,0,42,174,0,42,66,0,4, + 115,182,0,2,154,75,0,75,156,155, + 0,5,81,0,175,0,30,101,100,78, + 2,9,10,5,4,0,5,37,39,0, + 5,10,9,2,78,4,98,54,0,44, + 2,0,5,195,0,37,5,27,198,0, + 5,50,42,37,196,0,5,105,0,30, + 100,101,5,0,81,37,50,82,5,42, + 0,101,100,54,78,68,4,10,9,2, + 0,101,100,54,4,68,0,2,67,0, + 138,214,137,113,136,135,0,4,10,9, + 13,3,1,0,133,5,50,93,0,2, + 132,0,2,4,113,110,111,112,13,69, + 0,39,4,2,9,10,5,172,0,5, + 50,93,95,0,5,50,93,115,48,4, + 0,113,69,13,110,111,112,190,0,54, + 4,98,5,27,0,197,5,52,0,52, + 5,30,0,5,52,116,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2074,18 +2493,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface TerminalIndex { public final static char terminalIndex[] = {0, - 113,114,2,31,13,10,79,115,9,100, + 113,114,2,31,10,13,9,79,115,100, 48,52,60,68,74,75,86,87,102,105, - 107,104,54,106,120,47,64,66,70,73, - 76,83,89,98,11,12,7,8,53,112, - 93,14,55,61,67,84,88,90,94,97, - 99,109,110,111,19,63,91,101,77,122, - 95,103,1,46,58,78,121,20,44,33, - 119,30,118,96,108,49,50,56,57,59, - 69,71,72,85,92,65,17,18,6,32, - 4,15,16,21,22,23,24,25,26,27, - 28,51,80,81,82,5,29,34,35,36, - 37,38,39,40,41,42,43,117,3,123, + 107,104,54,106,47,64,66,70,73,76, + 83,89,98,11,12,7,8,112,120,14, + 53,55,61,67,84,88,90,94,97,99, + 109,110,111,19,93,63,91,101,95,1, + 77,122,103,20,46,58,78,44,121,33, + 30,118,119,96,108,49,50,56,57,59, + 69,71,72,85,92,17,18,65,21,22, + 6,23,24,25,26,27,32,4,15,16, + 28,29,34,35,36,37,38,39,40,41, + 42,43,51,80,81,82,5,117,3,123, 62,116 }; }; @@ -2094,27 +2513,29 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 130,135,136,0,0,134,0,0,229,235, + 130,135,136,0,0,134,0,0,237,243, 133,0,143,0,132,0,0,142,148,0, - 0,149,180,158,159,160,161,162,163,164, - 151,165,126,166,141,167,168,0,128,131, - 169,0,129,138,137,152,177,0,0,0, - 0,0,0,0,0,145,172,0,155,0, - 204,0,187,201,205,0,0,127,171,0, - 0,0,0,0,0,206,175,0,0,0, - 0,125,178,0,0,186,0,0,202,212, - 157,208,209,210,0,0,146,0,0,207, - 220,174,196,0,0,211,0,0,0,0, - 0,240,241,0,147,179,189,190,191,192, - 193,195,0,198,0,199,0,214,217,0, - 0,219,0,238,239,0,0,139,140,144, - 0,0,154,156,0,170,0,181,182,183, - 184,185,188,0,0,0,194,0,197,203, - 0,215,216,0,0,221,224,0,226,228, - 0,232,233,234,237,124,0,150,153,0, - 173,0,176,0,0,200,213,218,0,0, - 222,223,225,227,0,230,231,236,242,243, - 0,0,0,0 + 0,149,158,159,160,161,188,151,0,126, + 162,141,163,164,165,166,131,167,128,168, + 0,129,138,137,170,169,171,185,0,0, + 195,152,172,0,173,0,0,0,0,0, + 174,175,176,0,177,180,0,155,194,0, + 0,0,212,0,0,145,209,213,0,214, + 127,179,0,0,0,0,0,0,183,0, + 0,0,0,125,186,0,0,210,216,217, + 218,0,220,157,0,146,0,0,215,197, + 198,199,201,227,228,182,204,0,0,219, + 0,0,0,0,0,248,0,251,0,252, + 0,147,187,189,190,191,192,196,200,203, + 0,206,0,207,0,222,225,0,0,0, + 246,247,0,0,139,140,144,0,0,154, + 156,0,178,0,193,0,0,0,202,0, + 205,211,0,223,224,0,0,229,232,0, + 234,236,0,240,241,242,245,0,0,249, + 124,0,150,153,0,181,0,184,0,0, + 208,221,226,0,0,230,231,233,235,0, + 238,239,244,250,253,254,0,0,0,0, + 0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2122,18 +2543,19 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopePrefix { public final static char scopePrefix[] = { - 159,311,589,608,304,319,540,556,567,578, - 372,267,281,298,333,42,292,392,430,167, - 597,483,20,51,71,80,85,90,130,195, - 326,341,346,144,273,287,511,27,144,382, - 346,616,27,217,246,1,14,61,76,106, - 351,361,365,448,476,505,532,536,626,630, - 634,97,7,97,410,426,439,460,524,116, - 116,232,439,547,563,574,585,207,494,56, - 56,156,222,225,56,241,262,225,225,56, - 369,473,480,156,56,649,110,355,414,454, - 467,56,355,401,177,104,452,638,645,638, - 645,65,420,137,104,104,251 + 172,324,608,627,317,332,559,575,586,597, + 372,280,294,311,344,55,305,392,430,180, + 616,502,20,33,64,84,93,98,103,143, + 208,339,350,20,467,157,286,300,530,40, + 157,382,20,635,40,230,259,1,14,27, + 74,89,119,27,361,365,448,495,524,551, + 555,645,649,653,110,7,110,410,426,439, + 460,479,543,129,129,245,439,566,582,593, + 604,220,513,69,69,169,235,238,69,254, + 275,238,238,69,369,492,499,169,69,668, + 123,355,414,454,486,472,69,355,401,190, + 117,452,657,664,657,664,78,420,150,117, + 117,264 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2141,18 +2563,19 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,135,5,5,135,135,5,5,5,5, - 379,135,95,135,339,48,278,398,436,173, - 67,489,25,25,25,59,59,95,135,200, - 331,331,339,149,278,101,516,38,152,387, - 603,621,32,211,211,5,18,5,59,95, - 331,95,95,135,244,5,5,5,5,5, - 244,647,11,101,379,379,379,464,516,120, - 125,236,443,551,551,551,551,211,498,59, - 59,5,5,228,230,244,5,265,265,230, - 95,5,244,5,509,5,113,358,417,457, - 470,528,519,404,180,95,95,640,640,642, - 642,67,422,139,202,187,253 + 18,148,5,5,148,148,5,5,5,5, + 379,148,108,148,25,61,291,398,436,186, + 80,508,25,38,38,38,72,72,108,148, + 213,31,31,25,5,162,291,114,535,51, + 165,387,622,640,45,224,224,5,18,31, + 5,72,108,31,108,108,148,257,5,5, + 5,5,5,257,666,11,114,379,379,379, + 464,483,535,133,138,249,443,570,570,570, + 570,224,517,72,72,5,5,241,243,257, + 5,278,278,243,108,5,257,5,528,5, + 126,358,417,457,489,475,547,538,404,193, + 108,108,659,659,661,661,80,422,152,215, + 200,266 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2160,18 +2583,19 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeLhs { public final static char scopeLhs[] = { - 47,119,18,18,80,119,18,18,18,18, - 72,85,48,80,118,78,54,72,71,47, - 18,20,3,7,8,170,170,166,117,47, - 118,118,120,130,55,48,140,111,130,72, - 18,18,111,95,60,136,75,173,170,166, - 120,184,52,57,144,19,18,18,18,18, - 18,12,113,166,72,71,71,38,140,132, - 132,59,71,18,18,18,18,95,20,174, - 170,186,93,100,62,76,61,160,77,120, - 73,145,144,177,140,17,166,120,102,70, - 22,140,140,72,47,166,67,138,45,138, - 45,173,102,117,47,47,60 + 48,112,18,18,92,112,18,18,18,18, + 85,97,49,92,111,90,59,85,84,48, + 18,20,190,3,7,8,182,182,178,110, + 48,111,111,139,45,148,60,49,157,125, + 148,85,18,18,125,102,72,153,88,190, + 185,182,178,139,199,57,66,161,19,18, + 18,18,18,18,12,130,178,85,84,84, + 64,41,157,114,114,68,84,18,18,18, + 18,102,20,186,182,201,100,109,74,80, + 73,172,89,139,86,162,161,192,157,17, + 178,139,116,83,22,45,157,157,85,48, + 178,79,155,44,155,44,185,116,110,48, + 48,72 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2179,18 +2603,19 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeLa { public final static byte scopeLa[] = { - 102,71,73,73,71,71,73,73,73,73, - 73,71,25,71,1,68,1,73,121,67, - 3,73,68,68,68,1,1,25,71,67, - 1,1,1,71,1,1,4,68,69,25, - 1,1,68,73,73,73,102,73,1,25, - 1,25,25,71,118,73,73,73,73,73, - 118,1,73,1,73,73,73,72,4,1, - 1,6,73,68,68,68,68,73,3,1, - 1,73,73,3,1,118,73,1,1,1, - 25,73,118,73,5,73,1,41,70,72, - 73,1,41,75,74,25,25,4,4,4, - 4,3,1,67,1,1,3 + 113,73,72,72,73,73,72,72,72,72, + 72,73,39,73,1,64,1,72,121,69, + 3,72,1,64,64,64,1,1,39,73, + 69,1,1,1,72,73,1,1,4,64, + 68,39,1,1,64,72,72,72,113,1, + 72,1,39,1,39,39,73,118,72,72, + 72,72,72,118,1,72,1,72,72,72, + 71,71,4,1,1,5,72,64,64,64, + 64,72,3,1,1,72,72,3,1,118, + 72,1,1,1,39,72,118,72,6,72, + 1,55,70,71,72,64,1,55,75,74, + 39,39,4,4,4,4,3,1,69,1, + 1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2198,18 +2623,19 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeStateSet { public final static char scopeStateSet[] = { - 65,146,234,234,87,146,234,234,234,234, - 75,89,65,87,146,87,67,75,75,65, - 234,234,166,210,210,53,53,62,146,65, - 146,146,146,297,67,65,101,313,297,75, - 234,234,313,305,150,46,75,26,53,62, - 146,22,67,29,56,234,234,234,234,234, - 234,214,6,62,75,75,75,266,101,146, - 146,106,75,234,234,234,234,305,234,26, - 53,24,305,307,150,301,150,59,155,146, - 75,50,56,104,101,234,62,146,1,75, - 235,101,101,75,65,62,11,98,122,98, - 122,26,1,146,65,65,150 + 68,175,267,267,90,175,267,267,267,267, + 78,92,68,90,175,90,70,78,78,68, + 267,267,62,197,243,243,53,53,65,175, + 68,175,175,177,104,354,70,68,129,371, + 354,78,267,267,371,362,181,46,78,62, + 26,53,65,177,22,70,29,56,267,267, + 267,267,267,267,247,6,65,78,78,78, + 112,327,129,175,175,134,78,267,267,267, + 267,362,267,26,53,24,362,364,181,358, + 181,59,186,177,78,50,56,132,129,267, + 65,177,1,78,268,104,129,129,78,68, + 65,11,101,150,101,150,26,1,175,68, + 68,181 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2217,72 +2643,73 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeRhs { public final static char scopeRhs[] = {0, - 322,3,61,0,126,0,321,3,102,0, - 126,172,0,126,179,74,0,216,0,255, - 126,55,124,0,20,0,297,126,55,41, - 0,20,53,0,33,132,0,20,53,0, - 0,297,126,55,41,203,0,20,178,0, - 255,126,55,132,0,180,127,0,141,0, - 218,3,296,0,296,0,2,0,126,0, - 255,126,55,131,0,180,127,223,0,180, - 127,22,223,0,180,127,317,22,0,128, - 188,167,127,0,128,0,188,167,127,0, - 134,128,0,171,0,313,126,171,0,126, - 171,0,222,128,0,167,312,243,0,136, - 0,0,0,0,135,0,0,0,0,311, - 126,165,254,0,127,0,254,0,129,0, - 0,127,0,310,126,165,253,0,127,0, - 0,44,127,0,0,153,3,0,126,284, - 283,126,74,282,171,0,283,126,74,282, - 171,0,215,0,216,0,282,171,0,96, - 0,0,215,0,216,0,203,96,0,0, - 215,0,216,0,283,126,282,171,0,215, - 0,203,0,0,215,0,226,126,3,0, - 126,0,0,0,0,0,226,126,3,215, - 0,222,3,0,211,126,0,208,0,146, - 0,172,167,127,0,10,0,0,0,0, - 213,63,0,125,0,226,126,3,183,0, - 183,0,2,0,0,126,0,0,0,0, - 0,199,3,0,201,0,236,126,165,40, - 28,0,180,127,59,62,0,196,128,0, - 128,180,127,280,62,0,180,127,280,62, - 0,180,127,70,123,59,0,236,126,165, - 245,59,0,236,126,165,245,225,59,0, - 277,278,126,165,123,307,56,0,277,278, - 126,165,307,56,0,180,127,276,56,0, - 135,0,188,180,127,276,243,0,136,0, - 180,127,276,243,0,188,167,127,10,0, - 167,127,10,0,167,127,0,93,136,0, - 269,126,145,0,269,126,171,0,162,84, - 0,302,161,304,305,3,81,0,126,171, - 0,304,305,3,81,0,128,0,126,171, - 0,162,3,75,191,80,0,126,128,0, - 191,80,0,108,2,131,126,128,0,224, - 3,75,0,199,168,0,33,169,0,168, - 0,175,33,169,0,224,3,85,0,191, - 155,224,3,83,0,62,171,0,224,3, - 83,0,126,171,62,171,0,303,126,165, - 0,162,0,213,77,0,30,171,0,162, - 107,159,0,30,169,0,178,3,0,126, - 149,0,218,3,0,213,63,266,0,162, - 63,0,178,3,299,66,127,0,126,0, - 0,0,0,299,66,127,0,2,145,126, - 0,0,0,0,178,3,47,0,147,0, - 125,41,167,127,0,31,147,0,93,136, - 31,147,0,219,180,127,0,146,31,147, - 0,178,3,51,0,162,3,51,0,162, - 3,68,178,55,43,0,178,55,43,0, - 20,2,131,126,0,162,3,68,178,55, - 46,0,178,55,46,0,162,3,68,178, - 55,48,0,178,55,48,0,162,3,68, - 178,55,44,0,178,55,44,0,218,3, - 125,188,167,127,10,0,125,188,167,127, - 10,0,136,2,0,126,0,218,3,124, - 259,167,127,10,0,259,167,127,10,0, - 135,2,0,126,0,218,3,135,0,218, - 3,140,0,162,63,140,0,261,0,31, - 0,31,139,0,166,0,134,0,162,3, - 0 + 338,3,59,0,126,0,337,3,113,0, + 126,180,0,127,188,74,0,224,0,197, + 166,126,10,0,136,0,166,126,10,0, + 135,0,272,127,54,124,0,20,0,309, + 127,54,55,0,20,53,0,33,132,0, + 20,53,0,0,309,127,54,55,215,0, + 20,186,0,272,127,54,132,0,189,126, + 0,141,0,227,3,308,0,308,0,2, + 0,126,0,272,127,54,131,0,189,126, + 237,0,189,126,22,237,0,189,126,332, + 22,0,128,197,166,126,0,128,0,197, + 166,126,0,134,128,0,172,0,328,127, + 172,0,127,172,0,230,128,0,166,327, + 235,0,136,0,0,0,0,135,0,0, + 0,0,326,127,164,236,0,127,0,236, + 0,129,0,0,127,0,325,127,164,271, + 0,127,0,0,44,127,0,0,150,3, + 0,127,296,295,127,74,294,172,0,295, + 127,74,294,172,0,223,0,224,0,294, + 172,0,96,0,0,223,0,224,0,211, + 96,0,0,223,0,224,0,295,127,294, + 172,0,223,0,211,0,0,223,0,240, + 127,3,0,126,0,0,0,0,0,240, + 127,3,222,0,231,3,0,220,127,0, + 216,0,146,0,176,166,126,0,10,0, + 0,0,0,226,60,0,125,0,240,127, + 3,195,0,195,0,2,0,0,126,0, + 0,0,0,0,211,3,0,209,0,253, + 127,164,38,27,0,189,126,61,63,0, + 204,128,0,128,189,126,292,63,0,189, + 126,292,63,0,189,126,70,123,61,0, + 253,127,164,263,61,0,253,127,164,263, + 239,61,0,289,290,127,164,123,322,56, + 0,289,290,127,164,322,56,0,189,126, + 288,56,0,197,189,126,288,235,0,189, + 126,288,235,0,166,126,0,93,136,0, + 286,127,149,0,286,127,172,0,159,84, + 0,317,161,319,320,3,81,0,126,179, + 0,319,320,3,81,0,128,0,126,179, + 0,159,3,75,204,80,0,126,128,0, + 204,80,0,108,2,131,126,128,0,238, + 3,75,0,211,174,0,33,169,0,174, + 0,183,33,169,0,238,3,85,0,204, + 152,238,3,83,0,62,179,0,238,3, + 83,0,126,179,62,179,0,318,127,164, + 0,159,0,226,77,0,30,179,0,159, + 102,185,0,30,177,0,148,64,167,3, + 0,167,3,0,20,161,126,0,159,102, + 162,0,30,169,0,198,3,0,126,149, + 0,227,3,0,226,60,283,0,159,60, + 0,198,3,314,67,126,0,126,0,0, + 0,0,314,67,126,0,2,145,126,0, + 0,0,0,198,3,46,0,147,0,125, + 55,166,126,0,31,147,0,93,136,31, + 147,0,228,189,126,0,146,31,147,0, + 198,3,50,0,159,3,50,0,159,3, + 64,198,54,42,0,198,54,42,0,20, + 2,131,126,0,159,3,64,198,54,45, + 0,198,54,45,0,159,3,64,198,54, + 47,0,198,54,47,0,159,3,64,198, + 54,43,0,198,54,43,0,227,3,125, + 197,166,126,10,0,125,197,166,126,10, + 0,136,2,0,126,0,227,3,124,276, + 166,126,10,0,276,166,126,10,0,135, + 2,0,126,0,227,3,135,0,227,3, + 140,0,159,60,140,0,278,0,31,0, + 31,139,0,165,0,134,0,159,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2290,38 +2717,44 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeState { public final static char scopeState[] = {0, - 3509,4894,4882,4862,0,1770,3550,1177,573,0, - 3645,3587,3523,3420,3383,3327,3290,3234,3197,3002, - 2965,4532,0,2857,0,4145,3411,0,3645,3587, - 1893,1807,3523,3420,3383,3327,3290,3234,1450,3197, - 3002,2965,1549,1321,0,1764,1721,1678,0,3276, - 3011,0,4265,3132,0,3385,603,0,4485,4302, - 0,4517,4511,0,4517,4511,4244,4429,4420,4158, - 4347,4338,4144,4326,3645,3587,3523,3420,3383,3327, - 3290,3234,3197,3002,2965,0,4517,4511,4244,4429, - 4420,4158,4347,4338,4144,4326,0,2531,735,0, - 952,810,0,1098,0,2475,3157,951,3614,2603, - 746,2728,621,3225,4519,3203,2759,2775,2747,743, - 0,4741,4737,4729,4725,4689,4678,4661,4653,4871, - 4856,4833,4649,4613,4602,4585,4549,4816,4809,3602, - 4805,4756,4412,3480,0,542,2781,2741,0,3157, - 4485,2603,4302,2759,3078,3496,4275,4109,2475,4095, - 608,2728,589,2489,0,3060,2543,4741,4737,4729, - 2245,2158,4725,939,4689,4678,4661,4151,4653,3121, - 2874,2799,2748,3117,4871,2658,4856,2240,4833,3351, - 4649,4613,2153,4602,4585,1146,4549,4816,3516,4809, - 3602,4805,3444,4756,4412,2781,3480,585,2741,2839, - 2617,2585,2567,3078,3496,4275,4109,2475,3157,4095, - 4485,2603,608,2728,4302,1503,635,2970,952,810, - 2759,589,2489,4122,4072,4049,2249,2288,2356,2323, - 2446,2417,2387,2942,2915,2700,2672,2630,2502,3771, - 3746,3721,3174,3091,4026,4003,3980,3957,3934,3911, - 3888,3865,3842,3819,3796,2032,2201,2162,2114,2075, - 1242,1102,891,1989,1946,1374,834,753,696,1903, - 1860,1817,1774,1731,1688,1645,1602,1559,1516,1460, - 542,1329,1286,1417,1059,1198,1014,970,1154,0, - 1372,1241,1189,1049,3203,2759,3078,3223,589,2811, - 2489,0,4798,2773,3235,565,0 + 6247,6371,6352,6345,0,2420,2827,2091,2762,0, + 5209,5147,5085,5023,4961,4899,4837,4775,4713,4483, + 4421,4263,0,1307,0,2486,701,0,5209,5147, + 3109,2556,5085,5023,4961,4899,4837,4775,2498,4713, + 4483,4421,2364,2358,0,2399,1316,1266,0,2597, + 1304,0,2614,1499,0,723,704,0,903,5951, + 0,6159,5370,0,6215,6147,0,6215,6147,5794, + 6121,6108,5781,6047,5986,5768,5970,5209,5147,5085, + 5023,4961,4899,4837,4775,4713,4483,4421,0,6215, + 6147,5794,6121,6108,5781,6047,5986,5768,5970,0, + 2994,2663,0,3382,3445,3628,3537,3862,3822,3710, + 672,2966,996,2900,2834,2768,2702,2636,2570,2504, + 2438,2372,2306,2240,927,835,766,0,2733,866, + 0,794,0,654,5938,4600,3474,3902,2956,4187, + 2428,3008,6241,4666,4585,6182,2939,1400,0,6189, + 6055,6048,5964,5790,5769,5176,5114,6068,5803,4441, + 4333,5052,4990,4928,4866,4804,4250,3939,923,3377, + 718,4742,4230,0,6159,5370,600,5866,4235,0, + 5938,903,3902,5951,4585,4572,4350,2601,2271,654, + 4378,2469,4187,3889,3849,0,1859,1812,6189,6055, + 6048,1765,1718,5964,1671,5790,5769,2141,5176,2094, + 5114,6068,2047,2000,1953,1906,5775,5803,1607,4441, + 1513,4333,1561,5052,4990,1414,4928,4866,1269,4804, + 4250,2235,3939,923,3377,2188,718,4742,5866,4230, + 814,4235,2864,2402,1618,799,4572,4350,2601,2271, + 654,5938,4378,903,3902,2469,4187,5951,2798,1062, + 1027,2733,866,4585,3889,3849,5746,2966,4200,996, + 3382,2900,2834,2768,2702,2636,2570,2504,2438,2372, + 2306,2240,3445,3628,3537,3862,3822,3710,4160,4133, + 4106,5723,672,5700,927,835,766,1080,1324,3593, + 3501,3790,3758,3676,4395,4307,4079,4052,4020,3993, + 5346,5322,5298,4688,4612,5677,5654,5631,5608,5585, + 5561,5532,5509,5442,5416,5385,3032,3319,3277,3220, + 3178,3121,3079,2193,2146,1471,2099,2052,2005,1958, + 1911,1864,1817,1770,1723,1676,1629,600,1424,1372, + 1565,1519,1277,1173,1126,1222,0,901,891,803, + 653,4666,4585,4572,3167,4435,3889,645,3849,0, + 4727,4850,4724,1076,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2329,61 +2762,67 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface InSymb { public final static char inSymb[] = {0, - 0,298,41,10,39,55,229,229,126,70, - 70,297,145,126,168,68,69,70,222,199, - 63,215,216,187,183,5,124,131,7,132, - 127,4,3,126,270,271,254,272,243,273, - 56,274,275,124,10,127,126,3,39,51, - 43,46,48,44,10,135,3,127,47,42, - 5,36,35,6,9,38,37,140,146,148, - 147,150,149,152,151,156,154,158,61,159, - 70,70,213,159,3,3,124,123,55,55, - 168,63,3,65,66,55,180,166,167,222, - 199,126,211,127,172,165,312,276,307,276, - 127,180,167,211,126,229,3,55,55,55, - 55,127,3,178,162,126,65,66,167,3, - 125,106,119,3,63,89,91,36,35,93, - 92,6,95,94,68,55,87,88,9,97, - 96,99,98,100,117,116,115,114,113,112, - 111,110,109,108,70,107,101,126,126,126, - 126,126,63,63,126,4,188,226,227,228, - 127,167,9,6,126,167,229,125,124,127, - 123,165,127,167,41,70,178,162,178,178, - 178,178,167,218,126,155,268,135,125,124, - 10,127,63,299,3,178,41,127,41,218, - 162,147,147,146,146,146,149,149,149,149, - 148,148,151,150,150,154,152,156,162,158, - 226,226,255,257,255,211,255,261,188,155, - 69,167,172,172,311,127,169,223,59,41, - 203,62,171,314,125,124,230,230,180,165, - 126,180,188,127,68,68,68,68,188,259, - 69,127,167,204,3,300,168,153,180,167, - 72,155,155,69,4,126,6,126,167,245, - 225,55,41,280,282,126,3,183,230,230, - 126,126,188,126,278,123,279,3,3,3, - 3,125,124,167,41,178,126,126,219,5, - 41,126,126,220,185,172,188,165,245,68, - 55,127,74,126,211,313,72,291,199,124, - 126,126,126,72,278,277,70,69,162,162, - 162,162,3,3,188,155,263,266,63,181, - 4,123,125,220,220,126,126,128,126,165, - 28,41,171,64,59,62,126,180,126,283, - 72,69,72,70,211,316,223,22,127,277, - 218,218,125,126,3,63,162,4,126,126, - 61,236,238,126,40,126,3,123,59,297, - 128,283,165,295,127,296,69,127,22,317, - 180,263,218,213,3,236,126,165,269,248, - 281,40,70,127,68,284,126,69,180,3, - 180,127,127,322,126,3,70,69,155,127, - 180,126,303,79,77,1,162,8,85,83, - 81,80,75,82,84,78,76,59,74,218, - 180,180,69,236,153,165,253,180,225,285, - 102,8,72,213,72,3,3,3,191,3, - 123,162,123,179,126,165,225,3,72,224, - 168,224,305,145,75,224,126,126,90,321, - 168,155,199,155,304,126,3,155,285,310, - 155,155,126,70,191,161,269,162,190,69, - 121,302,155,190,8,155 + 0,313,55,10,41,54,243,243,127,70, + 70,309,149,127,174,64,68,70,231,211, + 60,222,223,200,195,6,124,131,8,132, + 126,4,3,127,256,257,236,258,235,259, + 56,287,260,124,10,126,127,3,41,50, + 42,45,47,43,10,135,3,126,46,40, + 6,35,34,5,7,37,36,140,145,147, + 146,153,148,156,155,158,157,160,59,162, + 70,70,226,162,3,3,124,123,54,54, + 174,60,3,66,67,54,189,165,166,231, + 211,127,220,126,176,164,327,288,322,288, + 126,189,166,220,127,243,3,54,54,54, + 54,126,3,198,159,127,66,67,166,3, + 125,117,119,3,60,91,98,35,34,100, + 99,5,90,89,64,54,86,87,7,93, + 92,95,94,96,112,111,110,109,108,107, + 106,105,104,103,70,102,101,127,127,127, + 127,127,60,60,127,4,197,240,241,242, + 126,166,7,5,127,166,243,125,124,126, + 123,164,126,166,55,70,198,159,198,198, + 198,198,166,227,127,152,285,135,125,124, + 10,126,60,314,3,198,55,126,55,227, + 159,146,146,145,145,145,148,148,148,148, + 147,147,155,153,153,157,156,158,159,160, + 240,240,272,127,250,3,167,148,175,169, + 183,177,184,185,274,272,220,272,278,197, + 152,68,166,176,176,326,126,170,237,61, + 55,215,63,172,329,125,124,244,244,189, + 164,127,189,197,126,64,64,64,64,197, + 276,68,126,166,216,3,315,174,150,189, + 166,71,152,152,256,257,258,259,336,260, + 10,167,90,89,54,7,93,92,95,94, + 96,112,111,110,109,108,107,106,105,104, + 103,70,102,101,68,4,127,5,127,166, + 263,239,54,55,292,294,127,3,195,244, + 244,127,127,197,127,290,123,291,3,3, + 3,3,125,124,166,55,198,127,127,228, + 6,55,127,127,126,64,148,148,148,169, + 167,167,177,175,183,159,184,229,173,176, + 197,164,263,64,54,126,74,127,220,328, + 71,303,211,124,127,127,127,71,290,289, + 70,68,159,159,159,159,3,3,197,152, + 280,283,60,190,4,123,125,229,229,166, + 148,71,127,127,128,127,164,27,55,172, + 65,61,63,127,189,127,295,71,68,71, + 70,220,331,237,22,126,289,227,227,125, + 127,3,60,159,4,127,127,197,59,253, + 255,127,38,127,3,123,61,309,128,295, + 164,307,126,308,68,126,22,332,189,280, + 227,226,3,253,127,164,286,266,293,38, + 70,126,64,296,127,68,189,3,189,126, + 126,338,127,3,70,68,152,126,189,127, + 318,79,77,1,159,9,85,83,81,80, + 75,82,84,78,76,61,74,227,189,189, + 68,253,150,164,271,189,239,297,113,9, + 71,226,71,3,3,3,204,3,123,159, + 123,188,127,164,239,3,71,238,174,238, + 320,149,75,238,127,127,97,337,174,152, + 211,152,319,127,3,152,297,325,152,152, + 127,70,204,161,286,159,203,68,121,317, + 152,203,9,152 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2563,6 +3002,20 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par "logical_and_expression", "logical_or_expression", "assignment_expression", + "relational_expression_inTempla" + + "te", + "equality_expression_inTemplate", + "and_expression_inTemplate", + "exclusive_or_expression_inTemp" + + "late", + "inclusive_or_expression_inTemp" + + "late", + "logical_and_expression_inTempl" + + "ate", + "logical_or_expression_inTempla" + + "te", + "assignment_expression_inTempla" + + "te", "expression_list_actual", "statement", "compound_statement", @@ -2638,6 +3091,10 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par "template_parameter", "template_argument_list", "template_argument", + "type_name_specifier_inTemplate", + "type_name_declaration_specifie" + + "rs_inTemplate", + "type_specifier_seq_inTemplate", "handler", "exception_declaration", "type_id_list" @@ -2647,10 +3104,10 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 60, - SCOPE_UBOUND = 116, - SCOPE_SIZE = 117, - MAX_NAME_LENGTH = 37; + ERROR_SYMBOL = 62, + SCOPE_UBOUND = 121, + SCOPE_SIZE = 122, + MAX_NAME_LENGTH = 43; public final int getErrorSymbol() { return ERROR_SYMBOL; } public final int getScopeUbound() { return SCOPE_UBOUND; } @@ -2658,20 +3115,20 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 546, + NUM_STATES = 604, NT_OFFSET = 122, - LA_STATE_OFFSET = 5911, + LA_STATE_OFFSET = 7583, MAX_LA = 2147483647, - NUM_RULES = 541, - NUM_NONTERMINALS = 204, - NUM_SYMBOLS = 326, + NUM_RULES = 599, + NUM_NONTERMINALS = 225, + NUM_SYMBOLS = 347, SEGMENT_SIZE = 8192, - START_STATE = 565, + START_STATE = 1076, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, - ACCEPT_ACTION = 5002, - ERROR_ACTION = 5370; + ACCEPT_ACTION = 6544, + ERROR_ACTION = 6984; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java index 6326438930a..9363d2a34d5 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java @@ -15,127 +15,127 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPTemplateTypeParameterParsersym { public final static int - TK_asm = 64, - TK_auto = 26, + TK_asm = 65, + TK_auto = 25, TK_bool = 11, TK_break = 76, TK_case = 77, - TK_catch = 102, + TK_catch = 113, TK_char = 12, - TK_class = 39, + TK_class = 41, TK_const = 23, - TK_const_cast = 43, + TK_const_cast = 42, TK_continue = 78, TK_default = 79, - TK_delete = 65, + TK_delete = 66, TK_do = 80, TK_double = 13, - TK_dynamic_cast = 44, + TK_dynamic_cast = 43, TK_else = 121, TK_enum = 56, - TK_explicit = 27, - TK_export = 86, - TK_extern = 28, - TK_false = 45, + TK_explicit = 26, + TK_export = 88, + TK_extern = 27, + TK_false = 44, TK_float = 14, TK_for = 81, - TK_friend = 29, + TK_friend = 28, TK_goto = 82, TK_if = 83, - TK_inline = 30, + TK_inline = 29, TK_int = 15, TK_long = 16, - TK_mutable = 31, - TK_namespace = 59, - TK_new = 66, - TK_operator = 7, - TK_private = 103, - TK_protected = 104, - TK_public = 105, - TK_register = 32, - TK_reinterpret_cast = 46, + TK_mutable = 30, + TK_namespace = 61, + TK_new = 67, + TK_operator = 8, + TK_private = 114, + TK_protected = 115, + TK_public = 116, + TK_register = 31, + TK_reinterpret_cast = 45, TK_return = 84, TK_short = 17, TK_signed = 18, - TK_sizeof = 47, - TK_static = 33, - TK_static_cast = 48, + TK_sizeof = 46, + TK_static = 32, + TK_static_cast = 47, TK_struct = 57, TK_switch = 85, - TK_template = 41, - TK_this = 49, - TK_throw = 61, + TK_template = 55, + TK_this = 48, + TK_throw = 59, TK_try = 74, - TK_true = 50, - TK_typedef = 34, - TK_typeid = 51, + TK_true = 49, + TK_typedef = 33, + TK_typeid = 50, TK_typename = 10, TK_union = 58, TK_unsigned = 19, - TK_using = 62, + TK_using = 63, TK_virtual = 22, TK_void = 20, TK_volatile = 24, TK_wchar_t = 21, TK_while = 75, - TK_integer = 52, - TK_floating = 53, - TK_charconst = 54, - TK_stringlit = 40, + TK_integer = 51, + TK_floating = 52, + TK_charconst = 53, + TK_stringlit = 38, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 8, + TK_EndOfCompletion = 9, TK_Invalid = 122, - TK_LeftBracket = 63, + TK_LeftBracket = 60, TK_LeftParen = 3, TK_Dot = 119, - TK_DotStar = 91, - TK_Arrow = 106, - TK_ArrowStar = 89, - TK_PlusPlus = 37, - TK_MinusMinus = 38, - TK_And = 9, - TK_Star = 6, - TK_Plus = 35, - TK_Minus = 36, - TK_Tilde = 5, - TK_Bang = 42, - TK_Slash = 92, - TK_Percent = 93, - TK_RightShift = 87, - TK_LeftShift = 88, - TK_LT = 55, - TK_GT = 68, - TK_LE = 94, - TK_GE = 95, - TK_EQ = 96, - TK_NE = 97, - TK_Caret = 98, - TK_Or = 99, - TK_AndAnd = 100, + TK_DotStar = 98, + TK_Arrow = 117, + TK_ArrowStar = 91, + TK_PlusPlus = 36, + TK_MinusMinus = 37, + TK_And = 7, + TK_Star = 5, + TK_Plus = 34, + TK_Minus = 35, + TK_Tilde = 6, + TK_Bang = 40, + TK_Slash = 99, + TK_Percent = 100, + TK_RightShift = 86, + TK_LeftShift = 87, + TK_LT = 54, + TK_GT = 64, + TK_LE = 89, + TK_GE = 90, + TK_EQ = 92, + TK_NE = 93, + TK_Caret = 94, + TK_Or = 95, + TK_AndAnd = 96, TK_OrOr = 101, - TK_Question = 107, - TK_Colon = 72, + TK_Question = 102, + TK_Colon = 71, TK_ColonColon = 4, - TK_DotDotDot = 90, + TK_DotDotDot = 97, TK_Assign = 70, - TK_StarAssign = 108, - TK_SlashAssign = 109, - TK_PercentAssign = 110, - TK_PlusAssign = 111, - TK_MinusAssign = 112, - TK_RightShiftAssign = 113, - TK_LeftShiftAssign = 114, - TK_AndAssign = 115, - TK_CaretAssign = 116, - TK_OrAssign = 117, - TK_Comma = 69, + TK_StarAssign = 103, + TK_SlashAssign = 104, + TK_PercentAssign = 105, + TK_PlusAssign = 106, + TK_MinusAssign = 107, + TK_RightShiftAssign = 108, + TK_LeftShiftAssign = 109, + TK_AndAssign = 110, + TK_CaretAssign = 111, + TK_OrAssign = 112, + TK_Comma = 68, TK_RightBracket = 118, - TK_RightParen = 73, - TK_RightBrace = 71, - TK_SemiColon = 25, - TK_LeftBrace = 67, - TK_ERROR_TOKEN = 60, + TK_RightParen = 72, + TK_RightBrace = 73, + TK_SemiColon = 39, + TK_LeftBrace = 69, + TK_ERROR_TOKEN = 62, TK_EOF_TOKEN = 120; public final static String orderedTerminalSymbols[] = { @@ -144,11 +144,11 @@ public interface CPPTemplateTypeParameterParsersym { "Completion", "LeftParen", "ColonColon", - "Tilde", "Star", + "Tilde", + "And", "operator", "EndOfCompletion", - "And", "typename", "bool", "char", @@ -164,7 +164,6 @@ public interface CPPTemplateTypeParameterParsersym { "virtual", "const", "volatile", - "SemiColon", "auto", "explicit", "extern", @@ -178,10 +177,10 @@ public interface CPPTemplateTypeParameterParsersym { "Minus", "PlusPlus", "MinusMinus", - "class", "stringlit", - "template", + "SemiColon", "Bang", + "class", "const_cast", "dynamic_cast", "false", @@ -195,24 +194,25 @@ public interface CPPTemplateTypeParameterParsersym { "floating", "charconst", "LT", + "template", "enum", "struct", "union", + "throw", + "LeftBracket", "namespace", "ERROR_TOKEN", - "throw", "using", - "LeftBracket", + "GT", "asm", "delete", "new", - "LeftBrace", - "GT", "Comma", + "LeftBrace", "Assign", - "RightBrace", "Colon", "RightParen", + "RightBrace", "try", "while", "break", @@ -225,27 +225,22 @@ public interface CPPTemplateTypeParameterParsersym { "if", "return", "switch", - "export", "RightShift", "LeftShift", - "ArrowStar", - "DotDotDot", - "DotStar", - "Slash", - "Percent", + "export", "LE", "GE", + "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd", + "DotDotDot", + "DotStar", + "Slash", + "Percent", "OrOr", - "catch", - "private", - "protected", - "public", - "Arrow", "Question", "StarAssign", "SlashAssign", @@ -257,6 +252,11 @@ public interface CPPTemplateTypeParameterParsersym { "AndAssign", "CaretAssign", "OrAssign", + "catch", + "private", + "protected", + "public", + "Arrow", "RightBracket", "Dot", "EOF_TOKEN", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java index 3e5b024fc4c..5060f8c770e 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java @@ -804,1257 +804,1485 @@ private GNUBuildASTParserAction gnuAction; } // - // Rule 141: throw_expression ::= throw + // Rule 142: relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression // - case 141: { action. consumeExpressionThrow(false); break; + case 142: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 142: throw_expression ::= throw assignment_expression + // Rule 143: relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression ) // - case 142: { action. consumeExpressionThrow(true); break; + case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 145: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 144: relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression // - case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 146: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 145: relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression // - case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 147: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 147: equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate // - case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 148: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 148: equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate // - case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 149: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 150: and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate // - case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 150: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 152: exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate // - case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 151: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 154: inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate // - case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 152: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 156: logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate // - case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 156: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 153: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 158: logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate // - case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 158: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 154: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 160: conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate // - case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 160: { action. consumeExpressionConditional(); break; } // - // Rule 155: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 163: assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate // - case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 163: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 157: expression_list ::= expression_list_actual + // Rule 164: assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate // - case 157: { action. consumeExpressionList(); break; + case 164: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 161: expression_list_opt ::= $Empty + // Rule 165: assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate // - case 161: { action. consumeEmpty(); break; + case 165: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 163: expression_opt ::= $Empty + // Rule 166: assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate // - case 163: { action. consumeEmpty(); break; + case 166: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 166: constant_expression_opt ::= $Empty + // Rule 167: assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate // - case 166: { action. consumeEmpty(); break; + case 167: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 175: statement ::= ERROR_TOKEN + // Rule 168: assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate // - case 175: { action. consumeStatementProblem(); break; + case 168: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 176: labeled_statement ::= identifier : statement + // Rule 169: assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate // - case 176: { action. consumeStatementLabeled(); break; + case 169: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 177: labeled_statement ::= case constant_expression : statement + // Rule 170: assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate // - case 177: { action. consumeStatementCase(); break; + case 170: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 178: labeled_statement ::= default : statement + // Rule 171: assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate // - case 178: { action. consumeStatementDefault(); break; + case 171: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 179: expression_statement ::= expression ; + // Rule 172: assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate // - case 179: { action. consumeStatementExpression(); break; + case 172: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 180: expression_statement ::= ; + // Rule 173: assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate // - case 180: { action. consumeStatementNull(); break; + case 173: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 181: compound_statement ::= { statement_seq } + // Rule 174: throw_expression ::= throw // - case 181: { action. consumeStatementCompoundStatement(true); break; + case 174: { action. consumeExpressionThrow(false); break; } // - // Rule 182: compound_statement ::= { } + // Rule 175: throw_expression ::= throw assignment_expression // - case 182: { action. consumeStatementCompoundStatement(false); break; + case 175: { action. consumeExpressionThrow(true); break; } // - // Rule 185: selection_statement ::= if ( condition ) statement + // Rule 178: assignment_expression ::= logical_or_expression = assignment_expression // - case 185: { action. consumeStatementIf(false); break; + case 178: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 186: selection_statement ::= if ( condition ) statement else statement + // Rule 179: assignment_expression ::= logical_or_expression *= assignment_expression // - case 186: { action. consumeStatementIf(true); break; + case 179: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 187: selection_statement ::= switch ( condition ) statement + // Rule 180: assignment_expression ::= logical_or_expression /= assignment_expression // - case 187: { action. consumeStatementSwitch(); break; + case 180: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 189: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 181: assignment_expression ::= logical_or_expression %= assignment_expression // - case 189: { action. consumeConditionDeclaration(); break; + case 181: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 191: condition_opt ::= $Empty + // Rule 182: assignment_expression ::= logical_or_expression += assignment_expression // - case 191: { action. consumeEmpty(); break; + case 182: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 192: iteration_statement ::= while ( condition ) statement + // Rule 183: assignment_expression ::= logical_or_expression -= assignment_expression // - case 192: { action. consumeStatementWhileLoop(); break; + case 183: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 193: iteration_statement ::= do statement while ( expression ) ; + // Rule 184: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 193: { action. consumeStatementDoLoop(true); break; + case 184: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 194: iteration_statement ::= do statement + // Rule 185: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 194: { action. consumeStatementDoLoop(false); break; + case 185: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 186: assignment_expression ::= logical_or_expression &= assignment_expression // - case 195: { action. consumeStatementForLoop(); break; + case 186: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 197: for_init_statement ::= simple_declaration_with_declspec + // Rule 187: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 197: { action. consumeStatementDeclaration(); break; + case 187: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 198: jump_statement ::= break ; + // Rule 188: assignment_expression ::= logical_or_expression |= assignment_expression // - case 198: { action. consumeStatementBreak(); break; + case 188: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 199: jump_statement ::= continue ; + // Rule 190: expression_list ::= expression_list_actual // - case 199: { action. consumeStatementContinue(); break; + case 190: { action. consumeExpressionList(); break; } // - // Rule 200: jump_statement ::= return expression ; + // Rule 194: expression_list_opt ::= $Empty // - case 200: { action. consumeStatementReturn(true); break; + case 194: { action. consumeEmpty(); break; } // - // Rule 201: jump_statement ::= return ; + // Rule 196: expression_opt ::= $Empty // - case 201: { action. consumeStatementReturn(false); break; + case 196: { action. consumeEmpty(); break; } // - // Rule 202: jump_statement ::= goto identifier_token ; + // Rule 199: constant_expression_opt ::= $Empty // - case 202: { action. consumeStatementGoto(); break; + case 199: { action. consumeEmpty(); break; } // - // Rule 203: declaration_statement ::= block_declaration + // Rule 208: statement ::= ERROR_TOKEN // - case 203: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 208: { action. consumeStatementProblem(); break; } // - // Rule 204: declaration_statement ::= function_definition + // Rule 209: labeled_statement ::= identifier : statement // - case 204: { action. consumeStatementDeclaration(); break; + case 209: { action. consumeStatementLabeled(); break; } // - // Rule 212: declaration ::= ERROR_TOKEN + // Rule 210: labeled_statement ::= case constant_expression : statement // - case 212: { action. consumeDeclarationProblem(); break; + case 210: { action. consumeStatementCase(); break; } // - // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 211: labeled_statement ::= default : statement // - case 222: { action. consumeDeclarationSimple(true); break; + case 211: { action. consumeStatementDefault(); break; } // - // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 212: expression_statement ::= expression ; // - case 223: { action. consumeDeclarationSimple(true); break; + case 212: { action. consumeStatementExpression(); break; } // - // Rule 224: declaration_specifiers ::= simple_declaration_specifiers + // Rule 213: expression_statement ::= ; // - case 224: { action. consumeDeclarationSpecifiersSimple(); break; + case 213: { action. consumeStatementNull(); break; } // - // Rule 225: declaration_specifiers ::= class_declaration_specifiers + // Rule 214: compound_statement ::= { statement_seq } // - case 225: { action. consumeDeclarationSpecifiersComposite(); break; + case 214: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 226: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 215: compound_statement ::= { } // - case 226: { action. consumeDeclarationSpecifiersComposite(); break; + case 215: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 227: declaration_specifiers ::= enum_declaration_specifiers + // Rule 218: selection_statement ::= if ( condition ) statement // - case 227: { action. consumeDeclarationSpecifiersComposite(); break; + case 218: { action. consumeStatementIf(false); break; } // - // Rule 228: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 219: selection_statement ::= if ( condition ) statement else statement // - case 228: { action. consumeDeclarationSpecifiersTypeName(); break; + case 219: { action. consumeStatementIf(true); break; } // - // Rule 230: declaration_specifiers_opt ::= $Empty + // Rule 220: selection_statement ::= switch ( condition ) statement // - case 230: { action. consumeEmpty(); break; + case 220: { action. consumeStatementSwitch(); break; } // - // Rule 234: no_type_declaration_specifier ::= friend + // Rule 222: condition ::= type_specifier_seq declarator = assignment_expression // - case 234: { action. consumeToken(); break; + case 222: { action. consumeConditionDeclaration(); break; } // - // Rule 235: no_type_declaration_specifier ::= typedef + // Rule 224: condition_opt ::= $Empty // - case 235: { action. consumeToken(); break; + case 224: { action. consumeEmpty(); break; } // - // Rule 255: storage_class_specifier ::= auto + // Rule 225: iteration_statement ::= while ( condition ) statement // - case 255: { action. consumeToken(); break; + case 225: { action. consumeStatementWhileLoop(); break; } // - // Rule 256: storage_class_specifier ::= register + // Rule 226: iteration_statement ::= do statement while ( expression ) ; // - case 256: { action. consumeToken(); break; + case 226: { action. consumeStatementDoLoop(true); break; } // - // Rule 257: storage_class_specifier ::= static + // Rule 227: iteration_statement ::= do statement // - case 257: { action. consumeToken(); break; + case 227: { action. consumeStatementDoLoop(false); break; } // - // Rule 258: storage_class_specifier ::= extern + // Rule 228: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 258: { action. consumeToken(); break; + case 228: { action. consumeStatementForLoop(); break; } // - // Rule 259: storage_class_specifier ::= mutable + // Rule 230: for_init_statement ::= simple_declaration_with_declspec // - case 259: { action. consumeToken(); break; + case 230: { action. consumeStatementDeclaration(); break; } // - // Rule 260: function_specifier ::= inline + // Rule 231: jump_statement ::= break ; // - case 260: { action. consumeToken(); break; + case 231: { action. consumeStatementBreak(); break; } // - // Rule 261: function_specifier ::= virtual + // Rule 232: jump_statement ::= continue ; // - case 261: { action. consumeToken(); break; + case 232: { action. consumeStatementContinue(); break; } // - // Rule 262: function_specifier ::= explicit + // Rule 233: jump_statement ::= return expression ; // - case 262: { action. consumeToken(); break; + case 233: { action. consumeStatementReturn(true); break; } // - // Rule 263: simple_type_specifier ::= simple_type_specifier_token + // Rule 234: jump_statement ::= return ; // - case 263: { action. consumeToken(); break; + case 234: { action. consumeStatementReturn(false); break; } // - // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 235: jump_statement ::= goto identifier_token ; // - case 277: { action. consumeQualifiedId(false); break; + case 235: { action. consumeStatementGoto(); break; } // - // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 236: declaration_statement ::= block_declaration // - case 278: { action. consumeQualifiedId(false); break; + case 236: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 237: declaration_statement ::= function_definition // - case 279: { action. consumeQualifiedId(false); break; + case 237: { action. consumeStatementDeclaration(); break; } // - // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 245: declaration ::= ERROR_TOKEN // - case 280: { action. consumeQualifiedId(true); break; + case 245: { action. consumeDeclarationProblem(); break; } // - // Rule 282: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 255: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 282: { action. consumeTypeSpecifierElaborated(false); break; + case 255: { action. consumeDeclarationSimple(true); break; } // - // Rule 283: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 256: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 283: { action. consumeTypeSpecifierElaborated(true); break; + case 256: { action. consumeDeclarationSimple(true); break; } // - // Rule 284: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 257: declaration_specifiers ::= simple_declaration_specifiers // - case 284: { action. consumeTypeSpecifierElaborated(false); break; + case 257: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 288: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 258: declaration_specifiers ::= class_declaration_specifiers // - case 288: { action. consumeTypeSpecifierEnumeration(false); break; + case 258: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 289: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 259: declaration_specifiers ::= elaborated_declaration_specifiers // - case 289: { action. consumeTypeSpecifierEnumeration(true); break; + case 259: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 295: enumerator_definition ::= identifier_token + // Rule 260: declaration_specifiers ::= enum_declaration_specifiers // - case 295: { action. consumeEnumerator(false); break; + case 260: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 296: enumerator_definition ::= identifier_token = constant_expression + // Rule 261: declaration_specifiers ::= type_name_declaration_specifiers // - case 296: { action. consumeEnumerator(true); break; + case 261: { action. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 298: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } + // Rule 263: declaration_specifiers_opt ::= $Empty // - case 298: { action. consumeNamespaceDefinition(true); break; + case 263: { action. consumeEmpty(); break; } // - // Rule 299: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } + // Rule 267: no_type_declaration_specifier ::= friend // - case 299: { action. consumeNamespaceDefinition(false); break; + case 267: { action. consumeToken(); break; } // - // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 268: no_type_declaration_specifier ::= typedef // - case 301: { action. consumeNamespaceAliasDefinition(); break; + case 268: { action. consumeToken(); break; } // - // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 288: storage_class_specifier ::= auto // - case 302: { action. consumeUsingDeclaration(); break; + case 288: { action. consumeToken(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 289: storage_class_specifier ::= register // - case 303: { action. consumePlaceHolder(); break; + case 289: { action. consumeToken(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 290: storage_class_specifier ::= static // - case 304: { action. consumeEmpty(); break; + case 290: { action. consumeToken(); break; } // - // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 291: storage_class_specifier ::= extern // - case 305: { action. consumeUsingDirective(); break; + case 291: { action. consumeToken(); break; } // - // Rule 306: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 292: storage_class_specifier ::= mutable // - case 306: { action. consumeLinkageSpecification(); break; + case 292: { action. consumeToken(); break; } // - // Rule 307: linkage_specification ::= extern stringlit declaration + // Rule 293: function_specifier ::= inline // - case 307: { action. consumeLinkageSpecification(); break; + case 293: { action. consumeToken(); break; } // - // Rule 312: init_declarator_complete ::= init_declarator + // Rule 294: function_specifier ::= virtual // - case 312: { action. consumeInitDeclaratorComplete(); break; + case 294: { action. consumeToken(); break; } // - // Rule 314: init_declarator ::= complete_declarator initializer + // Rule 295: function_specifier ::= explicit // - case 314: { action. consumeDeclaratorWithInitializer(true); break; + case 295: { action. consumeToken(); break; } // - // Rule 317: declarator ::= ptr_operator_seq direct_declarator + // Rule 296: simple_type_specifier ::= simple_type_specifier_token // - case 317: { action. consumeDeclaratorWithPointer(true); break; + case 296: { action. consumeToken(); break; } // - // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 310: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 319: { action. consumeDeclaratorWithPointer(true); break; + case 310: { action. consumeQualifiedId(false); break; } // - // Rule 323: basic_direct_declarator ::= declarator_id_name + // Rule 311: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 323: { action. consumeDirectDeclaratorIdentifier(); break; + case 311: { action. consumeQualifiedId(false); break; } // - // Rule 324: basic_direct_declarator ::= ( declarator ) + // Rule 312: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 324: { action. consumeDirectDeclaratorBracketed(); break; + case 312: { action. consumeQualifiedId(false); break; } // - // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 313: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 325: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 313: { action. consumeQualifiedId(true); break; } // - // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 315: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 326: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 315: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 316: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 327: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 316: { action. consumeTypeSpecifierElaborated(true); break; } // - // Rule 328: array_modifier ::= [ constant_expression ] + // Rule 317: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 328: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 317: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 329: array_modifier ::= [ ] + // Rule 321: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 329: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 321: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 330: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 322: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 330: { action. consumePointer(); break; + case 322: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 331: ptr_operator ::= pointer_hook & pointer_hook + // Rule 328: enumerator_definition ::= identifier_token // - case 331: { action. consumeReferenceOperator(); break; + case 328: { action. consumeEnumerator(false); break; } // - // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 329: enumerator_definition ::= identifier_token = constant_expression // - case 332: { action. consumePointerToMember(); break; + case 329: { action. consumeEnumerator(true); break; } // - // Rule 339: cv_qualifier ::= const + // Rule 331: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } // - case 339: { action. consumeToken(); break; + case 331: { action. consumeNamespaceDefinition(true); break; } // - // Rule 340: cv_qualifier ::= volatile + // Rule 332: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } // - case 340: { action. consumeToken(); break; + case 332: { action. consumeNamespaceDefinition(false); break; } // - // Rule 342: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 334: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 342: { action. consumeQualifiedId(false); break; + case 334: { action. consumeNamespaceAliasDefinition(); break; } // - // Rule 343: type_id ::= type_specifier_seq + // Rule 335: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 343: { action. consumeTypeId(false); break; + case 335: { action. consumeUsingDeclaration(); break; } // - // Rule 344: type_id ::= type_specifier_seq abstract_declarator + // Rule 336: typename_opt ::= typename // - case 344: { action. consumeTypeId(true); break; + case 336: { action. consumePlaceHolder(); break; } // - // Rule 347: abstract_declarator ::= ptr_operator_seq + // Rule 337: typename_opt ::= $Empty // - case 347: { action. consumeDeclaratorWithPointer(false); break; + case 337: { action. consumeEmpty(); break; } // - // Rule 348: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 338: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 348: { action. consumeDeclaratorWithPointer(true); break; + case 338: { action. consumeUsingDirective(); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 339: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 352: { action. consumeDirectDeclaratorBracketed(); break; + case 339: { action. consumeLinkageSpecification(); break; } // - // Rule 353: basic_direct_abstract_declarator ::= ( ) + // Rule 340: linkage_specification ::= extern stringlit declaration // - case 353: { action. consumeAbstractDeclaratorEmpty(); break; + case 340: { action. consumeLinkageSpecification(); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_modifier + // Rule 345: init_declarator_complete ::= init_declarator // - case 354: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 345: { action. consumeInitDeclaratorComplete(); break; } // - // Rule 355: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 347: init_declarator ::= complete_declarator initializer // - case 355: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 347: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 356: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 350: declarator ::= ptr_operator_seq direct_declarator // - case 356: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 350: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 352: function_declarator ::= ptr_operator_seq direct_declarator // - case 357: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 352: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 358: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 356: basic_direct_declarator ::= declarator_id_name // - case 358: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; + case 356: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 357: basic_direct_declarator ::= ( declarator ) // - case 359: { action. consumePlaceHolder(); break; + case 357: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 358: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 360: { action. consumeEmpty(); break; + case 358: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 359: array_direct_declarator ::= array_direct_declarator array_modifier // - case 361: { action. consumePlaceHolder(); break; + case 359: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 367: abstract_declarator_opt ::= $Empty + // Rule 360: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 367: { action. consumeEmpty(); break; + case 360: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 361: array_modifier ::= [ constant_expression ] // - case 368: { action. consumeParameterDeclaration(); break; + case 361: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 369: parameter_declaration ::= declaration_specifiers + // Rule 362: array_modifier ::= [ ] // - case 369: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 362: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 371: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 363: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 371: { action. consumeDeclaratorWithInitializer(true); break; + case 363: { action. consumePointer(); break; } // - // Rule 373: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 364: ptr_operator ::= pointer_hook & pointer_hook // - case 373: { action. consumeDeclaratorWithInitializer(true); break; + case 364: { action. consumeReferenceOperator(); break; } // - // Rule 374: parameter_init_declarator ::= = parameter_initializer + // Rule 365: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 374: { action. consumeDeclaratorWithInitializer(false); break; + case 365: { action. consumePointerToMember(); break; } // - // Rule 375: parameter_initializer ::= assignment_expression + // Rule 372: cv_qualifier ::= const // - case 375: { action. consumeInitializer(); break; + case 372: { action. consumeToken(); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 373: cv_qualifier ::= volatile // - case 376: { action. consumeFunctionDefinition(false); break; + case 373: { action. consumeToken(); break; } // - // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 375: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 377: { action. consumeFunctionDefinition(true); break; + case 375: { action. consumeQualifiedId(false); break; } // - // Rule 380: initializer ::= ( expression_list ) + // Rule 376: type_id ::= type_specifier_seq // - case 380: { action. consumeInitializerConstructor(); break; + case 376: { action. consumeTypeId(false); break; } // - // Rule 381: initializer_clause ::= assignment_expression + // Rule 377: type_id ::= type_specifier_seq abstract_declarator // - case 381: { action. consumeInitializer(); break; + case 377: { action. consumeTypeId(true); break; } // - // Rule 382: initializer_clause ::= initializer_list + // Rule 380: abstract_declarator ::= ptr_operator_seq // - case 382: { action. consumeInitializer(); break; + case 380: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 383: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // Rule 381: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 383: { action. consumeInitializerList(); break; + case 381: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 384: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // Rule 385: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 384: { action. consumeInitializerList(); break; + case 385: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 385: initializer_list ::= { } + // Rule 386: basic_direct_abstract_declarator ::= ( ) // - case 385: { action. consumeInitializerList(); break; + case 386: { action. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 386: start_initializer_list ::= $Empty + // Rule 387: array_direct_abstract_declarator ::= array_modifier // - case 386: { action. initializerListStart(); break; + case 387: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 387: end_initializer_list ::= $Empty + // Rule 388: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 387: { action. initializerListEnd(); break; + case 388: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 392: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 389: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 392: { action. consumeClassSpecifier(); break; + case 389: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 393: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // Rule 390: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 393: { action. consumeClassHead(false); break; + case 390: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 394: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // Rule 391: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 394: { action. consumeClassHead(false); break; + case 391: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 395: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // Rule 392: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 395: { action. consumeClassHead(true); break; + case 392: { action. consumePlaceHolder(); break; } // - // Rule 396: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // Rule 393: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 396: { action. consumeClassHead(true); break; + case 393: { action. consumeEmpty(); break; } // - // Rule 400: identifier_name_opt ::= $Empty + // Rule 394: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 394: { action. consumePlaceHolder(); break; + } + + // + // Rule 400: abstract_declarator_opt ::= $Empty // case 400: { action. consumeEmpty(); break; + } + + // + // Rule 401: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 401: { action. consumeParameterDeclaration(); break; + } + + // + // Rule 402: parameter_declaration ::= declaration_specifiers + // + case 402: { action. consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // Rule 404: parameter_init_declarator ::= declarator = parameter_initializer + // + case 404: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 406: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 406: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 407: parameter_init_declarator ::= = parameter_initializer + // + case 407: { action. consumeDeclaratorWithInitializer(false); break; + } + + // + // Rule 408: parameter_initializer ::= assignment_expression + // + case 408: { action. consumeInitializer(); break; + } + + // + // Rule 409: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // + case 409: { action. consumeFunctionDefinition(false); break; + } + + // + // Rule 410: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // + case 410: { action. consumeFunctionDefinition(true); break; + } + + // + // Rule 413: initializer ::= ( expression_list ) + // + case 413: { action. consumeInitializerConstructor(); break; + } + + // + // Rule 414: initializer_clause ::= assignment_expression + // + case 414: { action. consumeInitializer(); break; + } + + // + // Rule 415: initializer_clause ::= initializer_list + // + case 415: { action. consumeInitializer(); break; + } + + // + // Rule 416: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // + case 416: { action. consumeInitializerList(); break; + } + + // + // Rule 417: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // + case 417: { action. consumeInitializerList(); break; + } + + // + // Rule 418: initializer_list ::= { } + // + case 418: { action. consumeInitializerList(); break; + } + + // + // Rule 419: start_initializer_list ::= $Empty + // + case 419: { action. initializerListStart(); break; + } + + // + // Rule 420: end_initializer_list ::= $Empty + // + case 420: { action. initializerListEnd(); break; + } + + // + // Rule 425: class_specifier ::= class_head { member_declaration_list_opt } + // + case 425: { action. consumeClassSpecifier(); break; + } + + // + // Rule 426: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // + case 426: { action. consumeClassHead(false); break; + } + + // + // Rule 427: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // + case 427: { action. consumeClassHead(false); break; + } + + // + // Rule 428: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // + case 428: { action. consumeClassHead(true); break; + } + + // + // Rule 429: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // + case 429: { action. consumeClassHead(true); break; + } + + // + // Rule 433: identifier_name_opt ::= $Empty + // + case 433: { action. consumeEmpty(); break; } // - // Rule 404: visibility_label ::= access_specifier_keyword : + // Rule 437: visibility_label ::= access_specifier_keyword : // - case 404: { action. consumeVisibilityLabel(); break; + case 437: { action. consumeVisibilityLabel(); break; } // - // Rule 405: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 438: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 405: { action. consumeDeclarationSimple(true); break; + case 438: { action. consumeDeclarationSimple(true); break; } // - // Rule 406: member_declaration ::= declaration_specifiers_opt ; + // Rule 439: member_declaration ::= declaration_specifiers_opt ; // - case 406: { action. consumeDeclarationSimple(false); break; + case 439: { action. consumeDeclarationSimple(false); break; } // - // Rule 409: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 442: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 409: { action. consumeMemberDeclarationQualifiedId(); break; + case 442: { action. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 415: member_declaration ::= ERROR_TOKEN + // Rule 448: member_declaration ::= ERROR_TOKEN // - case 415: { action. consumeDeclarationProblem(); break; + case 448: { action. consumeDeclarationProblem(); break; } // - // Rule 424: member_declarator ::= declarator constant_initializer + // Rule 457: member_declarator ::= declarator constant_initializer // - case 424: { action. consumeMemberDeclaratorWithInitializer(); break; + case 457: { action. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 425: member_declarator ::= bit_field_declarator : constant_expression + // Rule 458: member_declarator ::= bit_field_declarator : constant_expression // - case 425: { action. consumeBitField(true); break; + case 458: { action. consumeBitField(true); break; } // - // Rule 426: member_declarator ::= : constant_expression + // Rule 459: member_declarator ::= : constant_expression // - case 426: { action. consumeBitField(false); break; + case 459: { action. consumeBitField(false); break; } // - // Rule 427: bit_field_declarator ::= identifier_name + // Rule 460: bit_field_declarator ::= identifier_name // - case 427: { action. consumeDirectDeclaratorIdentifier(); break; + case 460: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 428: constant_initializer ::= = constant_expression + // Rule 461: constant_initializer ::= = constant_expression // - case 428: { action. consumeInitializer(); break; + case 461: { action. consumeInitializer(); break; } // - // Rule 434: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 467: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 434: { action. consumeBaseSpecifier(false, false); break; + case 467: { action. consumeBaseSpecifier(false, false); break; } // - // Rule 435: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 468: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 435: { action. consumeBaseSpecifier(true, true); break; + case 468: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 436: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 469: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 436: { action. consumeBaseSpecifier(true, true); break; + case 469: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 437: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 470: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 437: { action. consumeBaseSpecifier(true, false); break; + case 470: { action. consumeBaseSpecifier(true, false); break; } // - // Rule 438: access_specifier_keyword ::= private + // Rule 471: access_specifier_keyword ::= private // - case 438: { action. consumeToken(); break; + case 471: { action. consumeToken(); break; } // - // Rule 439: access_specifier_keyword ::= protected + // Rule 472: access_specifier_keyword ::= protected // - case 439: { action. consumeToken(); break; + case 472: { action. consumeToken(); break; } // - // Rule 440: access_specifier_keyword ::= public + // Rule 473: access_specifier_keyword ::= public // - case 440: { action. consumeToken(); break; + case 473: { action. consumeToken(); break; } // - // Rule 442: access_specifier_keyword_opt ::= $Empty + // Rule 475: access_specifier_keyword_opt ::= $Empty // - case 442: { action. consumeEmpty(); break; + case 475: { action. consumeEmpty(); break; } // - // Rule 444: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 477: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 444: { action. consumeTemplateId(); break; + case 477: { action. consumeTemplateId(); break; } // - // Rule 445: conversion_function_id ::= operator conversion_type_id + // Rule 478: conversion_function_id ::= operator conversion_type_id // - case 445: { action. consumeConversionName(); break; + case 478: { action. consumeConversionName(); break; } // - // Rule 446: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 479: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 446: { action. consumeTypeId(true); break; + case 479: { action. consumeTypeId(true); break; } // - // Rule 447: conversion_type_id ::= type_specifier_seq + // Rule 480: conversion_type_id ::= type_specifier_seq // - case 447: { action. consumeTypeId(false); break; + case 480: { action. consumeTypeId(false); break; } // - // Rule 448: conversion_declarator ::= ptr_operator_seq + // Rule 481: conversion_declarator ::= ptr_operator_seq // - case 448: { action. consumeDeclaratorWithPointer(false); break; + case 481: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 454: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 487: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 454: { action. consumeConstructorChainInitializer(); break; + case 487: { action. consumeConstructorChainInitializer(); break; } // - // Rule 455: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 488: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 455: { action. consumeQualifiedId(false); break; + case 488: { action. consumeQualifiedId(false); break; } // - // Rule 458: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 491: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 458: { action. consumeTemplateId(); break; + case 491: { action. consumeTemplateId(); break; } // - // Rule 459: operator_id_name ::= operator overloadable_operator + // Rule 492: operator_id_name ::= operator overloadable_operator // - case 459: { action. consumeOperatorName(); break; + case 492: { action. consumeOperatorName(); break; } // - // Rule 502: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 535: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 502: { action. consumeTemplateDeclaration(); break; + case 535: { action. consumeTemplateDeclaration(); break; } // - // Rule 503: export_opt ::= export + // Rule 536: export_opt ::= export // - case 503: { action. consumePlaceHolder(); break; + case 536: { action. consumePlaceHolder(); break; } // - // Rule 504: export_opt ::= $Empty + // Rule 537: export_opt ::= $Empty // - case 504: { action. consumeEmpty(); break; + case 537: { action. consumeEmpty(); break; } // - // Rule 508: template_parameter ::= parameter_declaration + // Rule 541: template_parameter ::= parameter_declaration // - case 508: { action. consumeTemplateParamterDeclaration(); break; + case 541: { action. consumeTemplateParamterDeclaration(); break; } // - // Rule 509: type_parameter ::= class identifier_name_opt + // Rule 542: type_parameter ::= class identifier_name_opt // - case 509: { action. consumeSimpleTypeTemplateParameter(false); break; + case 542: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 510: type_parameter ::= class identifier_name_opt = type_id + // Rule 543: type_parameter ::= class identifier_name_opt = type_id // - case 510: { action. consumeSimpleTypeTemplateParameter(true); break; + case 543: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 511: type_parameter ::= typename identifier_name_opt + // Rule 544: type_parameter ::= typename identifier_name_opt // - case 511: { action. consumeSimpleTypeTemplateParameter(false); break; + case 544: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 512: type_parameter ::= typename identifier_name_opt = type_id + // Rule 545: type_parameter ::= typename identifier_name_opt = type_id // - case 512: { action. consumeSimpleTypeTemplateParameter(true); break; + case 545: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 513: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 546: type_parameter ::= template < template_parameter_list > class identifier_name_opt // - case 513: { action. consumeTemplatedTypeTemplateParameter(false); break; + case 546: { action. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 514: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 547: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 514: { action. consumeTemplatedTypeTemplateParameter(true); break; + case 547: { action. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 515: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 548: template_id_name ::= identifier_name < template_argument_list_opt > // - case 515: { action. consumeTemplateId(); break; + case 548: { action. consumeTemplateId(); break; } // - // Rule 520: template_argument ::= assignment_expression + // Rule 555: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 520: { action. consumeTemplateArgumentExpression(); break; + case 555: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 521: template_argument ::= type_id + // Rule 556: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: // - case 521: { action. consumeTemplateArgumentTypeId(); break; + case 556: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 522: explicit_instantiation ::= template declaration + // Rule 557: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 522: { action. consumeTemplateExplicitInstantiation(); break; + case 557: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 523: explicit_specialization ::= template < > declaration + // Rule 558: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: // - case 523: { action. consumeTemplateExplicitSpecialization(); break; + case 558: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 524: try_block ::= try compound_statement handler_seq + // Rule 559: class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate // - case 524: { action. consumeStatementTryBlock(true); break; + case 559: { action. consumeNameWithTemplateKeyword(); break; } // - // Rule 525: try_block ::= try compound_statement + // Rule 561: nested_name_specifier_opt_inTemplate ::= $Empty // - case 525: { action. consumeStatementTryBlock(false); break; + case 561: { action. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 528: handler ::= catch ( exception_declaration ) compound_statement + // Rule 564: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name // - case 528: { action. consumeStatementCatchHandler(false); break; + case 564: { action. consumeQualifiedId(false); break; } // - // Rule 529: handler ::= catch ( ... ) compound_statement + // Rule 565: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 529: { action. consumeStatementCatchHandler(true); break; + case 565: { action. consumeQualifiedId(true); break; } // - // Rule 530: exception_declaration ::= type_specifier_seq declarator + // Rule 570: declaration_specifiers_inTemplate ::= simple_declaration_specifiers // - case 530: { action. consumeDeclarationSimple(true); break; + case 570: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 531: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 571: declaration_specifiers_inTemplate ::= class_declaration_specifiers // - case 531: { action. consumeDeclarationSimple(true); break; + case 571: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 532: exception_declaration ::= type_specifier_seq + // Rule 572: declaration_specifiers_inTemplate ::= elaborated_declaration_specifiers // - case 532: { action. consumeDeclarationSimple(false); break; + case 572: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 534: exception_specification ::= throw ( ) + // Rule 573: declaration_specifiers_inTemplate ::= enum_declaration_specifiers // - case 534: { action. consumePlaceHolder(); break; + case 573: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 555: attribute_parameter ::= assignment_expression + // Rule 574: declaration_specifiers_inTemplate ::= type_name_declaration_specifiers_inTemplate // - case 555: { action. consumeIgnore(); break; + case 574: { action. consumeDeclarationSpecifiersTypeName(); break; + } + + // + // Rule 576: type_id_inTemplate ::= type_specifier_seq_inTemplate + // + case 576: { action. consumeTypeId(false); break; + } + + // + // Rule 577: type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator + // + case 577: { action. consumeTypeId(true); break; + } + + // + // Rule 578: template_argument ::= assignment_expression_inTemplate + // + case 578: { action. consumeTemplateArgumentExpression(); break; + } + + // + // Rule 579: template_argument ::= type_id_inTemplate + // + case 579: { action. consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 580: explicit_instantiation ::= template declaration + // + case 580: { action. consumeTemplateExplicitInstantiation(); break; + } + + // + // Rule 581: explicit_specialization ::= template < > declaration + // + case 581: { action. consumeTemplateExplicitSpecialization(); break; + } + + // + // Rule 582: try_block ::= try compound_statement handler_seq + // + case 582: { action. consumeStatementTryBlock(true); break; + } + + // + // Rule 583: try_block ::= try compound_statement + // + case 583: { action. consumeStatementTryBlock(false); break; + } + + // + // Rule 586: handler ::= catch ( exception_declaration ) compound_statement + // + case 586: { action. consumeStatementCatchHandler(false); break; + } + + // + // Rule 587: handler ::= catch ( ... ) compound_statement + // + case 587: { action. consumeStatementCatchHandler(true); break; + } + + // + // Rule 588: exception_declaration ::= type_specifier_seq declarator + // + case 588: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 589: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 589: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 590: exception_declaration ::= type_specifier_seq + // + case 590: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 592: exception_specification ::= throw ( ) + // + case 592: { action. consumePlaceHolder(); break; + } + + // + // Rule 613: attribute_parameter ::= assignment_expression + // + case 613: { action. consumeIgnore(); break; } // - // Rule 566: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; + // Rule 624: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; // - case 566: { gnuAction.consumeDeclarationASM(); break; + case 624: { gnuAction.consumeDeclarationASM(); break; } // - // Rule 577: unary_expression ::= __alignof__ unary_expression + // Rule 635: unary_expression ::= __alignof__ unary_expression // - case 577: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; + case 635: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; } // - // Rule 578: unary_expression ::= __alignof__ ( type_id ) + // Rule 636: unary_expression ::= __alignof__ ( type_id ) // - case 578: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break; + case 636: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break; } // - // Rule 579: unary_expression ::= typeof unary_expression + // Rule 637: unary_expression ::= typeof unary_expression // - case 579: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + case 637: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; } // - // Rule 580: unary_expression ::= typeof ( type_id ) + // Rule 638: unary_expression ::= typeof ( type_id ) // - case 580: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; + case 638: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; } // - // Rule 581: relational_expression ::= relational_expression >? shift_expression + // Rule 639: relational_expression ::= relational_expression >? shift_expression // - case 581: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break; + case 639: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break; } // - // Rule 582: relational_expression ::= relational_expression : assignment_expression + // Rule 641: conditional_expression ::= logical_or_expression ? : assignment_expression // - case 583: { action. consumeExpressionConditional(); break; + case 641: { action. consumeExpressionConditional(); break; } // - // Rule 584: primary_expression ::= ( compound_statement ) + // Rule 642: primary_expression ::= ( compound_statement ) // - case 584: { gnuAction.consumeCompoundStatementExpression(); break; + case 642: { gnuAction.consumeCompoundStatementExpression(); break; } // - // Rule 585: labeled_statement ::= case case_range_expression : statement + // Rule 643: labeled_statement ::= case case_range_expression : statement // - case 585: { action. consumeStatementCase(); break; + case 643: { action. consumeStatementCase(); break; } // - // Rule 586: case_range_expression ::= constant_expression ... constant_expression + // Rule 644: case_range_expression ::= constant_expression ... constant_expression // - case 586: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 644: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 590: typeof_type_specifier ::= typeof unary_expression + // Rule 648: typeof_type_specifier ::= typeof unary_expression // - case 590: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + case 648: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; } // - // Rule 591: typeof_type_specifier ::= typeof ( type_id ) + // Rule 649: typeof_type_specifier ::= typeof ( type_id ) // - case 591: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; + case 649: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; } // - // Rule 592: declaration_specifiers ::= typeof_declaration_specifiers + // Rule 650: declaration_specifiers ::= typeof_declaration_specifiers // - case 592: { action. consumeDeclarationSpecifiersTypeof(); break; + case 650: { action. consumeDeclarationSpecifiersTypeof(); break; } // - // Rule 605: declarator ::= ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator + // Rule 663: declarator ::= ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator // - case 605: { action. consumeDeclaratorWithPointer(true); break; + case 663: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 608: simple_type_specifier ::= _Complex + // Rule 666: simple_type_specifier ::= _Complex // - case 608: { action. consumeToken(); break; + case 666: { action. consumeToken(); break; } // - // Rule 609: simple_type_specifier ::= _Imaginary + // Rule 667: simple_type_specifier ::= _Imaginary // - case 609: { action. consumeToken(); break; + case 667: { action. consumeToken(); break; } // - // Rule 610: cv_qualifier ::= restrict + // Rule 668: cv_qualifier ::= restrict // - case 610: { action. consumeToken(); break; + case 668: { action. consumeToken(); break; } // - // Rule 611: explicit_instantiation ::= extern template declaration + // Rule 669: explicit_instantiation ::= extern template declaration // - case 611: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break; + case 669: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break; } // - // Rule 612: explicit_instantiation ::= static template declaration + // Rule 670: explicit_instantiation ::= static template declaration // - case 612: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break; + case 670: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break; } // - // Rule 613: explicit_instantiation ::= inline template declaration + // Rule 671: explicit_instantiation ::= inline template declaration // - case 613: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break; + case 671: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break; } // - // Rule 614: postfix_expression ::= ( type_id ) initializer_list + // Rule 672: postfix_expression ::= ( type_id ) initializer_list // - case 614: { action. consumeExpressionTypeIdInitializer(); break; + case 672: { action. consumeExpressionTypeIdInitializer(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java index 5c9356bd162..71c515e22b5 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java @@ -52,634 +52,760 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 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,2,1,3,1, - 0,1,0,1,1,0,1,1,1,1, - 1,1,1,1,1,3,4,3,2,1, - 4,2,1,2,5,7,5,1,4,1, - 0,5,7,2,8,1,1,2,2,3, - 2,3,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2,1, - 0,4,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,3,5,3,3,1,3,3,1,3, + 1,3,1,3,1,3,1,3,1,5, + 1,1,3,3,3,3,3,3,3,3, + 3,3,3,1,2,1,1,3,3,3, + 3,3,3,3,3,3,3,3,1,2, + 1,3,1,0,1,0,1,1,0,1, + 1,1,1,1,1,1,1,1,3,4, + 3,2,1,4,2,1,2,5,7,5, + 1,4,1,0,5,7,2,8,1,1, + 2,2,3,2,3,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, - 2,5,6,5,0,1,0,7,8,0, - 1,3,1,0,1,3,1,7,6,0, - 7,6,1,0,6,6,4,1,3,1, - 0,1,1,2,1,1,3,1,3,1, - 1,1,1,3,9,2,2,3,2,5, - 3,7,0,1,2,2,1,0,1,1, - 1,3,1,2,1,1,2,3,1,1, - 1,3,2,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,1,7,6,3,0,0,1,3,1, - 1,5,6,6,7,7,0,0,1,0, - 1,1,1,2,4,2,2,1,5,1, - 1,1,1,1,1,1,2,1,0,1, - 3,1,1,2,3,2,1,2,2,1, - 0,1,3,3,5,5,4,1,1,1, - 1,0,1,5,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,2,1,0,4,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,3, + 4,4,5,2,5,6,5,0,1,0, + 7,8,0,1,3,1,0,1,3,1, + 7,6,0,7,6,1,0,6,6,4, + 1,3,1,0,1,1,2,1,1,3, + 1,3,1,1,1,1,3,9,2,2, + 3,2,5,3,7,0,1,2,2,1, + 0,1,1,1,3,1,2,1,1,2, + 3,1,1,1,3,2,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,1,7,6,3,0,0, + 1,3,1,1,5,6,6,7,7,0, + 0,1,0,1,1,1,2,4,2,2, + 1,5,1,1,1,1,1,1,1,2, + 1,0,1,3,1,1,2,3,2,1, + 2,2,1,0,1,3,3,5,5,4, + 1,1,1,1,0,1,5,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,2, - 2,7,1,0,1,3,1,1,2,4, - 2,4,7,9,5,1,3,1,0,1, - 1,2,4,4,2,1,2,5,5,3, - 3,1,4,3,1,0,1,3,1,1, - 1,1,2,6,3,1,3,1,4,0, - 1,1,1,3,1,0,4,3,1,2, - 1,3,4,4,4,6,1,0,1,3, - 1,3,0,1,4,5,2,4,2,4, - 3,3,5,3,4,3,1,2,2,2, - 4,2,1,1,2,2,3,2,2,3, - 1,1,1,1,4,1,1,1,1,1, - 3,3,3,4,-162,0,0,0,-2,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-210,0,0, - 0,0,0,0,-7,0,0,0,0,-3, - 0,0,0,-311,0,-148,0,0,0,-34, - -8,0,0,0,-622,0,0,0,0,0, - 0,0,0,0,0,0,0,-69,0,0, - 0,-345,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-383,0,0,0,0,0, - 0,-9,0,0,0,0,-529,0,0,0, - -11,0,-41,0,0,0,0,0,0,0, - 0,0,0,0,-226,0,0,0,-137,0, - 0,0,0,0,0,0,0,-146,0,0, - -37,0,0,0,0,0,0,0,0,0, - 0,-435,0,-16,0,0,0,0,-127,0, - 0,0,0,0,0,0,0,0,0,-145, + 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,3, + 1,0,1,1,3,2,3,2,2,1, + 0,1,1,4,5,2,1,2,2,2, + 2,2,2,2,1,1,2,1,1,2, + 4,4,2,1,2,5,5,3,3,1, + 4,3,1,0,1,3,1,1,1,1, + 2,6,3,1,3,1,4,0,1,1, + 1,3,1,0,4,3,1,2,1,3, + 4,4,4,6,1,0,1,3,1,3, + 0,1,4,5,2,4,2,4,3,3, + 5,3,4,3,1,2,2,2,4,2, + 1,1,2,2,3,2,2,3,1,1, + 1,1,4,1,1,1,1,1,3,3, + 3,4,-162,0,0,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,0,0,0,0,0,-21,0,0,-14, + 0,0,0,-195,-2,-34,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-7, + 0,-686,0,0,0,0,-8,0,0,0, + 0,0,0,0,0,0,0,-210,-6,0, 0,0,0,0,0,0,0,0,0,0, - -61,0,0,-18,0,0,0,0,0,-596, - 0,0,0,0,-176,0,0,0,0,0, - -19,0,-189,0,0,0,0,0,0,0, + 0,0,0,0,-9,-69,0,0,0,-376, + 0,0,0,0,-11,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-133,0,-138,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-20,0,0,-22,-323,0,0, - 0,0,0,0,0,0,0,-28,0,0, - 0,0,0,0,0,-170,0,0,0,0, - 0,0,0,0,0,0,0,0,-408,0, - 0,0,-182,0,0,0,0,-190,0,0, + 0,0,0,0,0,0,0,-227,0,0, + 0,0,0,0,0,-101,-322,0,-70,0, + 0,0,-65,0,0,0,0,0,0,-29, + 0,0,-4,0,0,0,-16,0,0,0, + 0,0,0,0,0,-41,0,0,0,0, + 0,0,0,0,0,-3,-216,0,0,0, + 0,-137,0,0,0,-58,0,-18,0,-145, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-487,0,0,-23,0,0,0,0,0, - 0,0,-38,0,0,0,0,0,0,0, - 0,-224,0,0,0,0,0,-39,0,0, - 0,0,0,-15,0,0,0,0,0,0, - -361,0,0,0,0,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,0,0,0,0,0,0,-54,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-50,0,0,-4,0,-251,0,0,0, - 0,0,0,0,0,-63,0,0,0,0, - 0,0,0,0,0,0,0,-128,0,0, - 0,-305,-111,0,0,0,0,0,-101,0, - 0,0,0,-501,0,0,0,0,0,0, + 0,0,0,0,0,-146,0,0,-147,0, + 0,0,0,0,0,-245,0,0,0,0, + 0,0,-19,-133,0,0,0,0,-189,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-42,-58,0,0, - 0,0,0,-66,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-362,-96,-51, - 0,0,-64,-590,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-20,-357,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-28,-54,-110,0,0,0, + 0,0,0,0,0,0,0,-508,0,0, + -444,0,0,0,0,0,0,-57,0,-51, + 0,0,0,0,0,0,0,0,-190,0, + 0,0,0,0,0,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,0,0,0,0,0,0,0, + -107,-111,-224,0,0,-282,0,0,0,0, + -273,0,0,0,0,-14,-541,0,0,0, + -38,-118,0,0,-127,0,0,0,0,0, + 0,-39,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,0,0,0,-155,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,-42,0,-40,0,0,0,0, + 0,0,0,-44,0,0,0,0,0,0, + 0,0,0,0,0,0,-45,0,-404,-48, + 0,-555,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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,-347,0,0,0,-44,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-203,-29,0,0, - 0,0,0,0,0,0,0,-499,0,0, - 0,-45,0,0,-147,0,0,0,0,0, - -445,0,-183,0,0,0,-48,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,0,0,0,-543,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-409,0,0,0,0,-53,-36,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-313,0,0,0,-60,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-71,0,-91,0,0,0, - 0,0,0,0,0,0,-557,0,0,0, - -67,0,0,0,0,-308,0,0,0,0, - 0,0,0,0,0,0,-65,0,-169,0, - -72,0,0,0,0,0,0,0,-273,0, + 0,0,-316,-61,0,0,0,0,0,0, + -117,0,0,0,0,0,0,0,0,-176, + 0,0,0,0,-648,0,0,0,0,-98, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-86,0, - 0,0,0,-370,0,0,0,0,0,-87, - 0,0,-303,0,0,0,0,-416,0,0, - 0,-324,0,0,0,0,0,0,0,0, + 0,-462,0,-319,0,0,0,-68,0,0, 0,0,0,0,0,0,0,0,0,0, - -250,0,-25,-601,0,0,0,0,0,0, - 0,0,-68,0,0,0,0,0,0,0, + 0,-99,0,-450,0,0,0,-324,0,0, 0,0,0,0,0,0,0,0,0,0, - -405,0,0,0,-171,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -505,0,0,0,-88,0,0,0,0,0, + 0,0,0,0,0,-646,-333,0,0,0, + 0,0,0,-53,0,0,0,0,-455,0, + 0,0,0,0,0,0,0,-192,0,0, + 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,-271,-98,0,0,0, - -414,0,0,0,0,0,0,0,0,0, - 0,-201,0,0,0,0,0,0,0,-274, - 0,0,0,-89,0,0,0,0,0,0, - 0,0,-506,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-60,0, + 0,-577,0,0,-628,0,0,0,0,-15, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-90,0,-422,-92, + 0,0,0,-284,0,0,0,0,-71,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-155,0, - 0,0,-512,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-469,0, + -59,0,0,0,-314,0,0,0,0,-94, + 0,-63,0,0,0,0,0,0,0,0, + 0,0,-96,0,0,0,0,-457,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-172,0,0,-99,0,-125,0, - 0,-126,-178,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,0,0, - 0,0,-442,0,0,0,0,0,0,0, - 0,0,0,-93,0,0,-102,-239,0,0, - 0,-154,0,0,0,0,0,0,0,0, + 0,0,0,0,-482,-315,0,0,0,-66, + -182,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-399,0,-72,0, + -287,0,0,0,0,-255,0,0,0,0, + 0,0,0,0,-559,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -107,0,0,-94,-320,0,0,0,0,0, - 0,0,-523,0,0,0,0,0,-108,0, - 0,-192,0,0,0,0,-565,0,-202,0, - 0,0,-177,-348,0,0,0,-57,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-253,0,0,-160,0,0,0,0, + 0,0,-91,0,0,0,0,0,0,0, + 0,-86,0,-443,0,0,0,0,-560,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-542,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-132,0,-566,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-344,0,0,0,0,-486, + 0,0,0,0,0,-557,0,0,-193,-252, + 0,0,0,0,0,0,-178,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-551,0,0,0,0,-403,0, + -154,0,-108,0,-558,0,0,0,-331,0, + 0,0,0,-289,-626,0,0,0,0,-112, + -242,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-164,-584,0, + -327,0,0,-148,0,0,0,0,-378,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-364,0,0,0,0,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,0,0,-335,0,0,0, + 0,0,0,-622,0,0,0,0,0,0, + 0,0,-87,-170,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, + 0,0,-365,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,-95, + -174,-348,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-552,0, + 0,0,-603,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-129,0,0,0, + 0,-366,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-88, + -349,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,-580,0,0, + 0,0,-649,-203,0,0,0,-627,0,0, + 0,0,0,0,-476,-135,0,0,0,0, + -367,0,0,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,-92,-350, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-676,-386,-109,-93, + 0,0,0,0,0,0,0,-119,-684,-120, + 0,0,0,-611,0,0,0,0,0,-368, + 0,0,0,0,-614,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-379,-157,-351,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-123,-654,0,-124,-143,0,0,0, + 0,0,0,0,0,0,-199,0,-221,0, + 0,0,-102,0,0,0,0,0,-369,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,-380,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,-206,-223,0,0,-113,0, + 0,0,0,0,0,-225,0,-299,0,0, + 0,0,0,0,0,0,0,-370,0,0, + 0,0,-114,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-381,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, + 0,-304,0,-329,-436,-447,0,-115,0,-259, + 0,0,0,0,-330,-385,0,0,0,0, + 0,-116,0,0,0,0,-371,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,0,-604,-158,-78,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -408,0,-448,-130,-131,0,0,0,0,0, + 0,0,-134,0,0,-576,0,0,-140,0, + -159,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,0,0,0,0, + 0,0,0,-156,-79,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-624, + 0,-453,-456,0,0,-201,0,0,0,0, + 0,-205,-465,-523,-556,0,0,0,0,0, + 0,0,0,0,-373,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, + 0,-125,0,-80,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-207,-583,-208,0, + -483,-553,0,-670,0,0,-260,0,0,0, + -213,-595,-598,-599,0,0,0,-617,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,0,0,0,0,0,0, + -202,-215,-81,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-640,-294,-625,0,-317, + 0,0,0,-204,-228,-231,0,0,0,-651, + 0,0,0,0,0,-232,-233,0,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,0,0,0,0,-452, + 0,0,0,0,0,-212,-631,0,0,0, + -678,0,0,0,-142,0,0,0,0,-409, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-468,0,0, + 0,0,0,0,0,-392,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-671, + 0,0,0,-422,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -618,0,0,-235,-236,0,-401,0,0,0, + 0,0,0,0,-300,-175,0,0,0,0, + -209,0,-423,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,-402,-469,0,0,-473,0, + -484,0,0,-290,-50,0,0,0,0,0, + 0,0,-424,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,0,0,-520,-521,0,0,0,0,0, + -567,0,0,-639,-647,0,0,0,0,0, + 0,-425,0,0,0,0,-239,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-579,-616, + 0,0,-635,-645,-641,0,0,0,0,0, + 0,0,0,-662,0,0,0,0,0,0, + -426,0,0,0,0,-240,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-656,-666,0, + 0,-677,-241,0,0,0,0,0,-243,0, + 0,-667,-244,0,0,0,0,-248,0,-427, + 0,0,0,0,-246,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-261,-262,0,0, + 0,0,-660,0,0,0,0,-675,0,0, + -263,-264,0,0,0,0,-249,0,-428,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,-266,-267,0,0,0, + 0,0,0,0,0,0,-268,0,0,-269, + -270,0,0,0,0,-250,0,-429,0,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,-272,-278,-279,0,-280,-281, + -291,0,0,-293,0,-295,0,0,-303,-305, + 0,0,0,0,-251,0,-430,0,0,0, + 0,-306,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,-309, + 0,0,-311,0,-312,0,0,-313,-320,0, + 0,0,0,-276,0,-431,0,0,0,0, + -336,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-337,-352,-389,0,-391,-393,-394,0, + 0,-395,0,-396,0,0,-398,-437,0,0, + 0,0,-277,0,-432,0,0,0,0,-439, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-440,-441,-442,0,-458,-459,-466,0,0, + -467,0,-475,0,0,-477,-488,0,0,0, + 0,-489,0,-582,0,0,0,0,-490,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -283,-288,-82,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-298,-491,-663,0,-492, + -494,-495,0,0,-496,-497,-498,0,0,-672, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-601,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-499, + -500,0,-501,-502,-503,-504,0,0,-505,0, + 0,0,0,-506,-510,0,0,0,0,-308, + 0,-602,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,0,-513,-518, + -522,0,-526,-527,-528,0,0,-529,0,-530, + 0,0,0,0,0,0,0,0,-321,0, + -657,0,0,0,0,-531,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-532,-533,-534, + 0,-535,-536,-537,0,0,-538,0,-539,0, + 0,-679,-540,0,0,0,0,-323,0,-234, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-548,0,-254,0, + 0,-549,0,0,-550,0,-128,0,0,0, + 0,-574,0,0,0,0,0,0,-575,-585, + -596,-612,-613,0,0,0,-194,0,0,0, + -615,0,0,0,0,0,0,-325,-474,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-619,-633,-642,-650,0, + -658,-668,-669,0,-682,0,0,0,0,0, + -326,0,0,0,0,-485,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-106,0,0,0,0,-227,0,0, - 0,0,-349,0,0,0,-113,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-242,0,0,0,-204, - 0,0,0,0,0,0,0,-114,0,0, - 0,0,0,0,0,0,-206,0,0,0, - 0,-350,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-115,0,-262,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -306,0,0,0,0,-403,0,0,0,0, - -351,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-112,0,-304,0,0,0,0, - -116,0,0,0,0,-109,0,0,0,0, - 0,0,0,0,-130,0,-131,0,0,-352, + 0,0,0,0,-387,-406,-470,-471,-507,-569, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-524,0,0,0,0,-570,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-543,-554,-581,-591,-593, + -589,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-597,0,0,0,0,-630,0,0, + 0,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, + 0,0,0,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,0,0,0, + -636,0,0,0,0,0,0,0,0,0, + 0,0,0,-24,0,0,0,0,0,0, + 0,-226,0,0,0,0,-258,0,0,0, + 0,0,-600,0,0,0,0,-605,0,0, + 0,0,0,0,0,0,0,-12,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,-161,0, + 0,0,0,0,0,0,0,0,0,-434, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-606,-5,0,0, + 0,0,-52,0,0,-607,0,0,0,0, + 0,0,0,0,0,0,0,0,-608,-643, + 0,0,0,0,0,0,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,0,0,0,0,0,0,0,0, + 0,0,0,0,-644,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-680,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-328,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -655,-661,0,0,0,0,0,0,0,-165, + -472,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-67,0, + 0,0,0,0,0,0,0,0,-664,-138, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-665,0, + 0,0,0,0,0,-84,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-363,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-417,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-169,0,-674,-685, + 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,0,0,0,0,0,0, + 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,-418,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-247,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-419,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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,-353,0,0,0,0, + 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, + 0,0,0,0,-420,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-562,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-36,0, + 0,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,0,0,0,0,0,0, + 0,0,0,0,0,0,-97,0,0,0, + 0,0,0,0,0,0,0,0,-172,-177, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-83,0,0,0,0, + -26,0,0,0,-184,0,0,0,0,0, + 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, + -400,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,-338, + 0,0,0,0,0,0,0,0,0,-166, + 0,0,0,0,0,0,0,0,0,0, + 0,-334,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,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,0,0,0,0,0,0,0,0,0, + 0,0,-360,0,0,0,0,0,0,0, + 0,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,0,0,0,0, + 0,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,0,0,-100, + 0,0,0,0,-568,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-573,0,0,0,0,0,0,0,0, + 0,0,0,0,-23,0,0,0,0,-185, + 0,0,0,0,-25,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, + -256,0,0,0,0,0,0,0,0,0, + 0,0,0,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,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,0,0, + 0,0,0,0,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,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-180, + 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,-230,0,0,0,0, + 0,0,0,0,0,-355,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-388,-167,0,0,0,0,0,0, + 0,0,-186,0,0,0,0,-103,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,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,0,0,0, - 0,0,-322,0,0,0,0,0,0,0, - 0,0,0,0,-160,0,0,0,0,0, - -119,0,0,0,0,-129,0,0,-353,0, 0,0,-411,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-402,0,0,0,0,0,0,-134,0, - 0,0,0,-120,0,0,0,0,0,-123, - 0,0,0,0,-193,0,0,-354,0,0, - 0,-249,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -421,-387,0,0,0,0,0,-212,0,0, - 0,0,-124,0,0,0,0,0,-140,0, - 0,0,-142,0,0,0,-355,0,0,0, - -156,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,-205,0,0,0, - 0,0,0,0,0,0,0,-143,0,0, - -135,0,0,0,0,-356,0,0,0,-256, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-588,0, - 0,-199,0,0,0,0,0,0,0,0, - -221,0,0,0,0,0,-223,0,0,-376, - 0,0,0,0,-357,0,0,0,-208,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-497,0, - 0,0,0,0,-213,0,0,0,0,-225, - 0,0,0,0,0,0,0,0,-215,0, - -157,0,0,-358,0,0,0,-228,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-498,0,0,0, - 0,0,0,-229,0,0,0,0,-288,0, - 0,0,0,0,-278,0,0,-257,-216,-158, - 0,0,-374,0,0,0,-230,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-117,0,0,0,0, - 0,0,-289,0,0,0,0,-410,0,0, - 0,0,0,-159,0,0,-393,0,0,0, - -231,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -321,0,0,0,0,0,-522,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -232,0,-207,0,0,-526,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-546,0, - 0,0,0,0,0,-233,0,0,0,0, - 0,0,0,0,-283,0,-552,0,0,-385, - 0,0,0,0,-527,0,0,0,-573,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-612,0, - 0,0,0,0,-234,0,0,0,0,-293, - 0,0,0,0,0,0,0,0,-554,0, - -386,0,0,0,-180,-599,0,0,0,-235, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -589,0,0,0,-316,0,0,0,0,0, - 0,-209,0,0,-433,0,0,0,-236,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-569,0,0, - 0,0,0,0,-567,0,0,0,0,0, - 0,0,0,-245,0,0,0,0,-444,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,-318,0,0,0,0,0, - 0,0,0,-319,0,0,0,0,0,-609, - 0,0,-593,0,0,0,-222,-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,-238,0,0,-568,0,0, - 0,0,0,0,0,0,0,0,-439,0, - 0,-516,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-591,0,-240,-369,-241,0, - 0,0,0,0,0,0,-392,0,0,0, - 0,0,-598,0,0,-613,0,0,0,-27, - -534,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-243,0,0, - -258,0,0,0,0,-132,0,0,0,0, - 0,-395,0,0,-572,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-406,-427, - 0,0,0,0,0,0,0,0,0,-95, - 0,0,0,0,0,-581,0,0,-246,-470, - -259,0,0,0,0,-260,-261,0,-35,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-267,0,0,0,0,0,-407,0,0, - 0,0,0,0,0,0,-276,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -268,0,-628,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-388,0,0,0, - -269,0,0,0,0,0,0,-247,0,-270, - 0,-360,0,0,0,-428,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-553,0,0,0,0,0, - 0,-248,0,0,0,0,-265,0,0,0, - 0,0,-280,-5,0,0,0,0,0,0, - 0,0,-12,0,0,-441,0,0,-17,0, - 0,0,-266,0,0,0,0,0,0,0, - 0,0,0,0,-282,-31,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-174, - -284,-292,0,0,-30,0,0,0,0,0, - 0,0,0,-194,0,0,0,-291,-294,0, - 0,0,0,0,0,-317,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,-432,-295,-412,0,0,0,0, - 0,0,0,-359,0,-384,0,0,-571,0, - 0,-298,0,0,0,0,-587,0,0,0, - -517,0,0,0,0,0,-300,-301,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-302,0,0,0,0,0,0,-570, - 0,0,0,0,0,0,0,0,-309,-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,-277,0,0,0,-346,0, - 0,0,-325,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-503,0,0,0,0, - 0,0,0,-326,0,-508,0,0,0,0, - 0,0,0,0,0,0,0,0,-431,0, - 0,0,-373,0,0,0,0,0,0,0, - 0,0,0,-6,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-173,-618,-620, - 0,0,-578,0,0,0,0,0,0,0, - 0,0,0,0,0,-626,0,-375,0,0, - 0,0,0,0,-443,0,0,0,0,0, - -377,0,0,-378,0,-415,-195,-564,0,0, - 0,-504,0,0,-379,0,0,0,0,-287, - -486,0,0,-481,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-255,0, - 0,-297,0,0,0,-342,0,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,-382,0,0,-139,0,0,0,0, - -478,-424,0,0,0,0,-184,0,0,0, - 0,0,0,0,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,-412, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-398, - 0,0,-399,-164,0,0,0,0,0,0, - 0,0,0,-484,-502,-400,0,0,0,0, - 0,0,-401,0,0,-252,0,0,0,-343, - 0,0,0,-417,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-418,-425,-426,-434,0,0,-310, - 0,0,0,0,0,0,-344,0,0,0, - -436,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-413,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -446,0,0,0,0,0,-447,0,0,0, - -438,0,0,0,0,0,0,0,0,0, - 0,0,0,-43,0,0,0,-448,-100,-175, - 0,0,-621,0,0,0,0,0,-514,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-525,0,0,-312, - -363,-314,0,0,0,0,-315,0,0,0, - -371,0,-449,0,0,0,0,0,0,0, - -528,-450,0,0,0,-614,0,0,0,0, - 0,0,0,0,0,-364,0,-482,0,0, - 0,0,0,0,-163,0,0,-451,0,-452, - 0,-519,0,0,0,0,0,0,0,0, - 0,0,0,0,-623,-453,0,0,0,0, - 0,0,0,-365,0,0,0,0,0,0, - -454,-559,-253,0,-26,0,0,0,-455,0, - -456,-457,0,0,0,0,0,-540,0,0, - 0,0,-458,-459,-460,0,0,-560,0,0, + 0,0,0,-414,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -161,0,-461,0,0,0,0,0,0,-462, - 0,0,0,0,0,-463,0,0,0,0, - 0,0,0,0,-299,0,0,0,0,0, - 0,0,0,0,0,0,0,-440,-513,0, - -464,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-334,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,-390,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-544,0,-465,-429,0, - 0,0,0,0,-466,-561,-583,-467,0,0, - 0,0,-604,-608,0,-619,0,0,-471,0, - -473,0,-474,-479,0,0,0,0,0,0, - 0,-279,0,-335,0,0,0,0,0,0, + -415,0,0,0,0,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,-336,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,-168,0,0,0,-173,-30, + 0,0,0,0,-493,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -577,-483,0,-468,0,0,-485,0,0,-337, - 0,0,0,-494,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-495,0,-496,0,0,0,0,-59, - 0,0,-338,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-55,0,0,0,0, - 0,0,-520,0,0,-339,0,0,0,-521, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-372,-530, - -541,-555,0,0,0,-97,0,0,-489,0, - -500,-556,-536,-558,0,-562,-575,-584,0,-592, - -600,0,-610,-611,-40,0,-624,0,0,0, - 0,0,0,0,0,-547,0,0,0,-602, - 0,-490,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-538,0, - -419,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-73,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-617, - 0,-340,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-214,0,0,-542,-52,0, - 0,-545,0,0,0,0,0,0,0,0, + 0,0,0,0,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, - 0,0,0,-582,0,0,0,0,0,0, - 0,0,0,0,-341,0,0,0,0,0, + 0,0,-397,-43,0,0,0,0,0,0, + -153,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-168,0,0, - 0,-548,0,0,0,0,-366,0,0,0, - -549,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-381, - -550,0,-491,0,0,-551,0,0,0,0, - 0,0,-585,-136,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-605, - 0,-586,0,0,0,0,0,0,0,0, + 0,0,0,0,-85,0,0,-384,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,0,0,0,0,0,-511, 0,0,0,0,0,0,0,0,0,0, - 0,0,-472,0,0,0,0,0,-191,-597, - -492,0,0,0,0,0,0,0,0,0, + 0,-594,-659,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-603,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -606,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-475,0,-493,-389,0, - 0,0,-219,0,0,0,0,-607,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-616,0,-627,0,0,0,0, + 0,0,0,0,0,0,-514,-163,-433,0, + 0,0,0,0,0,0,-296,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-531,-533,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-149,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-579,0,0,0,0,0,0,0,0, + 0,0,-375,-588,-544,0,0,0,0,0, + 0,0,0,0,0,0,-545,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-535,0,-254,0,0,0,-185,0,0, - -56,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-196,0,0,0, + 0,0,0,0,0,-27,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -590,-564,0,0,0,0,0,0,0,0, + -302,0,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,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-574,0,-420,0,0,0, + 0,0,-31,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-632,-546,0, + 0,0,0,0,0,0,0,-571,0,0, + 0,0,0,-587,0,0,0,0,0,0, 0,0,0,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,0,0,0,0,0,0,0,0,-339, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-634,-547,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-576,0,-532, - 0,0,0,-437,0,0,0,0,-165,0, + -139,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-586, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-621,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-638,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-307,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-150,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -580,0,-296,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,-673,0, + 0,0,0,0,0,0,0,0,0,-515, + -151,0,0,-565,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-615,0,-24,0,0,0,0, - -187,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-683,0,0,0,0, + 0,0,0,0,-687,0,-516,-152,-637,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-609, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-625,0,-188,0, - 0,0,-220,0,0,0,0,-167,0,0, + 0,0,0,0,0,0,-32,0,0,0, + 0,-340,0,-55,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-519,0,0,0,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,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-368,0,0, - 0,0,0,-105,0,0,0,0,0,-85, - 0,0,0,0,0,0,-103,0,0,0, - 0,0,0,0,0,0,0,0,0,-149, + 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,0,-301,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-478, + 0,0,0,-191,-1,0,0,0,0,0, + 0,0,0,0,0,-341,0,0,0,0, 0,0,0,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,0,0,0,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,-286,0,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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-77, + 0,0,0,0,0,-345,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-346,0,0,0,0,0,0,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,-383,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,0,0,0,0,0,0,0,0,0, - 0,0,0,-330,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -342,0,0,0,-75,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-104,0,0,0,0,0,0, - 0,0,0,0,0,0,-141,0,0,0, - -144,0,0,0,-186,0,0,0,0,0, - 0,-290,0,0,0,0,0,0,0,0, - 0,0,0,0,-244,0,0,0,0,0, + 0,0,0,0,0,0,-197,0,0,0, + 0,0,0,0,0,0,0,0,-610,0, + -257,0,-198,0,0,0,0,0,0,0, + 0,0,0,-56,0,0,0,0,0,0, 0,0,0,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,0,0, 0,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, 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,-333,0,0,0,0,0,0,0, + 0,0,-343,0,0,0,0,0,0,0, + 0,0,0,-318,0,0,0,0,0,0, + 0,0,0,0,-105,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-275, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-1,0,0,0,0, - 0,0,0,0,-200,0,0,0,0,0, - 0,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,0,-150, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-563,0,0,0,0, + 0,0,0,0,-10,-525,0,0,0,0, + 0,0,0,0,0,0,0,-629,0,0, + 0,0,0,0,0,-13,0,0,0,-563, 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,0,0,0,0,-517,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,-80,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,0, - 0,0,0,0,0,0,0,0,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,-84,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-153,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -327,0,0,0,0,0,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,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-367,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,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-73,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,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-75,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-197,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-62,0,0,0,0, - 0,-263,0,0,0,0,0,-218,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,-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,-151,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,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,-285,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-307,-413,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,0,0, - 0,-511,0,0,0,0,0,0,0,0, - 0,0,0,0,-10,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-211,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-13,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-629,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,-46,0,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,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,-404,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-49,0,0,0,0,0,0, + 0,0,0,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,0,0,0,0,0,0,0, - 0,0,-121,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-211, + 0,0,0,0,0,0,0,0,0,-49, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -121,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-122,0,0,0,0,0,0,0,0, + 0,0,-136,0,0,0,0,0,0,0, + 0,0,0,-435,0,0,0,0,0,0, + 0,0,0,-122,0,0,0,0,0,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,-188, 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,-572,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -537,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-391, - 0,0,0,0,0,0,0,0,0,-217, + 0,0,0,0,0,-592,0,0,0,0, + 0,0,0,0,0,0,0,0,-217,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-407,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-218,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-561,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-152,0,0,-507,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-141,0,0,0,0, + 0,0,-405,0,0,0,0,0,0,0, + 0,0,0,0,0,-461,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-397,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-275,0,0,0,-281,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-524,0, - 0,0,0,0,0,0,0,0,-539,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,0,0,0,0, - 0,0,0,0,0,0,-566,0,0,0, + 0,0,0,-438,0,0,0,0,0,0, + 0,0,-144,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-200,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -594,0,0,0,0,-477,0,0,0,0, - 0,0,-595,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-480, + 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,-286, + 0,0,0,-292,0,0,0,0,0,0, + 0,-578,0,0,0,0,0,0,-623,0, + 0,0,0,0,0,0,0,0,0,0, + -652,0,0,0,-653,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,-220,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-297,0,0,0,-454, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-445,0,0,0,0,0, + 0,-620,0,0,0,0,0,0,0,0, + -681,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, @@ -691,7 +817,17 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,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; @@ -699,754 +835,914 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public final static short rhs[] = baseCheck; public final int rhs(int index) { return rhs[index]; }; - public interface BaseAction { - public final static char baseAction[] = { - 190,4,126,91,91,30,30,89,89,46, - 46,39,39,190,1,1,16,16,16,16, + public interface BaseAction0 { + public final static char baseAction0[] = { + 205,5,143,103,103,32,32,102,102,47, + 47,36,36,205,1,1,16,16,16,16, 16,16,16,17,17,17,15,11,11,6, - 6,6,6,6,6,2,78,78,5,5, - 12,12,60,60,149,149,150,69,69,53, + 6,6,6,6,6,2,89,89,4,4, + 12,12,53,53,166,166,167,82,82,52, 18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18, - 151,151,151,127,127,19,19,19,19,19, + 168,168,168,144,144,19,19,19,19,19, 19,19,19,19,19,19,19,19,20,20, - 191,191,192,192,193,154,154,155,155,152, - 152,156,153,153,21,21,22,22,28,28, - 28,29,29,29,29,31,31,31,32,32, - 32,33,33,33,33,33,34,34,34,36, - 36,37,37,38,38,40,40,42,42,43, - 43,48,48,47,47,47,47,47,47,47, - 47,47,47,47,47,47,45,35,157,157, - 104,104,194,194,97,222,222,79,79,79, - 79,79,79,79,79,79,80,80,80,77, - 77,61,61,195,195,81,81,81,111,111, - 196,196,82,82,82,82,197,197,83,83, - 83,83,83,84,84,86,86,86,86,86, - 86,86,86,54,54,54,54,54,112,112, - 110,110,55,198,23,23,23,23,23,52, - 52,92,92,92,92,92,164,164,159,159, - 159,159,159,160,160,160,161,161,161,162, - 162,162,163,163,163,93,93,93,93,93, - 94,94,94,13,14,14,14,14,14,14, - 14,14,14,14,14,105,131,131,131,131, - 131,131,129,129,129,165,166,166,130,130, - 199,168,168,167,167,133,133,113,75,75, - 134,57,51,169,169,58,88,88,170,170, - 158,158,135,136,136,137,72,72,171,171, - 67,67,67,64,64,63,68,68,90,90, - 70,70,70,66,98,98,107,106,106,71, - 71,65,65,62,62,49,108,108,108,100, - 100,100,101,101,102,102,102,103,103,114, - 114,114,116,116,115,115,223,223,99,99, - 201,201,201,201,201,139,50,50,173,200, - 200,140,140,95,95,95,96,175,202,202, - 44,44,128,141,141,141,141,204,118,117, - 117,132,132,132,176,177,177,177,177,177, - 177,177,177,177,177,177,206,206,203,203, - 205,205,120,121,121,121,121,122,207,123, - 119,119,208,208,178,178,178,178,109,109, - 109,209,209,8,8,9,210,210,211,179, - 172,172,180,180,181,182,182,7,7,10, - 212,212,212,212,212,212,212,212,212,212, - 212,212,212,212,212,212,212,212,212,212, - 212,212,212,212,212,212,212,212,212,212, - 212,212,212,212,212,212,212,212,212,212, - 212,212,73,76,76,183,183,143,143,144, - 144,144,144,144,144,3,145,145,142,142, - 124,124,87,74,85,85,174,174,125,125, - 213,213,213,146,146,138,138,214,214,24, - 24,24,41,41,25,25,215,215,184,184, - 184,185,185,216,216,186,186,26,26,217, - 217,187,187,187,187,27,59,218,218,219, - 219,188,188,188,147,147,147,19,19,19, - 19,33,33,43,17,80,220,189,189,189, - 148,148,23,56,92,137,137,137,120,120, - 120,199,204,118,66,72,165,134,13,13, - 71,87,87,87,18,1575,35,2807,2806,46, - 5652,27,30,31,978,963,26,28,2801,263, - 25,23,50,1684,106,76,77,108,3707,594, - 539,540,541,2264,2331,1462,2287,2406,2371,2480, - 2916,2455,2573,2529,1303,2645,2446,2687,143,275, - 1641,2135,158,144,2790,2297,35,1097,32,4457, - 3474,27,30,31,978,963,341,28,637,35, - 898,391,4123,35,1097,32,233,3708,27,30, - 31,978,963,26,28,1570,263,25,23,50, - 1684,106,76,77,108,637,3254,236,231,232, - 2264,2331,2935,2287,2406,2371,2480,3901,2455,3640, - 276,1386,49,637,1921,1865,34,392,321,1637, - 323,1351,316,1507,5085,1107,3123,530,748,637, - 35,4713,4273,243,246,249,252,4646,2357,35, - 279,355,35,1097,32,354,887,41,30,31, - 978,963,3962,587,76,346,2278,2140,351,637, - 35,297,2741,531,2939,807,955,1433,2710,4769, - 3016,35,1097,32,2924,3708,27,30,31,978, - 963,26,28,1570,263,25,23,50,1684,106, - 76,77,108,345,2956,42,2738,1337,2264,2331, - 1616,2287,2406,2371,2480,3886,2455,2573,2529,984, - 2645,71,2687,143,358,4154,1816,520,144,3631, - 3970,594,539,540,541,1381,35,456,547,2189, - 6307,452,521,3016,35,1097,32,2924,3708,27, - 30,31,978,963,26,28,1570,263,25,23, - 50,1684,106,76,77,108,345,2214,291,2459, - 88,2264,2331,102,2287,2406,2371,2480,233,2455, - 2573,2529,1522,2645,546,2687,143,3012,1107,3123, - 520,144,3631,542,539,540,541,557,2312,245, - 231,232,1412,3154,516,521,2268,35,1097,32, - 2617,6303,27,30,31,978,963,57,28,1689, - 35,456,2238,71,6307,2689,821,1359,3016,35, - 1097,32,2924,3708,27,30,31,978,963,26, - 28,1570,263,25,23,50,1684,106,76,77, - 108,345,3280,35,279,1466,2264,2331,3250,2287, - 2406,2371,2480,2401,2455,2573,2529,516,2645,424, - 2687,143,2357,35,282,520,144,3631,2490,594, - 539,540,541,89,1616,2989,102,2171,2689,4401, - 521,3397,35,1097,32,2924,3708,27,30,31, - 978,963,26,28,1570,263,25,23,50,1684, - 106,76,77,108,345,449,2923,2955,2104,2264, - 2331,291,2287,2406,2371,2480,233,2455,2573,2529, - 2399,2645,3013,2687,143,1330,6102,71,520,144, - 3631,1359,543,539,540,541,1616,248,231,232, - 1963,5057,516,521,560,1673,3154,61,449,35, - 1097,32,3707,2054,1739,30,31,978,963,1298, - 3025,2030,3521,2689,3475,35,1097,32,1886,3708, - 27,30,31,978,963,26,28,1570,263,25, - 23,50,1684,106,76,77,108,2738,1512,453, - 2923,2955,2264,2331,1616,2287,2406,2371,2480,5061, - 2455,2573,2529,2269,2645,517,2687,143,3055,3428, - 3012,381,144,1463,3095,35,1097,32,545,3708, - 27,30,31,978,963,26,28,1570,263,25, - 23,50,1684,106,76,77,108,543,539,540, - 541,306,2264,2331,501,2287,2406,2371,2480,2073, - 2455,2573,2529,2269,2645,222,2687,143,1808,382, - 2313,381,144,4123,35,1097,32,640,3708,27, - 30,31,978,963,26,28,1570,263,25,23, - 50,1684,106,76,77,108,5085,1517,1381,35, - 281,2264,2331,678,2287,2406,2371,2480,3472,2455, - 2573,3671,2911,2610,388,637,35,1865,278,382, - 2313,637,3123,3169,35,1097,32,89,3708,27, - 30,31,978,963,26,28,1570,263,25,23, - 50,1684,106,76,77,108,2984,637,35,898, - 391,2264,2331,764,2287,2406,2371,2480,3472,2455, - 2573,2529,2269,2645,389,2687,143,44,2738,314, - 381,144,637,35,898,391,3592,1857,2454,35, - 1097,32,3479,3474,27,30,31,978,963,341, - 28,275,3319,35,1097,32,1925,3708,27,30, - 31,978,963,26,28,1570,263,25,23,50, - 1684,106,76,77,108,3201,455,1616,382,2313, - 2264,2331,4108,2287,2406,2371,2480,3856,2455,2573, - 2529,2061,2645,526,2687,143,637,35,297,555, - 144,321,1637,323,1937,316,1507,2998,2083,3582, - 1711,1920,277,1359,292,543,539,540,541,3743, - 35,1097,32,379,3708,27,30,31,978,963, - 26,28,1570,263,25,23,50,1684,106,76, - 77,108,1327,526,160,570,2128,2264,2331,734, - 2287,2406,2371,2480,2096,2455,2573,2529,2800,2645, - 3090,2687,143,919,35,399,158,144,3743,35, - 1097,32,3356,3708,27,30,31,978,963,26, - 28,1570,263,25,23,50,1684,106,76,77, - 108,2843,2796,1717,3773,2924,2264,2331,1359,2287, - 2406,2371,2480,71,2455,2573,2529,780,2645,2886, - 2687,143,527,3011,345,375,144,594,539,540, - 541,73,35,898,391,2624,35,1097,32,156, - 6303,27,30,31,978,963,56,28,553,162, - 1394,3743,35,1097,32,3130,3708,27,30,31, - 978,963,26,28,1570,263,25,23,50,1684, - 106,76,77,108,233,275,2891,2213,3790,2264, - 2331,140,2287,2406,2371,2480,2741,2455,2573,2529, - 3415,2645,3428,2687,143,251,231,232,375,144, - 2713,35,1097,32,3392,6009,27,30,31,978, - 963,59,28,3743,35,1097,32,374,3708,27, - 30,31,978,963,26,28,1570,263,25,23, - 50,1684,106,76,77,108,3855,3436,305,3467, - 828,2264,2331,2924,2287,2406,2371,2480,3225,2455, - 2573,2529,3146,2645,2012,2687,143,93,72,3202, - 375,144,3655,3319,35,1097,32,326,3708,27, - 30,31,978,963,26,28,1570,263,25,23, - 50,1684,106,76,77,108,60,330,337,3234, - 373,2264,2331,2688,2287,2406,2371,2480,4304,2455, - 2573,2529,1886,2645,3582,2687,143,1488,1359,3012, - 555,144,1616,3547,35,1097,32,5225,3708,27, - 30,31,978,963,26,28,1570,263,25,23, - 50,1684,106,76,77,108,1725,2984,508,160, - 4209,2264,2331,3356,2287,2406,2371,2480,2162,2455, - 2573,2529,371,2645,3232,2971,164,2302,3241,35, - 1097,32,1110,3708,27,30,31,978,963,26, - 28,1570,263,25,23,50,1684,106,76,77, - 108,3543,506,507,71,3310,2264,2331,2970,2287, - 2406,2371,2480,1966,2455,2573,2529,327,2645,71, - 2687,143,2054,843,329,142,144,2726,3115,3428, - 2415,324,6329,2548,3743,35,1097,32,1517,3708, - 27,30,31,978,963,26,28,1570,263,25, - 23,50,1684,106,76,77,108,543,539,540, - 541,717,2264,2331,3920,2287,2406,2371,2480,554, - 2455,2573,2529,1822,2645,302,2687,143,637,35, - 284,155,144,3743,35,1097,32,2221,3708,27, - 30,31,978,963,26,28,1570,263,25,23, - 50,1684,106,76,77,108,637,35,1865,280, - 3428,2264,2331,463,2287,2406,2371,2480,2933,2455, - 2573,2529,441,2645,393,2687,143,3102,430,3507, - 154,144,3743,35,1097,32,2357,3708,27,30, - 31,978,963,26,28,1570,263,25,23,50, - 1684,106,76,77,108,3437,566,1381,35,281, - 2264,2331,5970,2287,2406,2371,2480,446,2455,2573, - 2529,3707,2645,1431,2687,143,637,35,3853,153, - 144,3743,35,1097,32,1937,3708,27,30,31, - 978,963,26,28,1570,263,25,23,50,1684, - 106,76,77,108,3543,433,919,35,399,2264, - 2331,1317,2287,2406,2371,2480,71,2455,2573,2529, - 928,2645,2648,2687,143,922,569,2461,152,144, - 3743,35,1097,32,500,3708,27,30,31,978, - 963,26,28,1570,263,25,23,50,1684,106, - 76,77,108,637,35,1865,283,1986,2264,2331, - 299,2287,2406,2371,2480,2746,2455,2573,2529,3593, - 2645,71,2687,143,572,3237,2655,151,144,3743, - 35,1097,32,3707,3708,27,30,31,978,963, - 26,28,1570,263,25,23,50,1684,106,76, - 77,108,637,35,1865,3834,1820,2264,2331,1016, - 2287,2406,2371,2480,71,2455,2573,2529,4485,2645, - 71,2687,143,3416,5628,2054,150,144,3743,35, - 1097,32,2054,3708,27,30,31,978,963,26, - 28,1570,263,25,23,50,1684,106,76,77, - 108,3307,637,3822,182,2924,2264,2331,3673,2287, - 2406,2371,2480,71,2455,2573,2529,5668,2645,3163, - 2687,143,385,3012,3655,149,144,3743,35,1097, - 32,1446,3708,27,30,31,978,963,26,28, - 1570,263,25,23,50,1684,106,76,77,108, - 1509,35,1865,278,407,2264,2331,2273,2287,2406, - 2371,2480,2220,2455,2573,2529,462,2645,71,2687, - 143,3543,735,5517,148,144,3743,35,1097,32, - 3010,3708,27,30,31,978,963,26,28,1570, - 263,25,23,50,1684,106,76,77,108,3741, - 363,565,71,2924,2264,2331,5822,2287,2406,2371, - 2480,71,2455,2573,2529,1715,2645,71,2687,143, - 3428,2351,345,147,144,3743,35,1097,32,1201, - 3708,27,30,31,978,963,26,28,1570,263, - 25,23,50,1684,106,76,77,108,3744,637, - 3922,1865,74,2264,2331,3309,2287,2406,2371,2480, - 71,2455,2573,2529,888,2645,179,2687,143,3470, - 355,3543,146,144,3743,35,1097,32,183,3708, - 27,30,31,978,963,26,28,1570,263,25, - 23,50,1684,106,76,77,108,1509,35,1865, - 3932,3386,2264,2331,1105,2287,2406,2371,2480,71, - 2455,2573,2529,1993,2645,2054,2687,143,3388,1380, - 3543,145,144,4123,35,1097,32,1514,3708,27, - 30,31,978,963,26,28,1570,263,25,23, - 50,1684,106,76,77,108,637,35,898,391, - 584,2264,2331,3012,2287,2406,2371,2480,3582,2455, - 2573,2529,1359,2645,3543,2971,164,3743,35,1097, - 32,2895,3708,27,30,31,978,963,26,28, - 1570,263,25,23,50,1684,106,76,77,108, - 275,3310,3026,160,24,2264,2331,2727,2287,2406, - 2371,2480,6377,2455,2573,2529,51,2645,356,2687, - 143,3324,4278,1848,159,144,3743,35,1097,32, - 3753,3708,27,30,31,978,963,26,28,1570, - 263,25,23,50,1684,106,76,77,108,637, - 35,1865,3938,3510,2264,2331,551,2287,2406,2371, - 2480,342,2455,2573,2529,2054,2645,3582,2687,143, - 3428,1359,3931,583,144,3743,35,1097,32,2054, - 3708,27,30,31,978,963,26,28,1570,263, - 25,23,50,1684,106,76,77,108,984,919, - 35,399,160,2264,2331,1695,2287,2406,2371,2480, - 71,2455,2573,2529,1511,2645,199,2687,143,259, - 394,3428,140,144,430,2573,3807,35,1097,32, - 2296,3708,27,30,31,978,963,26,28,1570, - 263,25,23,50,1684,106,76,77,108,543, - 539,540,541,3751,2264,2331,328,2287,2406,2371, - 2480,165,2455,2573,2529,3202,2645,198,2687,143, - 97,4153,3197,189,144,4123,35,1097,32,1539, - 3708,27,30,31,978,963,26,28,1570,263, - 25,23,50,1684,106,76,77,108,637,35, - 898,391,562,2264,2331,1616,2287,2406,2371,2480, - 6391,2455,2573,2529,3543,2645,3947,2971,164,4123, - 35,1097,32,447,3708,27,30,31,978,963, - 26,28,1570,263,25,23,50,1684,106,76, - 77,108,434,3169,3511,71,70,2264,2331,2659, - 2287,2406,2371,2480,71,2455,2573,2529,3668,2645, - 165,2971,164,637,35,898,391,2812,4123,35, - 1097,32,426,3708,27,30,31,978,963,26, - 28,1570,263,25,23,50,1684,106,76,77, - 108,543,539,540,541,2112,2264,2331,1616,2287, - 2406,2371,2480,6403,2455,2573,2529,437,2645,3310, - 2971,164,4123,35,1097,32,296,3708,27,30, - 31,978,963,26,28,1570,263,25,23,50, - 1684,106,76,77,108,3963,384,1997,71,2934, - 2264,2331,1619,2287,2406,2371,2480,71,2455,2573, - 2529,3251,2645,2054,2971,164,637,35,898,391, - 1832,4123,35,1097,32,425,3708,27,30,31, - 978,963,26,28,1570,263,25,23,50,1684, - 106,76,77,108,594,539,540,541,2537,2264, - 2331,2986,2287,2406,2371,2480,1303,2455,2573,2529, - 436,2645,3271,2971,164,4249,35,1097,32,428, - 3708,27,30,31,978,963,26,28,1570,263, - 25,23,50,1684,106,76,77,108,396,2049, - 3707,233,430,2264,2331,383,2287,2406,2371,2480, - 1981,2455,2573,2529,98,2645,4109,2971,164,3543, - 2539,2844,254,231,232,5839,4599,4507,586,1697, - 35,1097,32,3479,4804,27,30,31,978,963, - 341,28,1217,325,542,539,540,541,71,3546, - 2984,535,1208,542,539,540,541,2713,35,1097, - 32,2475,6009,27,30,31,978,963,58,28, - 5044,2474,2703,2802,35,1097,32,2984,6009,27, - 30,31,978,963,26,28,1783,3012,514,298, - 4520,2907,321,1637,323,1783,316,1507,3543,334, - 3081,3926,4123,35,1097,32,3428,3708,27,30, - 31,978,963,26,28,1570,263,25,23,50, - 1684,106,76,77,108,3582,1975,4817,3584,1359, - 2264,2331,3543,2287,2406,2371,2480,3543,2455,2573, - 2529,527,3738,3199,4404,35,898,391,3374,2975, - 546,2189,301,2634,1277,297,2726,238,263,1954, - 160,6329,4117,3543,308,312,1069,69,594,539, - 540,541,240,263,94,2896,2053,542,539,540, - 541,2373,3480,594,539,540,541,1119,275,450, - 1981,3161,729,68,1018,543,35,898,391,1687, - 594,539,540,541,449,35,1097,32,2903,3128, - 40,30,31,978,963,233,1927,35,3431,32, - 3479,4804,27,30,31,978,963,341,28,4172, - 233,3543,543,539,540,541,236,231,232,49, - 542,539,540,541,3504,3140,71,233,1351,276, - 1074,241,231,232,3368,1315,3771,3461,1359,3582, - 1359,53,173,1359,1247,2357,4039,259,589,231, - 232,3308,243,246,249,252,4646,3275,2204,321, - 1637,323,1783,316,1507,887,334,1120,762,156, - 405,156,587,3511,160,543,539,540,541,3735, - 3900,3548,201,2939,807,955,1433,2710,4769,1409, - 4123,35,1097,32,4817,3708,27,30,31,978, - 963,26,28,1570,263,25,23,50,1684,106, - 76,77,85,2956,432,3543,4524,422,3417,4123, - 35,1097,32,1873,3708,27,30,31,978,963, - 26,28,1570,263,25,23,50,1684,106,76, - 77,108,3762,4210,3900,52,140,2264,2331,450, - 2287,2406,2371,2480,3389,3646,2475,35,1097,32, - 3728,4804,27,30,31,978,963,341,28,449, - 35,1097,32,3387,71,3669,30,31,978,963, - 542,539,540,541,1947,35,1097,32,2809,3474, - 27,30,31,978,963,341,28,5803,71,3963, - 3012,3024,1359,3044,35,1097,32,3479,3474,27, - 30,31,978,963,341,28,3963,3146,3446,321, - 1637,323,1783,317,1507,3707,335,542,539,540, - 541,95,830,156,2897,3920,71,1733,3503,1975, - 3242,2924,234,2275,5072,2901,354,318,1177,323, - 3543,1733,336,337,3428,2924,348,2278,2140,351, - 3655,529,543,539,540,541,321,1637,323,3165, - 316,1507,3543,6220,3655,3926,4123,35,1097,32, - 380,3708,27,30,31,978,963,26,28,1570, - 263,25,23,50,1684,106,76,77,108,353, - 202,3404,3236,3429,2264,2331,1734,2287,2406,2371, - 3614,3771,71,3146,288,615,5118,1528,35,1097, - 32,3479,3474,27,30,31,978,963,341,28, - 542,539,540,541,3608,4645,362,358,308,312, - 1069,542,539,540,541,535,156,2617,3736,337, - 362,3272,3042,3057,357,660,2180,180,5072,354, - 3463,3960,535,3716,71,4042,3042,3057,2924,346, - 2278,2140,351,1687,1694,71,3776,3712,1258,3618, - 321,1637,323,3777,316,1507,3577,345,196,3926, - 4123,35,1097,32,3596,3708,27,30,31,978, - 963,26,28,1570,263,25,23,50,1684,106, - 76,77,108,3631,3840,3899,3903,3465,2264,2331, - 3543,2287,2406,3615,2177,2269,2822,4123,35,1097, - 32,2649,3708,27,30,31,978,963,26,28, - 1570,263,25,23,50,1684,106,76,77,108, - 575,3382,309,312,1069,2264,2331,3541,2287,2406, - 3633,2386,35,3431,32,3479,3474,27,30,31, - 978,963,341,28,543,35,898,391,1199,2539, - 3012,614,2313,3012,5839,3893,539,540,541,2124, - 35,3431,32,3479,3474,27,30,31,978,963, - 341,28,3562,542,539,540,541,3707,6339,197, - 3543,3639,3543,542,539,540,541,3543,49,1975, - 2475,3543,1975,1332,321,1637,323,1351,316,1507, - 3562,71,1362,762,1168,3080,637,35,898,391, - 544,378,564,2306,528,1783,3675,563,3428,334, - 2269,90,321,1637,323,71,316,1507,739,615, - 927,762,2919,35,3431,32,3479,3474,27,30, - 31,978,963,341,28,3838,1115,4913,345,2924, - 435,4902,422,3417,3708,2269,3893,539,540,541, - 156,2535,3505,283,200,1998,289,615,345,2549, - 2943,2638,1952,3562,3631,534,614,2313,71,5286, - 422,3417,3203,2179,2385,4259,229,2917,140,542, - 539,540,541,2269,3631,321,1637,323,156,316, - 1507,3011,1975,4618,762,4394,1331,537,2180,180, - 823,614,2313,204,216,3184,3576,203,213,214, - 215,217,593,376,169,2208,35,1097,32,4457, - 3474,27,30,31,978,963,341,28,3310,3428, - 168,3617,183,167,170,171,172,173,174,614, - 2313,2511,4902,422,3417,4123,35,1097,32,3146, - 3708,27,30,31,978,963,26,28,1570,263, - 25,23,50,1684,106,76,77,108,1642,35, - 898,391,3543,2264,2331,409,2287,3558,321,1637, - 323,354,316,1507,332,337,71,3414,3778,3543, - 4074,346,2278,2140,351,3836,71,71,3538,344, - 2685,4170,352,71,3774,354,71,3199,665,189, - 3216,3870,49,3290,2370,346,2278,2140,351,576, - 1104,1351,3012,3394,4123,35,1097,32,1589,3708, - 27,30,31,978,963,26,28,1570,263,25, - 23,50,1684,106,76,77,108,395,3919,4306, - 3276,430,2264,2331,1347,2287,3560,4123,35,1097, - 32,1975,3708,27,30,31,978,963,26,28, - 1570,263,25,23,50,1684,106,76,77,108, - 549,3428,3966,378,3543,2264,2331,3543,2287,3576, - 4123,35,1097,32,3839,3708,27,30,31,978, - 963,26,28,1570,263,25,23,50,1684,106, - 76,77,108,3841,3531,3684,368,3726,2264,2331, - 2214,2287,3591,4123,35,1097,32,1434,3708,27, - 30,31,978,963,26,28,1570,263,25,23, - 50,1684,106,76,77,108,731,35,898,391, - 558,2264,2331,2563,2287,3599,4123,35,1097,32, - 3584,3708,27,30,31,978,963,26,28,1570, - 263,25,23,50,1684,106,76,77,108,1, - 3638,3902,3806,615,2264,2331,2303,2287,3601,3543, - 49,3543,3711,3543,3906,2828,3251,4025,3965,1351, - 4168,986,229,3835,3971,4277,47,4092,7423,2924, - 542,539,540,541,156,769,4553,7423,1975,3956, - 3428,454,71,4455,2180,180,1359,1743,345,204, - 216,3184,7423,203,213,214,215,217,593,3543, - 169,2741,35,1097,32,6255,3474,27,30,31, - 978,963,341,28,1666,2269,168,156,184,167, - 170,171,172,173,174,7423,223,4112,181,4518, - 3428,353,4123,35,1097,32,7423,3708,27,30, - 31,978,963,26,28,1570,263,25,23,50, - 1684,106,76,77,108,2634,35,297,3543,1957, - 2264,2331,3543,3602,321,1637,323,559,316,1507, - 7423,614,2313,1711,7423,7423,193,7423,7423,542, - 539,540,541,542,539,540,541,7423,4581,7423, - 7423,354,3737,7423,234,7423,1018,867,7423,7423, - 1018,346,2278,2140,351,4123,35,1097,32,3712, - 3708,27,30,31,978,963,26,28,1570,263, - 25,23,50,1684,106,76,77,108,637,35, - 898,391,3543,2264,2331,7423,3613,3610,35,1097, - 32,3543,3708,27,30,31,978,963,26,28, - 1570,263,25,23,50,1684,106,76,77,107, - 377,3543,67,71,615,3146,3543,1359,4039,7423, - 7423,66,49,3543,1647,445,2269,459,2924,5884, - 7423,1351,7423,229,7423,7423,7423,7423,1506,1120, - 234,65,3543,1639,7423,156,64,229,156,1975, - 3743,337,7423,55,7423,2180,180,7423,4121,7423, - 204,216,3184,7423,203,213,214,215,217,593, - 7423,169,54,471,2068,410,6230,615,7423,2539, - 3543,71,614,2313,5839,1359,7423,168,7423,3754, - 167,170,171,172,173,174,229,411,412,413, - 645,7423,7423,542,539,540,541,3543,156,7423, - 101,3146,1975,7423,7423,7423,156,7423,2180,180, - 2475,3543,7423,204,216,3184,4141,203,213,214, - 215,217,593,2215,169,7423,565,4010,71,2830, - 615,7423,1359,2459,5839,1783,3746,337,3543,334, - 168,3200,178,167,170,171,172,173,174,229, - 7423,7423,7423,542,539,540,541,542,539,540, - 541,156,7423,156,3543,1975,3575,4583,3483,7423, - 2475,2180,180,4146,2617,7423,204,216,3184,7423, - 203,213,214,215,217,593,7423,169,71,659, - 414,416,1359,615,4707,1783,533,7423,7423,335, - 7423,7423,7423,168,7423,176,167,170,171,172, - 173,174,229,7423,7423,7423,7423,638,7423,354, - 5658,7423,71,156,156,7423,1359,7423,1975,348, - 2278,2140,351,2429,2180,180,7423,7423,7423,204, - 216,3184,7423,203,213,214,215,217,593,7423, - 169,2595,753,7423,2539,7423,615,156,2661,5839, - 7423,825,35,898,391,7423,168,4237,585,167, - 170,171,172,173,174,229,7423,7423,542,539, - 540,541,542,539,540,541,7423,156,7423,7423, - 7423,1975,7423,7423,7423,2475,7423,2180,180,2988, - 7423,7423,204,216,3184,49,203,213,214,215, - 217,593,7423,169,1351,847,7423,2539,7423,615, - 1783,47,5839,7423,334,7423,7423,7423,7423,168, - 1058,177,167,170,171,172,173,174,229,7423, - 7423,542,539,540,541,3467,7423,7423,7423,2924, - 156,7423,4269,7423,1975,7423,7423,7423,2475,7423, - 2180,180,7423,7423,7423,204,216,3184,3655,203, - 213,214,215,217,593,7423,169,7423,941,7423, - 2361,7423,615,1783,3129,5839,7423,334,7423,71, - 7423,7423,168,2924,187,167,170,171,172,173, - 174,229,7423,7423,542,539,540,541,542,539, - 540,541,345,156,7423,3156,7423,1975,7423,7423, - 7423,2475,7423,2180,180,3051,7423,7423,204,216, - 3184,7423,203,213,214,215,217,593,3631,169, - 7423,1035,7423,1840,508,615,1783,7423,5839,7423, - 4520,2851,71,7423,7423,168,2924,3941,167,170, - 171,172,173,174,229,7423,7423,542,539,540, - 541,7423,7423,7423,7423,345,156,7423,7423,7423, - 1975,7423,7423,7423,2475,7423,2180,180,505,507, - 7423,204,216,3184,7423,203,213,214,215,217, - 593,3631,169,7423,1129,7423,1334,7423,615,1783, - 7423,2747,7423,335,2871,7423,7423,7423,168,7423, - 192,167,170,171,172,173,174,229,3058,7423, - 542,539,540,541,96,542,539,540,541,156, - 7423,7423,7423,1975,7423,7423,7423,1123,7423,2180, - 180,7423,2475,7423,204,216,3184,7423,203,213, - 214,215,217,593,7423,169,7423,1223,7423,2747, - 7423,615,7423,1849,7423,7423,7423,331,71,7423, - 7423,168,2924,186,167,170,171,172,173,174, - 229,7423,7423,542,539,540,541,542,539,540, - 541,345,156,7423,7423,7423,1975,7423,7423,7423, - 2475,7423,2180,180,2617,7423,7423,204,216,3184, - 7423,203,213,214,215,217,593,3631,169,4457, - 35,898,391,7423,2975,2460,7423,7423,7423,7423, - 2880,7423,239,263,168,7423,195,167,170,171, - 172,173,174,594,539,540,541,7423,71,7423, - 7423,7423,2924,7423,543,35,898,391,7423,7423, - 3091,1046,7423,275,615,7423,7423,1399,35,1097, - 32,345,4804,27,30,31,978,963,341,28, - 3091,2604,7423,345,615,7423,7423,7423,7423,7423, - 233,542,539,540,541,156,7423,3631,49,1975, - 5646,7423,7423,345,7423,2324,7423,1351,2475,3631, - 3824,237,231,232,5065,156,7423,7423,7423,1975, - 7423,2280,2231,2306,276,2324,7423,7423,7423,3631, - 321,1637,323,1783,319,1507,7423,335,7423,7423, - 7423,2280,2564,7423,7423,7423,7423,244,247,250, - 253,4646,3348,7423,7423,7423,7423,2815,7423,7423, - 887,7423,7423,1399,35,1097,32,588,4804,27, - 30,31,978,963,341,28,542,539,540,541, - 7423,542,539,540,541,7423,7423,542,539,540, - 541,7423,7423,3238,7423,7423,7423,7423,2475,7423, - 4123,35,1097,32,5803,3708,27,30,31,978, - 963,26,28,1570,263,25,23,50,1684,106, - 76,77,83,2972,7423,7423,321,1637,323,1783, - 317,1507,7423,335,4123,35,1097,32,7423,3708, - 27,30,31,978,963,26,28,1570,263,25, - 23,50,1684,106,76,77,108,7423,7423,7423, - 7423,7423,2264,3451,4123,35,1097,32,7423,3708, - 27,30,31,978,963,26,28,1570,263,25, - 23,50,1684,106,76,77,108,7423,7423,7423, - 7423,7423,2264,3457,1812,35,1097,32,3479,3474, - 27,30,31,978,963,341,28,825,35,898, - 391,543,35,898,391,3203,7423,7423,543,539, - 540,541,1528,35,1097,32,3479,3474,27,30, - 31,978,963,341,28,637,35,898,391,542, - 539,540,541,7423,7423,7423,543,539,540,541, - 7423,49,7423,7423,7423,49,2475,321,1637,323, - 1351,316,1507,7423,1351,7423,4398,47,4281,7423, - 7423,47,2924,7423,7423,7423,972,7423,7423,49, - 1788,2972,7423,7423,7423,321,1637,323,46,316, - 1507,3655,7423,2984,4398,4123,35,1097,32,7423, - 3708,27,30,31,978,963,26,28,1570,263, - 25,23,50,1684,106,76,77,108,7423,4123, - 35,1097,32,3478,3708,27,30,31,978,963, - 26,28,1570,263,25,23,50,1684,106,76, - 77,108,7423,4123,35,1097,32,3523,3708,27, - 30,31,978,963,26,28,1570,263,25,23, - 50,1684,106,76,77,108,2007,508,7423,7423, - 2924,3532,7423,7423,7423,1013,35,898,391,7423, - 7423,7423,7423,7423,7423,4123,35,1097,32,229, - 3708,27,30,31,978,963,26,28,1570,263, - 25,23,50,1684,106,76,77,82,7423,7423, - 3091,505,507,7423,615,7423,206,216,3184,49, - 205,213,214,215,217,593,7423,7423,1351,7423, - 7423,7423,7423,345,7423,47,3352,7423,7423,207, - 209,211,645,7423,1336,156,7423,7423,7423,1975, - 7423,3936,218,208,210,2324,7423,7423,7423,3631, - 542,539,540,541,7423,7423,7423,7423,7423,7423, - 7423,2280,2799,7423,7423,7423,13,3051,5907,4123, - 35,1097,32,7423,3708,27,30,31,978,963, - 26,28,1570,263,25,23,50,1684,106,76, - 77,81,4123,35,1097,32,7423,3708,27,30, - 31,978,963,26,28,1570,263,25,23,50, - 1684,106,76,77,80,4123,35,1097,32,7423, - 3708,27,30,31,978,963,26,28,1570,263, - 25,23,50,1684,106,76,77,79,7423,7423, - 7423,7423,4123,35,1097,32,619,3708,27,30, - 31,978,963,26,28,1570,263,25,23,50, - 1684,106,76,77,78,4123,1921,1097,2091,7423, - 3708,27,30,31,978,963,26,28,1570,263, - 25,23,50,1684,106,76,77,84,3678,35, - 1097,32,7423,3708,27,30,31,978,963,26, - 28,1570,263,25,23,50,1684,106,76,77, - 104,4123,35,1097,32,7423,3708,27,30,31, - 978,963,26,28,1570,263,25,23,50,1684, - 106,76,77,110,4123,35,1097,32,7423,3708, - 27,30,31,978,963,26,28,1570,263,25, - 23,50,1684,106,76,77,109,4123,35,1097, - 32,7423,3708,27,30,31,978,963,26,28, - 1570,263,25,23,50,1684,106,76,77,105, - 3871,35,1097,32,7423,3708,27,30,31,978, - 963,26,28,1570,263,25,23,50,1684,590, - 76,77,3934,35,1097,32,7423,3708,27,30, - 31,978,963,26,28,1570,263,25,23,50, - 1684,579,76,77,3997,35,1097,32,7423,3708, - 27,30,31,978,963,26,28,1570,263,25, - 23,50,1684,577,76,77,4060,35,1097,32, - 7423,3708,27,30,31,978,963,26,28,1570, - 263,25,23,50,1684,86,76,77,2226,7423, - 7423,7423,2924,7423,7423,7423,7423,7423,7423,7423, - 7423,7423,7423,7423,7423,7423,919,35,2079,3306, - 7423,229,2374,35,898,391,7423,7423,1762,7423, - 7423,7423,2924,5884,7423,7423,7423,7423,2315,7423, - 7423,7423,2924,7423,7423,7423,7423,7423,206,216, - 3184,229,205,213,214,215,217,593,71,7423, - 49,229,2924,7423,7423,7423,49,7423,7423,1351, - 7423,207,209,211,645,1351,739,7423,2068,410, - 6230,345,2752,3091,218,208,210,615,206,216, - 3184,1247,205,213,214,215,217,593,7423,7423, - 7423,411,412,413,645,7423,345,3631,1062,7423, - 5907,207,209,211,645,7423,7423,7423,156,7423, - 512,7423,1975,7423,218,208,210,7423,2324,7423, - 7423,7423,3631,869,7423,7423,7423,2215,7423,7423, - 7423,7423,7423,7423,2280,2878,7423,7423,1881,7423, - 5907,4186,35,1097,32,7423,3708,27,30,31, - 978,963,26,28,1570,263,25,23,50,1684, - 3335,76,77,2187,35,1097,32,7423,3474,27, - 30,31,978,963,341,28,7423,7423,7423,7423, - 7423,7423,2404,2747,7423,7423,2924,543,539,540, - 541,7423,7423,7423,414,417,7423,7423,7423,637, - 35,898,391,7423,7423,229,7423,542,539,540, - 541,7423,71,7423,7423,7423,2924,7423,7423,7423, - 7423,7423,7423,7423,2475,2137,321,1637,323,2924, - 605,1507,206,216,3184,345,205,213,214,215, - 217,593,7423,49,637,35,898,391,229,3375, - 7423,7423,1351,7423,7423,207,209,211,645,4907, - 7423,3631,7423,7423,7423,7423,7423,1877,218,208, - 210,2924,7423,7423,510,206,216,3184,7423,205, - 213,214,215,217,593,71,7423,7423,49,2924, - 229,7423,2780,7423,5907,7423,7423,1351,207,209, - 211,645,7423,7423,2515,7423,2493,7423,345,7423, - 2924,522,208,210,7423,7423,7423,206,216,3184, - 7423,205,213,214,215,217,593,7423,7423,229, - 637,35,898,391,3631,7423,7423,7423,7423,7423, - 207,209,211,645,7423,2582,7423,538,7423,2924, - 7423,7423,7423,219,208,210,206,216,3184,7423, - 205,213,214,215,217,593,7423,7423,229,637, - 35,898,391,7423,49,7423,7423,7423,7423,207, - 209,211,645,1351,2671,7423,7423,7423,2924,7423, - 952,7423,613,208,210,206,216,3184,7423,205, - 213,214,215,217,593,7423,7423,229,7423,7423, - 7423,7423,7423,49,7423,7423,7423,7423,207,209, - 211,645,1351,2760,7423,7423,7423,2924,7423,1589, - 7423,612,208,210,206,216,3184,7423,205,213, - 214,215,217,593,7423,7423,229,7423,7423,7423, - 7423,7423,7423,7423,7423,7423,7423,207,209,211, - 645,7423,2849,7423,7423,7423,2924,7423,7423,7423, - 611,208,210,206,216,3184,7423,205,213,214, - 215,217,593,7423,7423,229,7423,7423,7423,7423, - 7423,7423,7423,7423,7423,7423,207,209,211,645, - 7423,2938,7423,7423,7423,2924,7423,7423,7423,523, - 208,210,206,216,3184,7423,205,213,214,215, - 217,593,7423,7423,229,7423,7423,7423,7423,7423, - 7423,7423,7423,7423,7423,207,209,211,645,7423, - 7423,7423,7423,7423,7423,7423,7423,7423,307,208, - 210,206,216,3184,7423,205,213,214,215,217, - 593,2988,35,1097,32,3479,3474,27,30,31, - 978,963,341,28,207,209,211,645,7423,7423, - 2652,7423,7423,7423,2924,5839,7423,502,208,210, - 3123,35,1097,32,2996,3474,27,30,31,978, - 963,341,28,3655,542,539,540,541,7423,7423, - 7423,7423,3091,7423,7423,2652,615,7423,7423,2924, - 5839,2475,7423,7423,321,1637,323,7423,316,1507, - 7423,7423,7423,3937,7423,345,406,7423,3655,542, - 539,540,541,7423,7423,7423,1783,156,3091,7423, - 334,1975,615,318,1177,323,2475,2324,7423,7423, - 7423,3631,7423,825,35,898,391,543,35,898, - 391,345,7423,2280,2912,7423,7423,7423,4269,362, - 7423,1783,7423,156,7423,334,7423,1975,7423,543, - 35,898,391,2324,3827,3042,3057,3631,7423,3772, - 7423,7423,7423,615,7423,7423,7423,49,7423,2280, - 3929,49,7423,3156,362,7423,1351,7423,7423,7423, - 1351,7423,345,2779,71,7423,7423,47,615,3827, - 3042,3057,1461,49,156,7423,1272,543,35,898, - 391,7423,1351,7423,188,7423,7423,345,6201,47, - 7423,543,35,898,391,7423,71,7423,2548,156, - 615,660,7423,543,35,898,391,7423,7423,188, - 7423,7423,7423,6201,7423,7423,7423,7423,7423,345, - 71,49,7423,7423,615,7423,7423,7423,7423,7423, - 1351,156,7423,7423,7423,49,7423,47,7423,7423, - 7423,188,7423,345,1351,6201,2613,49,7423,7423, - 190,47,7423,7423,7423,156,1351,7423,7423,7423, - 2706,7423,7423,47,7423,188,7423,7423,7423,6201, - 7423,7423,3536,7423,7423,3933,7423,7423,7423,7423, - 7423,7423,7423,7423,7423,7423,7423,7423,7423,7423, - 7423,7423,7423,7423,7423,7423,7423,7423,7423,7423, - 7423,7423,7423,7423,7423,7423,7423,3979,7423,7423, - 7423,7423,7423,7423,7423,7423,7423,7423,7423,7423, - 7423,7423,7423,7423,7423,7423,7423,7423,7423,7423, - 7423,4038,7423,7423,7423,3821,7423,0,1,230, - 1035,0,504,5865,0,1,230,0,39,7438, - 0,39,7437,0,1,1278,0,751,1,0, - 39,1,7438,0,39,1,7437,0,1,3945, - 0,1,723,0,230,220,0,7658,224,0, - 7657,224,0,824,224,0,841,224,0,884, - 224,0,8033,224,0,7763,224,0,7762,224, - 0,7685,224,0,7684,224,0,7683,224,0, - 7682,224,0,7681,224,0,7680,224,0,7679, - 224,0,7678,224,0,7658,225,0,7657,225, - 0,824,225,0,841,225,0,884,225,0, - 8033,225,0,7763,225,0,7762,225,0,7685, - 225,0,7684,225,0,7683,225,0,7682,225, - 0,7681,225,0,7680,225,0,7679,225,0, - 7678,225,0,7658,226,0,7657,226,0,824, - 226,0,841,226,0,884,226,0,8033,226, - 0,7763,226,0,7762,226,0,7685,226,0, - 7684,226,0,7683,226,0,7682,226,0,7681, - 226,0,7680,226,0,7679,226,0,7678,226, - 0,884,397,0,841,397,0,824,397,0, - 285,397,0,7658,227,0,7657,227,0,824, - 227,0,841,227,0,884,227,0,8033,227, - 0,7763,227,0,7762,227,0,7685,227,0, - 7684,227,0,7683,227,0,7682,227,0,7681, - 227,0,7680,227,0,7679,227,0,7678,227, - 0,285,290,0,7658,228,0,7657,228,0, - 824,228,0,841,228,0,884,228,0,8033, - 228,0,7763,228,0,7762,228,0,7685,228, - 0,7684,228,0,7683,228,0,7682,228,0, - 7681,228,0,7680,228,0,7679,228,0,7678, - 228,0,1443,390,0,7438,48,0,7437,48, - 0,7658,592,0,7657,592,0,824,592,0, - 841,592,0,884,592,0,8033,592,0,7763, - 592,0,7762,592,0,7685,592,0,7684,592, - 0,7683,592,0,7682,592,0,7681,592,0, - 7680,592,0,7679,592,0,7678,592,0,7658, - 242,0,7657,242,0,824,242,0,841,242, - 0,884,242,0,8033,242,0,7763,242,0, - 7762,242,0,7685,242,0,7684,242,0,7683, - 242,0,7682,242,0,7681,242,0,7680,242, - 0,7679,242,0,7678,242,0,7697,242,0, - 7696,242,0,7695,242,0,7694,242,0,7693, - 242,0,7692,242,0,7691,242,0,7690,242, - 0,7689,242,0,7688,242,0,7687,242,0, - 8032,242,0,8031,242,0,39,242,7438,0, - 39,242,7437,0,7461,242,0,1,884,0, - 1,841,0,1,824,0,1,333,0,38, - 723,0,38,7438,0,38,7437,0,457,1729, - 0,443,1926,0,1443,29,0,7435,1,0, - 884,602,0,841,602,0,824,602,0,606, - 602,0,606,601,0,7486,75,0,7485,75, - 0,906,75,0,1465,75,0,1634,75,0, - 3198,75,0,1981,320,0,1,604,0,1, - 447,0,461,1732,0,460,2035,0,35,33, - 0,47,37,0,504,2229,0,7461,1,230, - 0,39,1,230,0,230,419,0,1,1317, - 0,1,7697,0,1,7696,0,1,7695,0, - 1,7694,0,1,7693,0,1,7692,0,1, - 7691,0,1,7690,0,1,7689,0,1,7688, - 0,1,7687,0,1,8032,0,1,8031,0, - 1,5562,0,7438,37,0,7437,37,0,43, - 7459,0,43,37,0,1037,91,0,32,34, - 0,7431,1,0,39,723,0,884,604,0, - 841,604,0,824,604,0,7435,386,0,7434, - 386,0,884,333,0,841,333,0,824,333, - 0,1,1403,0,1,1916,0,230,221,0, - 7433,408,0,7432,408,0,230,418,0,3863, - 126,0,7435,591,386,0,7434,591,386,0, - 1,230,3218,0,7432,230,0,3231,230,0, - 7429,1,0,7428,1,0,238,1349,0,391, - 32,0,390,29,0,884,448,0,841,448, - 0,824,448,0,7461,448,0,333,448,0, - 39,448,0,7459,45,0,37,45,0,7435, - 580,386,0,7434,580,386,0,7435,578,386, - 0,7434,578,386,0,7435,87,386,0,7434, - 87,386,0,1,92,0,3749,230,0,10, - 12,0,7461,1,0,39,1,0,590,579, - 0,8033,338,0,7763,338,0,7762,338,0, - 3863,128,0,3863,127,0,4328,100,0,8, - 10,12,0,3921,194,0,7438,2,37,0, - 7437,2,37,0,7438,36,0,7437,36,0, - 884,599,0,841,599,0,824,599,0,884, - 598,0,841,598,0,824,598,0,542,543, - 0,3039,103,0,2755,99,0,884,95,0, - 841,95,0,824,95,0,7461,95,0,333, - 95,0,39,95,0,7435,591,580,386,0, - 591,580,0,35,73,0,884,599,600,0, - 841,599,600,0,824,599,600,0,599,600, - 0,280,2417,0,3943,386,0,185,4644,0, - 8,12,0 + 206,206,207,207,208,171,171,172,172,169, + 169,173,170,170,21,21,22,22,23,23, + 23,24,24,24,24,25,25,25,26,26, + 26,35,35,35,35,35,37,37,37,39, + 39,40,40,43,43,44,44,45,45,46, + 46,55,55,55,55,55,64,64,64,65, + 65,70,70,71,71,75,75,76,76,77, + 77,78,78,78,78,78,78,78,78,78, + 78,78,78,78,34,34,48,48,48,48, + 48,48,48,48,48,48,48,48,48,41, + 33,174,174,113,113,209,209,106,238,238, + 91,91,91,91,91,91,91,91,91,92, + 92,92,90,90,56,56,210,210,93,93, + 93,125,125,211,211,94,94,94,94,212, + 212,95,95,95,95,95,96,96,98,98, + 98,98,98,98,98,98,57,57,57,57, + 57,126,126,124,124,58,213,31,31,31, + 31,31,51,51,79,79,79,79,79,149, + 149,145,145,145,145,145,146,146,146,147, + 147,147,148,148,148,176,176,176,80,80, + 80,80,80,81,81,81,13,14,14,14, + 14,14,14,14,14,14,14,14,114,150, + 150,150,150,150,150,119,119,119,177,178, + 178,120,120,214,180,180,179,179,151,151, + 127,87,87,152,60,50,181,181,61,100, + 100,182,182,175,175,153,154,154,155,84, + 84,183,183,72,72,72,67,67,66,73, + 73,101,101,83,83,83,69,107,107,116, + 115,115,63,63,68,68,74,74,54,117, + 117,117,108,108,108,109,109,110,110,110, + 111,111,128,128,128,130,130,129,129,239, + 239,112,112,216,216,216,216,216,157,49, + 49,185,215,215,158,158,104,104,104,105, + 187,217,217,42,42,118,122,122,122,122, + 219,132,131,131,121,121,121,188,189,189, + 189,189,189,189,189,189,189,189,189,221, + 221,218,218,220,220,134,135,135,135,135, + 136,222,137,133,133,223,223,190,190,190, + 190,123,123,123,224,224,8,8,9,225, + 225,226,191,184,184,192,192,193,194,194, + 7,7,10,227,227,227,227,227,227,227, + 227,227,227,227,227,227,227,227,227,227, + 227,227,227,227,227,227,227,227,227,227, + 227,227,227,227,227,227,227,227,227,227, + 227,227,227,227,227,85,88,88,195,195, + 160,160,161,161,161,161,161,161,3,162, + 162,159,159,196,240,241,241,242,242,243, + 244,244,197,198,198,198,198,228,228,228, + 139,139,139,139,139,140,141,141,138,138, + 99,86,97,97,186,186,142,142,229,229, + 229,163,163,156,156,230,230,27,27,27, + 38,38,28,28,231,231,199,199,199,200, + 200,232,232,201,201,29,29,233,233,202, + 202,202,202,30,62,234,234,235,235,203, + 203,203,164,164,164,19,19,19,19,35, + 35,46,17,92,236,204,204,204,165,165, + 31,59,79,155,155,155,134,134,134,214, + 219,132,69,84,177,152,13,13,63,99, + 99,99,18,1603,35,3125,3103,7526,1969,27, + 30,31,1092,1081,26,28,3091,296,25,23, + 50,2080,106,76,77,108,2636,2647,2646,3041, + 652,597,598,599,2884,1374,468,177,3028,4028, + 3054,1890,3042,3077,1224,308,3076,3087,3090,176, + 1315,191,3298,35,1154,32,7645,1492,27,30, + 31,1092,1081,26,28,5164,266,547,3051,1534, + 35,1154,32,5704,3898,27,30,31,1092,1081, + 374,28,269,264,265,1497,170,35,985,424, + 4580,35,1154,32,4746,1386,27,30,31,1092, + 1081,26,28,2049,296,25,23,50,2080,106, + 76,77,108,2636,2647,2646,2785,309,170,35, + 317,276,279,282,3924,678,647,2101,49,170, + 35,985,424,1987,2695,351,1164,356,1509,906, + 1761,35,314,1439,756,2784,395,562,3866,4887, + 5065,5075,6377,285,2858,2808,170,2332,2318,34, + 2956,2907,3420,3180,3183,3414,2262,1223,645,2157, + 425,308,170,35,7612,7590,3688,3027,842,5956, + 3086,35,1154,32,4746,4773,27,30,31,1092, + 1081,26,28,2049,296,25,23,50,2080,106, + 76,77,108,2636,2647,2646,2785,6023,603,4394, + 35,1154,32,4746,162,27,30,31,1092,1081, + 26,28,2049,296,25,23,50,2080,106,76, + 77,108,2636,2647,3356,2784,2113,35,312,170, + 35,2318,311,310,2858,2808,170,35,2318,313, + 2956,2907,706,935,2702,2983,2989,161,578,3086, + 35,1154,32,4746,4773,27,30,31,1092,1081, + 26,28,2049,296,25,23,50,2080,106,76, + 77,108,2636,2647,2646,2785,615,945,4394,35, + 1154,32,4746,162,27,30,31,1092,1081,26, + 28,2049,296,25,23,50,2080,106,76,77, + 108,2636,2647,3357,2784,85,1979,1845,549,575, + 5266,579,6524,2858,2808,916,605,2549,3389,2956, + 2907,170,35,3552,2983,2989,161,578,1330,2635, + 1969,347,2993,601,597,598,599,1390,1390,3086, + 35,1154,32,4746,4773,27,30,31,1092,1081, + 26,28,2049,296,25,23,50,2080,106,76, + 77,108,2636,2647,2646,2785,2156,817,3266,35, + 1154,32,7645,162,27,30,31,1092,1081,59, + 28,3914,1545,2113,35,315,2729,549,575,5266, + 579,1761,35,314,2784,7184,67,3606,35,312, + 6384,277,1669,2858,2808,170,35,330,3140,2956, + 2907,2993,469,357,2983,2989,161,578,3541,35, + 1154,32,4746,4773,27,30,31,1092,1081,26, + 28,2049,296,25,23,50,2080,106,76,77, + 108,2636,2647,2646,2785,1970,618,4394,35,1154, + 32,4746,162,27,30,31,1092,1081,26,28, + 2049,296,25,23,50,2080,106,76,77,108, + 2636,3287,1327,2784,949,1574,4669,549,575,5266, + 579,4028,2858,2808,1034,534,1923,1759,2956,2907, + 3570,3577,2395,2983,2989,161,578,2053,3152,1969, + 1332,2993,3620,35,1154,32,4746,378,27,30, + 31,1092,1081,26,28,2049,296,25,23,50, + 2080,106,76,77,108,2636,2647,2646,3041,1001, + 987,627,2476,479,3577,1556,177,3028,2248,3054, + 1001,3042,3077,3051,55,3076,3087,3090,176,7173, + 414,170,35,985,424,2484,550,575,5266,579, + 1761,35,489,1937,7554,3236,35,1154,32,4746, + 1137,27,30,31,1092,1081,26,28,2049,296, + 25,23,50,2080,106,76,77,108,2636,2647, + 2646,3041,3113,308,170,35,330,4028,55,177, + 3028,2248,3054,850,3042,3077,415,2795,3076,3087, + 3090,176,561,414,170,35,985,424,3462,35, + 1154,32,4746,5164,27,30,31,1092,1081,26, + 28,2049,296,25,23,50,2080,106,76,77, + 108,2636,2647,2646,3041,339,3761,170,35,2318, + 316,4028,177,3028,167,3054,488,3042,3077,2429, + 421,3076,3087,3090,176,375,613,2992,1545,415, + 2795,359,3310,35,1154,32,4746,378,27,30, + 31,1092,1081,26,28,2049,296,25,23,50, + 2080,106,76,77,108,2636,2647,2646,3041,2125, + 2979,478,1797,492,396,3690,177,3028,2248,3054, + 67,3042,3077,360,6774,3076,3087,3090,176,2930, + 414,2836,1666,422,3886,35,1154,32,4746,1515, + 27,30,31,1092,1081,26,28,2049,296,25, + 23,50,2080,106,76,77,108,2636,2647,2646, + 3041,2702,482,3131,3134,554,35,432,177,3028, + 55,3054,67,3042,3077,1891,7416,3076,3087,3090, + 176,496,191,2957,363,370,415,2795,3886,35, + 1154,32,4746,616,27,30,31,1092,1081,26, + 28,2049,296,25,23,50,2080,106,76,77, + 108,2636,2647,2646,3041,2243,554,35,432,7562, + 67,55,177,3028,7493,3054,1404,3042,3077,611, + 255,3076,3087,3090,176,474,408,170,2884,173, + 412,3266,35,1154,32,7645,3818,27,30,31, + 1092,1081,58,28,3346,3886,35,1154,32,4746, + 3688,27,30,31,1092,1081,26,28,2049,296, + 25,23,50,2080,106,76,77,108,2636,2647, + 2646,3041,2248,2246,2154,4229,1843,3570,4028,177, + 3028,5101,3054,67,3042,3077,3278,5585,3076,3087, + 3090,176,1041,408,170,35,2318,3547,3027,3886, + 35,1154,32,4746,378,27,30,31,1092,1081, + 26,28,2049,296,25,23,50,2080,106,76, + 77,108,2636,2647,2646,3041,2628,2078,2406,1226, + 35,2318,311,177,3028,407,3054,3281,3042,3077, + 672,2795,3076,3087,3090,176,2101,408,3462,35, + 1154,32,4746,617,27,30,31,1092,1081,26, + 28,2049,296,25,23,50,2080,106,76,77, + 108,2636,2647,2646,3041,1761,35,566,215,7671, + 170,3201,177,3028,924,3054,2429,3042,3077,1545, + 1545,3076,3087,3090,176,465,613,3693,35,1154, + 32,4746,406,27,30,31,1092,1081,26,28, + 2049,296,25,23,50,2080,106,76,77,108, + 2636,2647,2646,3041,170,3572,2318,74,3569,170, + 3451,2241,3028,55,3054,2520,3042,3077,929,475, + 3076,3087,3136,197,1545,170,35,985,424,1666, + 3914,3383,35,1154,32,4746,404,27,30,31, + 1092,1081,26,28,2049,296,25,23,50,2080, + 106,76,77,108,2636,2647,2646,3041,55,3982, + 2326,1970,533,4028,2638,177,3028,467,3054,3000, + 3042,3077,495,6675,3076,3087,3090,176,1666,175, + 362,369,370,2627,3951,35,1154,32,4746,378, + 27,30,31,1092,1081,26,28,2049,296,25, + 23,50,2080,106,76,77,108,2636,2647,2646, + 2785,325,3989,1408,35,1154,32,2795,162,41, + 30,31,1092,1081,2243,604,2549,51,7562,612, + 2781,370,3126,2255,3524,35,1154,32,7550,2784, + 27,30,31,1092,1081,57,28,67,2858,2808, + 4161,7507,426,4444,2956,2907,463,2547,4444,2983, + 2989,161,173,3951,35,1154,32,4746,475,27, + 30,31,1092,1081,26,28,2049,296,25,23, + 50,2080,106,76,77,108,2636,2647,2646,2785, + 187,187,4394,35,1154,32,4746,162,27,30, + 31,1092,1081,26,28,2049,296,25,23,50, + 2080,106,76,77,108,2636,3292,1553,2784,1226, + 35,2318,3573,170,35,2318,3618,2858,2808,88, + 42,3005,102,2956,2907,44,3005,2354,2983,2989, + 161,172,3951,35,1154,32,4746,2406,27,30, + 31,1092,1081,26,28,2049,296,25,23,50, + 2080,106,76,77,108,2636,2647,2646,2785,2634, + 2436,4394,35,1154,32,4746,162,27,30,31, + 1092,1081,26,28,2049,296,25,23,50,2080, + 106,76,77,108,3299,2841,3235,2784,3731,35, + 564,427,61,571,1330,463,2858,2808,170,35, + 2318,565,2956,2907,466,3092,3914,2983,2989,161, + 171,3951,35,1154,32,4746,3529,27,30,31, + 1092,1081,26,28,2049,296,25,23,50,2080, + 106,76,77,108,2636,2647,2646,2785,623,1127, + 4394,35,1154,32,4746,162,27,30,31,1092, + 1081,26,28,2049,296,25,23,50,2080,106, + 76,77,108,3347,2796,2844,2784,571,2322,55, + 5298,483,483,5987,1019,2858,2808,2008,55,571, + 55,2956,2907,704,3055,5947,2983,2989,161,170, + 3951,35,1154,32,4746,3374,27,30,31,1092, + 1081,26,28,2049,296,25,23,50,2080,106, + 76,77,108,2636,2647,2646,2785,3979,3914,4394, + 35,1154,32,4746,162,27,30,31,1092,1081, + 26,28,2049,296,25,23,50,2080,106,76, + 77,108,3350,55,4174,2784,55,55,6747,358, + 1516,6763,3932,2248,2858,2808,593,55,2395,55, + 2956,2907,6864,2185,1719,2983,2989,161,169,3951, + 35,1154,32,4746,1736,27,30,31,1092,1081, + 26,28,2049,296,25,23,50,2080,106,76, + 77,108,2636,2647,2646,2785,3986,628,4394,35, + 1154,32,4746,162,27,30,31,1092,1081,26, + 28,2049,296,25,23,50,2080,106,76,77, + 85,672,2795,391,2784,2145,55,457,70,1233, + 593,1868,2248,2858,2808,390,55,585,55,2956, + 2907,4842,593,2680,2983,2989,161,168,3951,35, + 1154,32,4746,1853,27,30,31,1092,1081,26, + 28,2049,296,25,23,50,2080,106,76,77, + 108,2636,2647,2646,2785,4044,93,4394,35,1154, + 32,4746,162,27,30,31,1092,1081,26,28, + 2049,296,25,23,50,2080,106,76,77,83, + 672,2795,55,2784,55,3603,2116,1339,3581,2342, + 2099,2248,2858,2808,89,55,55,102,2956,2907, + 2500,998,1345,2983,2989,161,167,3951,35,1154, + 32,4746,475,27,30,31,1092,1081,26,28, + 2049,296,25,23,50,2080,106,76,77,108, + 2636,2647,2646,2785,5040,3914,4394,35,1154,32, + 4746,162,27,30,31,1092,1081,26,28,2049, + 296,25,23,50,2080,106,76,77,82,672, + 2795,55,2784,55,1731,2458,6936,642,2552,630, + 2248,2858,2808,1874,3577,3577,1859,2956,2907,2345, + 7569,3914,2983,2989,161,166,3951,35,1154,32, + 4746,388,27,30,31,1092,1081,26,28,2049, + 296,25,23,50,2080,106,76,77,108,2636, + 2647,2646,2785,24,1474,4394,35,1154,32,4746, + 162,27,30,31,1092,1081,26,28,2049,296, + 25,23,50,2080,106,76,77,81,672,2795, + 67,2784,55,55,7581,429,2957,1182,1715,463, + 2858,2808,657,55,1430,55,2956,2907,6960,2563, + 2568,2983,2989,161,165,3951,35,1154,32,4746, + 475,27,30,31,1092,1081,26,28,2049,296, + 25,23,50,2080,106,76,77,108,2636,2647, + 2646,2785,1969,338,4394,35,1154,32,4746,162, + 27,30,31,1092,1081,26,28,2049,296,25, + 23,50,2080,106,76,77,80,2975,55,2245, + 2784,2795,1872,1385,554,35,432,753,2167,2858, + 2808,379,55,1872,55,2956,2907,3911,2429,2626, + 2983,2989,161,164,3951,35,1154,32,4746,3518, + 27,30,31,1092,1081,26,28,2049,296,25, + 23,50,2080,106,76,77,108,2636,2647,2646, + 2785,2957,3850,4394,35,1154,32,4746,162,27, + 30,31,1092,1081,26,28,2049,296,25,23, + 50,2080,106,76,77,79,2520,1545,67,2784, + 3051,1666,7585,428,2957,1539,754,463,2858,2808, + 170,35,985,424,2956,2907,2013,74,335,2983, + 2989,161,163,4394,35,1154,32,4746,389,27, + 30,31,1092,1081,26,28,2049,296,25,23, + 50,2080,106,76,77,108,2636,2647,2646,3041, + 3051,624,470,365,370,3625,3304,1545,3028,1666, + 3054,1969,3042,3077,584,1969,3076,3087,3136,197, + 3886,35,1154,32,4746,584,27,30,31,1092, + 1081,26,28,2049,296,25,23,50,2080,106, + 76,77,108,2636,2647,2646,3041,1556,3051,2929, + 361,2246,332,440,177,3028,2957,3054,2105,3042, + 3077,2944,370,3076,3087,3090,176,587,192,2894, + 170,35,985,424,3886,35,1154,32,4746,3449, + 27,30,31,1092,1081,26,28,2049,296,25, + 23,50,2080,106,76,77,108,2636,2647,2646, + 3041,55,418,212,1403,1322,2003,2957,177,3028, + 97,3054,469,3042,3077,1969,1969,3076,3087,3090, + 176,3536,188,3886,35,1154,32,4746,439,27, + 30,31,1092,1081,26,28,2049,296,25,23, + 50,2080,106,76,77,108,2636,2647,2646,3041, + 331,2472,1556,620,232,2957,2957,177,3028,3364, + 3054,3051,3042,3077,1969,3160,3076,3087,3090,176, + 7194,187,411,3886,35,1154,32,4746,743,27, + 30,31,1092,1081,26,28,2049,296,25,23, + 50,2080,106,76,77,108,2636,2647,2646,3041, + 1556,2153,231,334,2957,2957,438,177,3028,3427, + 3054,2957,3042,3077,3552,163,3076,3087,3090,176, + 411,186,3886,35,1154,32,4746,557,27,30, + 31,1092,1081,26,28,2049,296,25,23,50, + 2080,106,76,77,108,2636,2647,2646,3041,3051, + 3851,235,233,2957,3055,55,177,3028,442,3054, + 3348,3042,3077,321,55,3076,3087,3090,176,2077, + 185,3886,35,1154,32,4746,661,27,30,31, + 1092,1081,26,28,2049,296,25,23,50,2080, + 106,76,77,108,2636,2647,2646,3041,1545,4108, + 5783,409,55,1036,4114,177,3028,2089,3054,1413, + 3042,3077,163,2522,3076,3087,3090,176,3914,184, + 3886,35,1154,32,4746,1329,27,30,31,1092, + 1081,26,28,2049,296,25,23,50,2080,106, + 76,77,108,2636,2647,2646,3041,2536,5036,2393, + 2127,322,2895,2957,177,3028,585,3054,2957,3042, + 3077,1339,919,3076,3087,3090,176,3914,183,3886, + 35,1154,32,4746,749,27,30,31,1092,1081, + 26,28,2049,296,25,23,50,2080,106,76, + 77,108,2636,2647,2646,3041,852,1742,71,2206, + 256,98,417,177,3028,226,3054,2537,3042,3077, + 2880,2596,3076,3087,3090,176,3914,182,3886,35, + 1154,32,4746,5088,27,30,31,1092,1081,26, + 28,2049,296,25,23,50,2080,106,76,77, + 108,2636,2647,2646,3041,4992,2700,2791,2285,2899, + 2977,2613,177,3028,2605,3054,2168,3042,3077,81, + 3234,3076,3087,3090,176,3914,181,3886,35,1154, + 32,4746,3394,27,30,31,1092,1081,26,28, + 2049,296,25,23,50,2080,106,76,77,108, + 2636,2647,2646,3041,1887,35,489,5680,7554,416, + 2521,177,3028,2704,3054,2612,3042,3077,3853,2051, + 3076,3087,3090,176,3914,180,3886,35,1154,32, + 4746,1414,27,30,31,1092,1081,26,28,2049, + 296,25,23,50,2080,106,76,77,108,2636, + 2647,2646,3041,3264,2346,1782,69,3193,97,2696, + 177,3028,2878,3054,2882,3042,3077,2973,5136,3076, + 3087,3090,176,3914,179,3886,35,1154,32,4746, + 3656,27,30,31,1092,1081,26,28,2049,296, + 25,23,50,2080,106,76,77,108,2636,2647, + 2646,3041,3686,3720,3855,68,1649,1657,2152,177, + 3028,3005,3054,3576,3042,3077,2437,266,3076,3087, + 3090,176,359,178,4016,35,1154,32,4746,946, + 27,30,31,1092,1081,26,28,2049,296,25, + 23,50,2080,106,76,77,108,2636,2647,2646, + 2785,3914,3914,4394,35,1154,32,4746,162,27, + 30,31,1092,1081,26,28,2049,296,25,23, + 50,2080,106,76,77,78,3914,1042,2520,2784, + 1138,2339,2607,53,52,2626,2778,2869,2858,2808, + 170,35,985,424,2956,2907,486,3131,3134,2983, + 2989,161,160,3886,35,1154,32,4746,413,27, + 30,31,1092,1081,26,28,2049,296,25,23, + 50,2080,106,76,77,108,2636,2647,2646,3041, + 839,3587,468,3795,3388,3219,2701,177,3028,3801, + 3054,1666,3042,3077,2969,193,3076,3087,3090,176, + 3914,641,3886,35,1154,32,4746,3821,27,30, + 31,1092,1081,26,28,2049,296,25,23,50, + 2080,106,76,77,108,2636,2647,2646,3041,1035, + 273,3568,2473,2698,2717,2808,177,3028,2983,3054, + 3834,3042,3077,2982,370,3076,3087,3090,176,3914, + 140,4081,35,1154,32,4746,4152,27,30,31, + 1092,1081,26,28,2049,296,25,23,50,2080, + 106,76,77,108,2636,2647,2646,3041,1031,5084, + 5244,633,3819,3950,3273,177,3028,4051,3054,4116, + 3042,3077,1969,3809,3076,3087,3090,176,3914,222, + 3165,35,1154,32,4746,673,27,30,31,1092, + 1081,26,28,2049,296,25,23,50,2080,106, + 76,77,108,2636,2647,2646,2785,3920,1556,55, + 602,378,3981,189,1404,1717,1556,1860,35,1154, + 32,2411,2153,2601,30,31,1092,1081,586,3356, + 3612,4047,3860,2427,3989,3224,2365,1860,35,1154, + 32,4112,3685,40,30,31,1092,1081,3914,4394, + 35,1154,32,4746,3145,27,30,31,1092,1081, + 26,28,2049,296,25,23,50,2080,106,76, + 77,108,2636,2647,2646,3041,2886,3869,4118,2364, + 622,3700,4173,4176,3028,4135,3054,8899,3042,3077, + 8899,3914,3076,3087,3136,197,4394,35,1154,32, + 4746,8899,27,30,31,1092,1081,26,28,2049, + 296,25,23,50,2080,106,76,77,108,2636, + 2647,2646,3041,621,8899,8899,8899,8899,8899,8899, + 8899,3028,8899,3054,8899,3042,3077,8899,8899,3076, + 3087,3136,197,8899,8899,3914,3914,3914,3457,3914, + 4394,35,1154,32,4746,459,27,30,31,1092, + 1081,26,28,2049,296,25,23,50,2080,106, + 76,77,108,2636,2647,2646,3041,90,385,634, + 607,2548,8899,8899,8899,3028,8899,3054,8899,3042, + 3077,8899,3914,3076,3087,3136,197,4394,35,1154, + 32,4746,329,27,30,31,1092,1081,26,28, + 2049,296,25,23,50,2080,106,76,77,108, + 2636,2647,2646,3041,2564,8899,8899,8899,8899,8899, + 8899,8899,3028,8899,3054,8899,3042,3077,8899,8899, + 3076,3087,3136,197,8899,8899,3914,3914,2527,3914, + 3914,4394,35,1154,32,4746,458,27,30,31, + 1092,1081,26,28,2049,296,25,23,50,2080, + 106,76,77,108,2636,2647,2646,3041,2364,487, + 143,6038,6105,8899,8899,8899,3028,8899,3054,8899, + 3042,3077,8899,3914,3076,3087,3136,197,4642,35, + 1154,32,4746,461,27,30,31,1092,1081,26, + 28,2049,296,25,23,50,2080,106,76,77, + 108,2636,2647,2646,3041,6172,1753,8899,8899,8899, + 8899,8899,8899,3028,8899,3054,8899,3042,3077,273, + 296,3076,3087,3136,197,8899,8899,8899,8899,8899, + 8899,8899,8899,652,597,598,599,644,5274,35, + 1154,32,6875,5000,27,30,31,1092,1081,374, + 28,5328,35,1154,32,5704,5000,27,30,31, + 1092,1081,374,28,2539,600,597,598,599,266, + 8899,8899,746,3201,8899,8899,6473,3159,600,597, + 598,599,7342,3914,2978,274,264,265,3914,6505, + 8899,600,597,598,599,8899,8899,8899,1749,1334, + 330,8899,3963,3413,354,1292,356,2184,8899,386, + 349,1250,8899,8899,8899,2935,8899,354,1292,356, + 67,367,4667,349,1250,600,597,598,599,3655, + 601,597,598,599,6761,4667,986,8899,8899,8899, + 4394,35,1154,32,4746,5318,27,30,31,1092, + 1081,26,28,2049,296,25,23,50,2080,106, + 76,77,108,2636,2647,2646,3041,3914,4792,35, + 985,424,5590,1875,8899,3028,3914,3054,387,3042, + 3077,271,296,3076,3513,379,2557,2320,384,3914, + 3914,341,345,796,3686,652,597,598,599,66, + 600,597,598,599,341,345,796,8899,65,8899, + 308,986,8899,1453,8899,1749,35,330,8899,8899, + 2173,64,55,324,8899,4033,3033,8899,8899,8899, + 387,266,8899,2173,8899,3914,8899,379,2557,2320, + 384,1442,600,597,598,599,377,269,264,265, + 1010,1817,3223,986,3056,35,1154,32,5704,7436, + 27,30,31,1092,1081,374,28,54,1358,35, + 3286,32,6875,5000,27,30,31,1092,1081,374, + 28,8899,309,4995,8899,8899,276,279,282,3924, + 678,3914,3914,8899,8899,600,597,598,599,8899, + 55,1860,35,1154,32,4028,4952,2891,30,31, + 1092,1081,8899,3866,4887,5065,5075,6377,285,2413, + 354,1292,356,101,3038,2522,349,1250,8899,3914, + 2230,378,8899,645,354,1292,356,2184,588,8899, + 349,1250,4033,8899,5956,8899,601,597,598,599, + 8899,367,2015,8899,3989,387,8899,600,597,598, + 599,2691,379,2557,2320,384,8899,1010,5751,3914, + 8899,589,6023,8899,3127,5318,4394,2332,1154,2444, + 4746,8899,27,30,31,1092,1081,26,28,2049, + 296,25,23,50,2080,106,76,77,84,8899, + 8899,3512,6520,455,3283,4518,35,1154,32,4746, + 8899,27,30,31,1092,1081,26,28,2049,296, + 25,23,50,2080,106,76,77,108,2636,2647, + 2646,2785,4394,35,1154,32,4746,8899,27,30, + 31,1092,1081,26,28,2049,296,25,23,50, + 2080,106,76,77,108,2636,2647,2646,3041,8899, + 2784,8899,2169,8899,8899,8899,8899,3499,8899,2858, + 2808,8899,8899,8899,8899,2956,3406,3978,8899,3914, + 3783,8899,1404,4394,35,1154,32,4746,2839,27, + 30,31,1092,1081,26,28,2049,296,25,23, + 50,2080,106,76,77,108,2636,2647,2646,3041, + 193,6306,591,8899,8899,8899,8899,8899,3028,8899, + 3054,8899,3042,3077,8899,8899,3504,4518,35,1154, + 32,4746,8899,27,30,31,1092,1081,26,28, + 2049,296,25,23,50,2080,106,76,77,108, + 2636,2647,2646,2785,4394,35,1154,32,4746,8899, + 27,30,31,1092,1081,26,28,2049,296,25, + 23,50,2080,106,76,77,108,2636,2647,2646, + 3041,8899,2784,8899,170,35,985,424,8899,3500, + 3321,2858,2808,8899,8899,8899,8899,3404,4394,35, + 1154,32,4746,8899,27,30,31,1092,1081,26, + 28,2049,296,25,23,50,2080,106,76,77, + 108,2636,2647,2646,3041,8899,49,8899,8899,8899, + 8899,8899,8899,3028,8899,3054,46,3042,3502,4518, + 35,1154,32,4746,8899,27,30,31,1092,1081, + 26,28,2049,296,25,23,50,2080,106,76, + 77,108,2636,2647,2646,2785,4394,35,1154,32, + 4746,8899,27,30,31,1092,1081,26,28,2049, + 296,25,23,50,2080,106,76,77,108,2636, + 2647,2646,3351,8899,2784,362,35,985,424,8899, + 8899,8899,8899,2858,3405,4394,35,1154,32,4746, + 8899,27,30,31,1092,1081,26,28,2049,296, + 25,23,50,2080,106,76,77,108,2636,2647, + 2646,3041,8899,8899,8899,8899,8899,308,8899,8899, + 3028,8899,3054,8899,3503,4719,35,1154,32,6875, + 8899,27,30,31,1092,1081,374,28,8899,2003, + 35,1154,32,5704,5000,27,30,31,1092,1081, + 374,28,600,597,598,599,8899,8899,4518,35, + 1154,32,4746,5847,27,30,31,1092,1081,26, + 28,2049,296,25,23,50,2080,106,76,77, + 108,2636,2647,2646,2785,8899,8899,2014,8899,3555, + 8899,354,1292,356,2184,8899,8899,350,1250,3978, + 2448,8899,8899,8899,1404,354,1292,356,368,8899, + 8899,349,1250,2784,600,597,598,599,8899,72, + 8899,8899,3400,1061,8899,4680,387,601,597,598, + 599,8899,193,381,2557,2320,384,4394,35,1154, + 32,4746,8899,27,30,31,1092,1081,26,28, + 2049,296,25,23,50,2080,106,76,77,108, + 2636,2647,2646,3041,8899,8899,1596,35,985,424, + 8899,1431,3028,8899,3498,3148,35,1154,32,5704, + 5000,27,30,31,1092,1081,374,28,8899,8899, + 8899,8899,8899,4898,35,553,8899,8899,600,597, + 598,599,600,597,598,599,271,296,49,4179, + 8899,3489,3322,6505,8899,8899,1404,8899,1509,1125, + 652,597,598,599,3571,35,1154,32,7550,8899, + 27,30,31,1092,1081,56,28,8899,8899,8899, + 1879,354,1292,356,189,8899,8899,349,1250,8899, + 55,8899,2885,273,296,4028,266,8899,234,4667, + 8899,8899,746,3201,8899,8899,8899,652,597,598, + 599,8899,269,264,265,8899,4518,35,1154,32, + 4746,378,27,30,31,1092,1081,26,28,2049, + 296,25,23,50,2080,106,76,77,108,2636, + 2647,2646,2785,266,3989,8899,8899,1995,8899,8899, + 8899,276,279,282,3924,678,8899,8899,8899,274, + 264,265,8899,8899,3129,8899,8899,8899,342,345, + 796,3401,8899,8899,652,597,598,599,4820,6090, + 6382,6536,6853,4518,35,1154,32,4746,1490,27, + 30,31,1092,1081,26,28,2049,296,25,23, + 50,2080,106,76,77,108,2636,2647,2646,2785, + 266,8899,1392,35,3286,32,5704,5000,27,30, + 31,1092,1081,374,28,803,278,264,265,562, + 563,567,60,8899,8899,8899,8899,8899,3403,3562, + 597,598,599,8899,8899,8899,8899,8899,8899,8899, + 5052,8899,8899,324,8899,554,35,2409,6121,8899, + 2440,6721,8899,8899,6567,3116,35,3286,32,5704, + 5000,27,30,31,1092,1081,374,28,354,1292, + 356,2551,3223,8899,349,1250,8899,600,597,598, + 599,8899,600,597,598,599,2015,49,5240,8899, + 8899,8899,8899,5052,8899,8899,8899,1509,842,8899, + 8899,8899,3195,35,3286,32,5704,5000,27,30, + 31,1092,1081,374,28,2010,8899,8899,8899,2184, + 2787,354,1292,356,8899,2103,8899,349,1250,3562, + 597,598,599,367,2867,8899,7257,455,3283,2015, + 5052,8899,652,597,598,599,8899,600,597,598, + 599,289,652,597,598,599,673,6421,5981,8899, + 8899,600,597,598,599,8899,3978,8899,354,1292, + 356,1404,5240,8899,349,1250,4190,8899,266,8899, + 8899,8899,262,8899,189,8899,2015,1556,266,7652, + 455,3283,2736,8899,281,264,265,8899,213,193, + 237,249,739,364,284,264,265,202,236,246, + 247,248,250,651,5247,35,1154,32,5704,7436, + 27,30,31,1092,1081,374,28,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,7257,455,3283,8899, + 8899,201,216,200,203,204,205,206,207,4394, + 35,1154,32,4746,8899,27,30,31,1092,1081, + 26,28,2049,296,25,23,50,2080,106,76, + 77,108,2636,2647,2646,3352,8899,8899,8899,3787, + 354,1292,356,8899,8899,8899,349,1250,8899,8899, + 2512,8899,8899,4146,35,1154,32,4746,3277,27, + 30,31,1092,1081,26,28,2049,296,25,23, + 50,2080,648,76,77,387,3651,601,597,598, + 599,6761,379,2557,2320,384,4394,35,1154,32, + 4746,3276,27,30,31,1092,1081,26,28,2049, + 296,25,23,50,2080,106,76,77,108,2636, + 2647,2646,3355,1,55,8899,8899,8899,673,4028, + 8899,5303,8899,3492,8899,8899,8899,8899,1559,35, + 1154,32,6875,8899,27,30,31,1092,1081,374, + 28,8899,8899,8899,262,378,189,8899,8899,1556, + 600,597,598,599,2736,600,597,598,599,8899, + 213,5240,237,249,739,8899,5240,8899,3989,202, + 236,246,247,248,250,651,8899,387,8899,8899, + 8899,8899,8899,8899,379,2557,2320,384,3130,8899, + 401,8899,3139,577,354,1292,356,2184,8899,8899, + 352,1250,8899,201,217,200,203,204,205,206, + 207,368,3577,8899,8899,214,4394,35,1154,32, + 4746,8899,27,30,31,1092,1081,26,28,2049, + 296,25,23,50,2080,106,76,77,108,2636, + 2647,2646,3453,4394,35,1154,32,4746,8899,27, + 30,31,1092,1081,26,28,2049,296,25,23, + 50,2080,106,76,77,108,2636,2647,2646,3454, + 4394,35,1154,32,4746,8899,27,30,31,1092, + 1081,26,28,2049,296,25,23,50,2080,106, + 76,77,108,2636,2647,2646,3455,4394,35,1154, + 32,4746,8899,27,30,31,1092,1081,26,28, + 2049,296,25,23,50,2080,106,76,77,108, + 2636,2647,2646,3458,4394,35,1154,32,4746,8899, + 27,30,31,1092,1081,26,28,2049,296,25, + 23,50,2080,106,76,77,108,2636,2647,2646, + 3460,4394,35,1154,32,4746,8899,27,30,31, + 1092,1081,26,28,2049,296,25,23,50,2080, + 106,76,77,108,2636,2647,2646,3476,1724,35, + 1154,32,5704,7374,27,30,31,1092,1081,374, + 28,8899,8899,8899,8899,170,35,985,424,55, + 75,35,985,424,1404,4394,35,1154,32,4746, + 386,27,30,31,1092,1081,26,28,2049,296, + 25,23,50,2080,106,76,77,108,2636,2647, + 2646,3788,189,8899,8899,8899,8899,49,8899,8899, + 1724,8899,49,8899,354,1292,356,1509,1066,8899, + 349,1250,1509,1409,8899,8899,8899,4208,35,1154, + 32,4746,1061,27,30,31,1092,1081,26,28, + 2049,296,25,23,50,2080,637,76,77,387, + 8899,8899,799,8899,8899,8899,379,2557,2320,384, + 3755,35,1154,32,4746,3686,27,30,31,1092, + 1081,26,28,2049,296,25,23,50,2080,106, + 76,77,107,385,75,35,985,424,673,8899, + 8899,3823,35,1154,32,4746,2248,27,30,31, + 1092,1081,26,28,2049,296,25,23,50,2080, + 106,76,77,104,262,3305,189,8899,55,1556, + 673,8899,8899,4028,2736,8899,49,8899,8899,8899, + 213,3074,237,249,739,8899,1509,1082,8899,202, + 236,246,247,248,250,651,378,8899,189,378, + 481,1556,8899,8899,8899,673,2411,8899,601,597, + 598,599,3817,4043,672,2795,1231,673,1404,3989, + 8899,2365,3989,201,3450,200,203,204,205,206, + 207,262,8899,189,8899,8899,1556,8899,8899,2128, + 8899,2736,3689,378,8899,189,189,213,8899,237, + 249,739,8899,221,195,8899,202,236,246,247, + 248,250,651,8899,8899,8899,7316,577,55,3574, + 8899,8899,673,673,1404,8899,8899,3340,35,1154, + 32,5704,8899,27,30,31,1092,1081,374,28, + 201,211,200,203,204,205,206,207,262,378, + 189,189,189,1556,601,597,598,599,2736,3243, + 3509,8899,8899,8899,213,3305,237,249,739,8899, + 673,8899,3989,202,236,246,247,248,250,651, + 8899,8899,8899,55,673,55,8899,223,1404,673, + 1404,8899,3194,354,1292,356,378,55,189,663, + 1250,1556,1404,8899,8899,8899,2411,201,209,200, + 203,204,205,206,207,262,189,189,189,3989, + 1556,2365,8899,8899,3409,2736,3948,3228,8899,8899, + 189,213,4028,237,249,739,2144,8899,4027,2998, + 202,236,246,247,248,250,651,8899,8899,8899, + 8899,769,55,8899,8899,8899,673,4028,5164,8899, + 8899,3373,3507,652,597,598,599,2440,8899,8899, + 8899,6567,4339,2933,201,643,200,203,204,205, + 206,207,262,378,189,8899,8899,1556,601,597, + 598,599,2736,8899,600,597,598,599,213,266, + 237,249,739,2233,8899,5240,3989,202,236,246, + 247,248,250,651,8899,287,264,265,865,55, + 8899,8899,8899,673,1404,8899,545,8899,3609,8899, + 652,597,598,599,2504,8899,2184,8899,6567,541, + 8899,201,210,200,203,204,205,206,207,262, + 6054,189,189,8899,1556,601,597,598,599,2736, + 4036,600,597,598,599,213,266,237,249,739, + 2597,8899,5240,8899,202,236,246,247,248,250, + 651,8899,647,264,265,961,55,538,540,8899, + 673,1404,8899,8899,8899,8899,8899,652,597,598, + 599,2331,8899,2184,8899,8899,8899,8899,201,220, + 200,203,204,205,206,207,262,6054,189,189, + 55,1556,3185,8899,8899,1404,2736,4049,600,597, + 598,599,213,266,237,249,739,2100,94,5751, + 8899,202,236,246,247,248,250,651,8899,278, + 264,265,1057,189,8899,8899,8899,673,8899,8899, + 8899,2687,8899,8899,601,597,598,599,1971,8899, + 8899,8899,6567,8899,8899,201,3621,200,203,204, + 205,206,207,262,3305,189,8899,8899,1556,673, + 8899,8899,8899,2736,8899,600,597,598,599,213, + 8899,237,249,739,8899,96,5240,8899,202,236, + 246,247,248,250,651,378,8899,189,8899,1153, + 1556,8899,8899,8899,673,2411,8899,8899,8899,8899, + 55,3305,8899,2236,55,673,673,2184,3989,4028, + 2365,8899,201,225,200,203,204,205,206,207, + 262,368,189,8899,8899,1556,8899,8899,3047,8899, + 2736,378,378,189,189,378,213,1556,237,249, + 739,221,2411,8899,8899,202,236,246,247,248, + 250,651,8899,8899,7316,3989,1249,2365,3989,8899, + 8899,673,8899,8899,8899,55,8899,55,3305,55, + 4028,8899,673,673,1404,3096,8899,8899,543,201, + 219,200,203,204,205,206,207,262,8899,189, + 3978,8899,1556,8899,8899,1404,378,2736,378,378, + 189,189,189,213,1556,237,249,739,221,2411, + 4152,8899,202,236,246,247,248,250,651,3989, + 8899,7316,3989,193,2365,3789,8899,4845,35,985, + 424,5590,2688,8899,267,35,985,424,8899,596, + 272,296,3145,8899,8899,8899,201,228,200,203, + 204,205,206,207,652,597,598,599,8899,652, + 597,598,599,55,8899,8899,8899,8899,673,308, + 8899,1559,35,1154,32,6875,49,27,30,31, + 1092,1081,374,28,8899,8899,1509,47,8899,8899, + 266,8899,3790,8899,378,266,189,8899,600,597, + 598,599,8899,4050,221,8899,270,264,265,5847, + 8899,281,264,265,8899,8899,1085,7316,8899,8899, + 8899,8899,8899,5287,35,1154,32,5704,5000,27, + 30,31,1092,1081,374,28,8899,354,1292,356, + 2184,309,8899,350,1250,277,280,283,3924,678, + 601,597,598,599,368,3148,35,1154,32,5704, + 5000,27,30,31,1092,1081,374,28,8899,8899, + 3416,8899,8899,8899,2440,2058,8899,286,6567,8899, + 4028,8899,601,597,598,599,2779,8899,3833,354, + 1292,356,646,8899,8899,349,1250,600,597,598, + 599,600,597,598,599,8899,262,5070,6048,8899, + 8899,8899,5240,652,597,598,599,170,35,985, + 424,354,1292,356,239,249,739,349,1250,8899, + 8899,8899,238,246,247,248,250,651,8899,5070, + 8899,8899,8899,2184,8899,8899,8899,8899,8899,266, + 8899,8899,8899,8899,8899,8899,8899,367,8899,49, + 240,242,244,720,8899,284,264,265,8899,1509, + 7626,8899,8899,251,241,243,4394,35,1154,32, + 4746,6188,27,30,31,1092,1081,26,28,2049, + 296,25,23,50,2080,106,76,77,110,13, + 8899,6956,4394,35,1154,32,4746,8899,27,30, + 31,1092,1081,26,28,2049,296,25,23,50, + 2080,106,76,77,109,4394,35,1154,32,4746, + 8899,27,30,31,1092,1081,26,28,2049,296, + 25,23,50,2080,106,76,77,105,4270,35, + 1154,32,4746,8899,27,30,31,1092,1081,26, + 28,2049,296,25,23,50,2080,635,76,77, + 8899,2870,8899,8899,8899,4332,35,1154,32,4746, + 705,27,30,31,1092,1081,26,28,2049,296, + 25,23,50,2080,86,76,77,2279,652,597, + 598,599,4028,8899,8899,8899,8899,8899,8899,3978, + 8899,2440,8899,2370,1404,6567,8899,8899,4028,8899, + 8899,8899,8899,8899,458,35,985,424,262,8899, + 8899,8899,8899,8899,266,8899,8899,8899,600,597, + 598,599,193,8899,262,8899,239,249,739,5240, + 569,264,265,8899,238,246,247,248,250,651, + 8899,8899,239,249,739,8899,49,8899,8899,8899, + 238,246,247,248,250,651,1509,47,8899,8899, + 2184,8899,240,242,244,720,8899,8899,8899,8899, + 8899,8899,8899,8899,367,251,241,243,240,242, + 244,720,8899,4951,35,553,3557,8899,8899,8899, + 8899,251,241,243,2461,8899,272,296,7423,4028, + 8899,1223,4095,6956,8899,75,35,985,424,8899, + 652,597,598,599,8899,8899,8899,2630,8899,6956, + 4456,35,1154,32,4746,262,27,30,31,1092, + 1081,26,28,2049,296,25,23,50,2080,3238, + 76,77,8899,239,249,739,266,49,8899,8899, + 8899,238,246,247,248,250,651,1509,5313,8899, + 8899,8899,270,264,265,2188,2884,8899,8899,8899, + 4028,4028,8899,8899,8899,8899,8899,8899,3978,240, + 242,244,720,1404,8899,8899,1928,1231,8899,8899, + 3685,4028,251,241,243,4028,262,5164,8899,8899, + 8899,277,280,283,3924,678,8899,8899,3228,8899, + 8899,193,8899,4028,239,249,739,262,2728,8899, + 6956,5164,238,246,247,248,250,651,8899,3489, + 8899,8899,8899,8899,673,239,249,739,8899,5164, + 8899,8899,8899,238,246,247,248,250,651,8899, + 240,242,244,720,8899,8899,2552,8899,8899,8899, + 2562,4028,189,580,241,243,8899,8899,8899,8899, + 2736,240,242,244,720,8899,213,2643,395,562, + 563,568,4028,8899,252,241,243,262,8899,8899, + 8899,4151,8899,8899,3943,3180,3183,8899,8899,8899, + 8899,8899,541,8899,8899,239,249,739,262,8899, + 8899,8899,8899,238,246,247,248,250,651,229, + 541,8899,8899,8899,8899,8899,239,249,739,8899, + 170,35,985,424,238,246,247,248,250,651, + 2734,240,242,244,720,4028,8899,8899,8899,8899, + 538,540,8899,8899,671,241,243,8899,8899,8899, + 8899,2825,240,242,244,720,4028,8899,539,540, + 8899,262,49,8899,8899,670,241,243,8899,8899, + 8899,8899,1509,1761,8899,3616,8899,8899,8899,239, + 249,739,262,8899,8899,8899,8899,238,246,247, + 248,250,651,1676,8899,8899,8899,7100,4028,8899, + 239,249,739,8899,170,35,985,424,238,246, + 247,248,250,651,2916,240,242,244,720,4028, + 8899,8899,8899,8899,262,8899,8899,8899,669,241, + 243,5782,230,8899,8899,3007,240,242,244,720, + 4028,8899,2686,443,7329,262,49,8899,8899,581, + 241,243,8899,8899,8899,8899,1509,1077,8899,8899, + 2867,8899,8899,239,249,739,262,8899,8899,8899, + 8899,238,246,247,248,250,651,3782,444,445, + 446,720,8899,8899,239,249,739,600,597,598, + 599,8899,238,246,247,248,250,651,5240,240, + 242,244,720,8899,600,597,598,599,8899,8899, + 8899,8899,340,241,243,6157,2561,8899,8899,8899, + 240,242,244,720,8899,8899,8899,8899,8899,2312, + 8899,8899,8899,535,241,243,2963,35,1154,32, + 5704,5000,27,30,31,1092,1081,374,28,1487, + 35,1154,32,5704,4128,27,30,31,1092,1081, + 374,28,2351,8899,8899,8899,6567,4028,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,1802, + 8899,447,449,7100,4028,8899,8899,8899,8899,600, + 597,598,599,5164,2351,8899,439,8899,6567,4028, + 5240,8899,354,1292,356,8899,8899,8899,349,1250, + 262,738,8899,8899,7359,351,1164,356,8899,8899, + 3617,600,597,598,599,5164,8899,8899,2686,443, + 7329,2184,5240,8899,8899,8899,458,35,985,424, + 8899,8899,8899,3446,8899,367,8899,6567,8899,8899, + 8899,8899,8899,8899,8899,8899,2440,8899,8899,8899, + 6567,8899,8899,2184,444,445,446,720,8899,7423, + 600,597,598,599,395,8899,8899,367,49,8899, + 8899,5240,8899,600,597,598,599,8899,1509,47, + 3732,3180,3183,8899,5240,8899,8899,8899,8899,8899, + 8899,4605,2561,8899,3305,8899,395,8899,8899,673, + 8899,8899,2184,75,35,985,424,8899,1063,8899, + 8899,8899,3732,3180,3183,2184,368,651,35,985, + 424,8899,706,8899,8899,378,8899,189,8899,367, + 1556,8899,8899,8899,387,2411,1718,35,985,424, + 8899,381,2557,2320,384,49,8899,8899,3989,8899, + 2365,8899,8899,4605,8899,1509,47,447,450,49, + 458,35,985,424,75,35,985,424,3786,1509, + 47,8899,75,35,985,424,8899,8899,49,75, + 35,985,424,8899,8899,788,8899,8899,1509,2315, + 8899,75,35,985,424,75,35,985,424,1274, + 2230,8899,49,8899,8899,8899,49,8899,8899,8899, + 8899,8899,1509,2316,49,8899,1509,47,799,8899, + 8899,49,2528,8899,1509,47,8899,600,597,598, + 599,1509,47,49,8899,8899,3077,49,5751,8899, + 2867,8899,4555,1509,47,8899,1294,1509,47,600, + 597,598,599,8899,1725,170,35,985,424,8899, + 5751,2640,3786,600,597,598,599,600,597,598, + 599,4109,8899,2750,5240,8899,4028,3360,5240,8899, + 8899,170,35,985,424,8899,8899,8899,8899,600, + 597,598,599,8899,8899,8899,8899,49,8899,8899, + 6048,8899,378,592,8899,3139,8899,1509,1125,2485, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,49,8899,3989,8899,8899,8899,8899, + 8899,8899,2314,1509,1998,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,595,8899,8899,8899,8899, + 8899,8899,8899,8899,2325,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,4340,8899,0,1,263,813,0,537,6935, + 0,1,263,0,39,8914,0,39,8913,0, + 1,4619,0,1813,1,0,39,1,8914,0, + 39,1,8913,0,1,1156,0,1,826,0, + 263,253,0,9167,257,0,9166,257,0,848, + 257,0,923,257,0,957,257,0,9567,257, + 0,9272,257,0,9271,257,0,9194,257,0, + 9193,257,0,9192,257,0,9191,257,0,9190, + 257,0,9189,257,0,9188,257,0,9187,257, + 0,9167,258,0,9166,258,0,848,258,0, + 923,258,0,957,258,0,9567,258,0,9272, + 258,0,9271,258,0,9194,258,0,9193,258, + 0,9192,258,0,9191,258,0,9190,258,0, + 9189,258,0,9188,258,0,9187,258,0,9167, + 259,0,9166,259,0,848,259,0,923,259, + 0,957,259,0,9567,259,0,9272,259,0, + 9271,259,0,9194,259,0,9193,259,0,9192, + 259,0,9191,259,0,9190,259,0,9189,259, + 0,9188,259,0,9187,259,0,957,430,0, + 923,430,0,848,430,0,318,430,0,9167, + 260,0,9166,260,0,848,260,0,923,260, + 0,957,260,0,9567,260,0,9272,260,0, + 9271,260,0,9194,260,0,9193,260,0,9192, + 260,0,9191,260,0,9190,260,0,9189,260, + 0,9188,260,0,9187,260,0,318,323,0, + 9167,261,0,9166,261,0,848,261,0,923, + 261,0,957,261,0,9567,261,0,9272,261, + 0,9271,261,0,9194,261,0,9193,261,0, + 9192,261,0,9191,261,0,9190,261,0,9189, + 261,0,9188,261,0,9187,261,0,1278,423, + 0,8914 }; }; - public final static char baseAction[] = BaseAction.baseAction; + + public interface BaseAction1 { + public final static char baseAction1[] = { + 48,0,8913,48,0,9167,650,0,9166,650, + 0,848,650,0,923,650,0,957,650,0, + 9567,650,0,9272,650,0,9271,650,0,9194, + 650,0,9193,650,0,9192,650,0,9191,650, + 0,9190,650,0,9189,650,0,9188,650,0, + 9187,650,0,9167,275,0,9166,275,0,848, + 275,0,923,275,0,957,275,0,9567,275, + 0,9272,275,0,9271,275,0,9194,275,0, + 9193,275,0,9192,275,0,9191,275,0,9190, + 275,0,9189,275,0,9188,275,0,9187,275, + 0,9206,275,0,9205,275,0,9204,275,0, + 9203,275,0,9202,275,0,9201,275,0,9200, + 275,0,9199,275,0,9198,275,0,9197,275, + 0,9196,275,0,9566,275,0,9565,275,0, + 39,275,8914,0,39,275,8913,0,8937,275, + 0,1,957,0,1,923,0,1,848,0, + 1,366,0,38,826,0,38,8914,0,38, + 8913,0,490,1713,0,476,2079,0,1278,29, + 0,8911,1,0,957,660,0,923,660,0, + 848,660,0,664,660,0,664,659,0,8962, + 75,0,8961,75,0,1834,75,0,4804,75, + 0,4679,75,0,5589,75,0,2088,353,0, + 1,662,0,1,480,0,494,1348,0,493, + 1669,0,35,33,0,47,37,0,537,2602, + 0,8937,1,263,0,39,1,263,0,263, + 452,0,1,1563,0,1,9206,0,1,9205, + 0,1,9204,0,1,9203,0,1,9202,0, + 1,9201,0,1,9200,0,1,9199,0,1, + 9198,0,1,9197,0,1,9196,0,1,9566, + 0,1,9565,0,8914,37,0,8913,37,0, + 43,8935,0,43,37,0,3549,91,0,32, + 34,0,8907,1,0,39,826,0,957,662, + 0,923,662,0,848,662,0,8911,419,0, + 8910,419,0,957,366,0,923,366,0,848, + 366,0,1,1435,0,1,1486,0,263,254, + 0,8909,441,0,8908,441,0,263,451,0, + 1,5647,0,1,6698,0,1,6725,0,1, + 2208,0,1,2287,0,1,2366,0,1,2445, + 0,1,2524,0,1,2603,0,1,3323,0, + 1,4236,0,1,8921,0,1,8920,0,1, + 8919,0,1,8918,0,1,8917,0,1,8916, + 0,1,8915,0,1,1572,0,1,1833,0, + 1,1970,0,1,1996,0,1,2026,0,1, + 3520,0,39,1,0,8911,649,419,0,8910, + 649,419,0,1,263,3227,0,8908,263,0, + 3228,263,0,8905,1,0,8904,1,0,5514, + 126,0,271,4337,0,424,32,0,423,29, + 0,957,481,0,923,481,0,848,481,0, + 8937,481,0,366,481,0,39,481,0,848, + 570,0,923,570,0,957,570,0,848,571, + 0,923,571,0,957,571,0,848,572,0, + 923,572,0,957,572,0,848,573,0,923, + 573,0,957,573,0,848,574,0,923,574, + 0,957,574,0,275,8914,0,275,8913,0, + 8935,45,0,37,45,0,8911,638,419,0, + 8910,638,419,0,8911,636,419,0,8910,636, + 419,0,8911,87,419,0,8910,87,419,0, + 1,92,0,3415,263,0,10,12,0,8937, + 1,0,648,637,0,9567,371,0,9272,371, + 0,9271,371,0,6140,100,0,8,10,12, + 0,3571,227,0,5514,128,0,5514,127,0, + 8914,2,37,0,8913,2,37,0,8914,36, + 0,8913,36,0,957,657,0,923,657,0, + 848,657,0,957,656,0,923,656,0,848, + 656,0,600,601,0,6948,103,0,3838,99, + 0,957,95,0,923,95,0,848,95,0, + 8937,95,0,366,95,0,39,95,0,8911, + 649,638,419,0,649,638,0,35,73,0, + 957,657,658,0,923,657,658,0,848,657, + 658,0,657,658,0,313,6340,0,3622,419, + 0,218,6239,0,8,12,0 + }; + }; + + public final static char baseAction[] = new char[BaseAction0.baseAction0.length + BaseAction1.baseAction1.length]; + { + int index = 0; + System.arraycopy(BaseAction0.baseAction0, 0, baseAction, index, BaseAction0.baseAction0.length); + index += BaseAction0.baseAction0.length; + System.arraycopy(BaseAction1.baseAction1, 0, baseAction, index, BaseAction1.baseAction1.length); + }; public final int baseAction(int index) { return baseAction[index]; } public final static char lhs[] = baseAction; public final int lhs(int index) { return lhs[index]; }; @@ -1457,480 +1753,548 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 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,0,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 60,61,62,63,64,65,66,67,68,69, - 0,71,0,1,2,0,76,77,3,79, - 8,81,82,83,84,85,86,87,0,89, - 90,91,92,93,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,0, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,61,62,63,64,65, - 66,67,68,69,0,71,78,28,29,30, - 76,77,0,79,129,81,82,83,84,85, - 86,87,0,89,90,91,92,93,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,0,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,60,61, - 62,63,64,65,66,67,68,69,0,71, - 78,28,29,30,76,77,8,79,96,81, - 82,83,84,85,86,87,0,89,90,91, - 92,93,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,0,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,60,61,62,63,64,65,66,67, - 68,69,0,71,0,1,2,0,76,77, - 3,79,8,9,82,83,84,85,86,87, - 0,89,90,91,92,93,0,1,2,3, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,55,56,57,58,59, + 60,61,62,63,64,65,0,67,68,69, + 4,71,72,0,0,1,2,77,78,79, + 0,81,82,10,0,85,86,87,88,89, + 10,91,92,93,94,95,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,0,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,61,62,63, - 64,65,66,67,68,69,0,71,0,1, - 2,0,76,77,3,79,8,9,82,83, - 84,85,86,87,0,89,90,91,92,93, - 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,0,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 60,61,62,63,64,65,66,67,68,69, - 0,71,0,1,2,0,76,77,3,79, - 0,105,82,83,84,85,86,87,0,89, - 90,91,92,93,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,0, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,61,62,63,64,65, - 66,67,68,69,0,71,0,1,2,0, - 76,77,3,79,94,95,82,83,84,85, - 86,87,0,89,90,91,92,93,0,1, + 44,45,46,47,48,49,50,51,52,53, + 66,55,56,57,58,59,60,61,62,63, + 64,65,0,67,68,69,0,71,72,0, + 1,2,0,77,78,79,4,81,82,106, + 107,85,86,87,88,89,0,91,92,93, + 94,95,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,80,55,56,57, + 58,59,60,61,62,63,64,65,0,67, + 68,69,76,71,72,0,0,1,2,77, + 78,79,0,81,82,10,0,85,86,87, + 88,89,0,91,92,93,94,95,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,0,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,60,61, - 62,63,64,65,66,67,68,69,0,71, - 0,1,2,0,76,77,3,79,0,11, - 82,83,84,85,86,87,0,89,90,91, - 92,93,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,0,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,60,61,62,63,64,65,66,67, - 68,69,0,71,0,1,2,0,76,77, - 3,79,94,95,82,83,84,85,86,87, - 0,89,90,91,92,93,0,1,2,3, + 42,43,44,45,46,47,48,49,50,51, + 52,53,66,55,56,57,58,59,60,61, + 62,63,64,65,82,67,68,69,0,71, + 72,0,1,2,0,77,78,79,10,8, + 82,106,107,85,86,87,88,89,0,91, + 92,93,94,95,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,0,55, + 56,57,58,59,60,61,62,63,64,65, + 12,67,68,69,76,71,72,0,1,2, + 0,77,78,79,106,107,82,0,0,85, + 86,87,88,89,0,91,92,93,94,95, + 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,66,55,56,57,58,59, + 60,61,62,63,64,65,79,67,68,69, + 76,71,72,0,1,2,0,77,78,79, + 0,0,82,3,3,85,86,87,88,89, + 0,91,92,93,94,95,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,0,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,61,62,63, - 64,65,66,67,68,69,0,71,0,1, - 2,0,76,77,3,79,0,105,82,83, - 84,85,86,87,0,89,90,91,92,93, - 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,0,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 60,61,62,63,64,65,66,67,68,69, - 0,71,0,1,2,0,76,77,3,79, - 94,95,82,83,84,85,86,87,0,89, - 90,91,92,93,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,0, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,61,62,63,64,65, - 66,67,68,69,0,71,0,1,2,0, - 76,77,3,79,0,130,82,83,84,85, - 86,87,0,89,90,91,92,93,0,1, + 44,45,46,47,48,49,50,51,52,53, + 70,55,56,57,58,59,60,61,62,63, + 64,65,72,67,68,69,0,71,72,3, + 0,1,2,77,78,79,0,1,82,103, + 0,85,86,87,88,89,10,91,92,93, + 94,95,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,80,55,56,57, + 58,59,60,61,62,63,64,65,0,67, + 68,69,0,71,72,0,1,2,0,77, + 78,79,0,0,82,3,0,85,86,87, + 88,89,102,91,92,93,94,95,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,0,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,60,61, - 62,63,64,65,66,67,68,69,0,71, - 0,97,98,3,76,77,0,79,94,95, - 82,83,84,85,86,87,0,89,90,91, - 92,93,0,1,2,3,4,5,6,7, + 42,43,44,45,46,47,48,49,50,51, + 52,53,70,55,56,57,58,59,60,61, + 62,63,64,65,0,67,68,69,0,71, + 72,0,100,101,3,77,78,79,100,101, + 82,0,99,85,86,87,88,89,105,91, + 92,93,94,95,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,0,55, + 56,57,58,59,60,61,62,63,64,65, + 12,67,68,69,0,71,72,3,100,101, + 0,77,78,79,0,0,82,3,0,85, + 86,87,88,89,103,91,92,93,94,95, + 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,66,55,56,57,58,59, + 60,61,62,63,64,65,0,67,68,69, + 0,71,72,0,0,0,3,77,78,79, + 0,0,82,3,99,85,86,87,88,89, + 105,91,92,93,94,95,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, + 76,55,56,57,58,59,60,61,62,63, + 64,65,0,67,68,69,0,71,72,3, + 100,101,98,77,78,79,0,0,82,104, + 99,85,86,87,88,89,105,91,92,93, + 94,95,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,0,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,60,61,62,63,64,65,66,67, - 68,69,0,71,78,97,98,0,76,77, - 3,79,0,1,82,83,84,85,86,87, - 0,89,90,91,92,93,0,1,2,3, - 4,5,6,7,8,9,10,11,12,0, - 28,0,0,0,1,2,0,4,5,6, - 7,5,6,7,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,29,43, - 44,0,46,47,28,29,30,31,32,33, - 34,35,36,37,38,39,40,80,45,0, - 0,1,2,67,4,0,70,0,72,73, - 74,75,13,0,78,79,80,81,0,1, - 2,3,4,5,6,7,8,9,0,1, - 94,95,96,97,98,99,100,101,102,103, - 104,105,106,107,108,109,110,42,97,98, - 45,115,116,117,118,119,120,121,122,123, - 124,125,126,127,128,0,1,2,3,4, - 5,6,7,8,9,10,11,12,97,98, - 0,0,0,1,2,0,4,5,6,7, - 5,6,7,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,0,43,44, - 3,46,47,28,29,30,31,32,33,34, - 35,36,37,38,39,40,45,45,0,1, - 2,0,67,0,3,70,0,72,73,74, - 75,10,0,78,79,80,81,0,1,2, - 3,4,5,6,7,8,9,0,0,94, - 95,96,97,98,99,100,101,102,103,104, - 105,106,107,108,109,110,43,44,42,72, - 115,116,117,118,119,120,121,122,123,124, - 125,126,127,128,0,1,2,3,4,5, - 6,7,8,9,73,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,42,43,44,4, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,61,62,63,64,65, - 0,0,1,2,106,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,40,41,0,1, - 2,45,4,0,0,49,0,1,2,3, - 4,5,6,7,8,9,12,11,12,63, - 64,65,66,0,68,69,0,76,77,79, - 74,5,6,7,0,1,2,81,4,5, - 6,7,0,0,88,11,12,4,5,6, - 7,0,10,0,28,29,30,31,32,33, - 34,35,36,37,38,39,40,0,112,113, - 114,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,111,73,45,0,1,2, - 49,0,1,2,3,4,5,6,7,8, - 9,0,11,12,63,64,65,66,96,68, - 69,0,11,12,0,74,5,6,7,0, - 1,2,81,4,5,6,7,0,0,88, - 11,12,45,5,6,7,0,10,0,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,0,112,113,114,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,70,0, - 73,45,75,4,0,49,0,1,2,3, - 4,5,6,7,8,9,80,11,12,63, - 64,65,66,0,68,69,0,1,2,3, - 4,0,80,0,8,9,0,81,5,6, - 7,5,6,7,88,0,42,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 0,28,29,30,31,32,33,34,35,36, - 37,38,39,40,43,44,0,0,1,2, - 74,4,5,6,7,129,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,45,0,0,74,49,8,5,6,7, - 0,1,2,10,4,5,6,7,0,63, - 64,65,66,0,68,69,80,112,113,114, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,70,55,56,57, + 58,59,60,61,62,63,64,65,0,67, + 68,69,0,71,72,0,1,2,0,77, + 78,79,0,0,82,13,99,85,86,87, + 88,89,105,91,92,93,94,95,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,70,55,56,57,58,59,60,61, + 62,63,64,65,0,67,68,69,0,71, + 72,0,0,1,2,77,78,79,0,0, + 82,0,4,85,86,87,88,89,0,91, + 92,93,94,95,0,1,2,3,4,5, + 6,7,8,9,10,11,12,0,1,2, + 3,4,5,6,7,8,9,10,54,12, + 41,27,28,0,30,31,32,33,34,35, + 36,37,38,39,40,0,42,43,44,45, + 46,0,1,2,3,4,5,6,7,8, + 9,10,0,12,83,84,75,0,1,2, + 66,67,0,0,70,8,9,73,74,75, + 76,83,84,79,80,81,41,83,84,0, + 0,1,2,76,4,5,6,7,0,54, + 96,97,98,99,100,101,102,103,104,105, + 106,107,108,109,110,111,112,113,114,115, + 116,117,118,119,120,121,28,76,66,0, + 126,127,128,0,1,2,3,4,5,6, + 7,8,9,10,11,12,0,1,2,3, + 4,0,80,80,8,9,0,11,96,97, + 27,28,129,30,31,32,33,34,35,36, + 37,38,39,40,0,42,43,44,45,46, + 108,109,110,111,112,113,114,115,116,117, + 118,119,46,0,1,2,3,4,0,66, + 67,8,9,70,0,54,73,74,75,76, + 54,122,79,80,81,11,83,84,0,1, + 2,3,4,5,6,7,8,9,54,96, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,114,115,116, + 117,118,119,120,121,0,1,2,0,126, + 127,128,0,1,2,3,4,5,6,7, + 8,9,10,75,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,45,88,0,1,2,0,4, - 5,6,7,0,108,0,11,12,5,6, - 7,0,116,117,118,119,120,121,122,123, - 124,125,126,0,1,2,3,4,5,6, - 7,8,9,0,0,129,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, - 127,45,0,1,2,49,0,1,2,3, - 4,5,6,7,8,9,0,74,0,63, - 64,65,66,0,68,69,70,0,1,2, - 3,4,0,0,1,8,9,10,107,0, - 0,43,44,10,88,0,1,2,3,4, + 38,39,40,41,42,43,44,45,0,47, + 48,49,50,51,52,53,0,55,56,57, + 58,59,60,61,62,63,64,65,0,1, + 2,127,77,78,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,0,1,2, - 45,4,0,1,49,8,9,0,75,72, - 73,78,75,11,72,78,73,80,63,64, - 65,66,72,68,69,0,0,1,2,3, - 4,0,0,96,8,9,81,5,6,7, - 0,0,45,88,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,45, - 0,1,2,49,4,5,6,7,72,0, - 0,11,12,0,1,2,75,63,64,65, - 66,70,68,69,0,0,1,2,3,4, - 5,6,7,8,9,81,11,12,103,104, - 0,45,88,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,45,76, - 77,82,49,0,1,2,3,4,0,74, - 0,8,9,5,6,7,63,64,65,66, - 70,68,69,0,0,1,2,3,4,5, - 6,7,8,9,81,11,12,103,104,0, - 45,88,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, + 35,36,37,38,39,40,0,0,1,2, + 4,46,54,0,1,2,3,4,80,54, + 0,8,9,3,11,0,80,62,63,64, + 65,0,0,68,69,10,71,12,0,1, + 2,76,0,5,6,7,81,5,6,7, + 0,1,2,0,4,90,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,75,0,45,0,0, - 4,49,4,5,6,7,72,0,0,11, - 12,78,5,6,7,63,64,65,66,70, - 68,69,0,1,2,3,4,5,6,7, - 8,9,0,11,12,0,0,5,6,7, - 88,0,1,2,3,4,5,6,7,8, + 28,0,30,31,32,33,34,35,36,37, + 38,39,40,70,77,78,0,74,123,124, + 125,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,45,4,94,95, - 49,8,9,0,1,2,74,0,5,6, - 7,0,94,95,63,64,65,66,0,68, - 69,0,1,2,0,4,5,6,7,0, - 0,10,11,12,10,5,6,7,45,88, - 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,45,4,0,70,49, - 8,9,74,0,73,0,0,73,74,4, - 4,94,95,63,64,65,66,0,68,69, - 0,1,2,3,4,0,0,96,8,9, - 10,5,6,7,0,10,31,31,88,0, + 39,40,0,102,0,1,2,46,4,5, + 6,7,0,11,10,54,12,76,0,0, + 1,2,4,62,63,64,65,8,9,68, + 69,0,71,0,0,0,3,76,0,5, + 6,7,81,5,6,7,0,1,2,31, + 4,90,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,0,30,31, + 32,33,34,35,36,37,38,39,40,123, + 124,125,70,81,123,124,125,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,0, + 0,1,2,46,4,5,6,7,0,11, + 10,54,12,5,6,7,0,1,2,62, + 63,64,65,122,0,68,69,11,71,5, + 6,7,0,1,2,3,4,0,81,0, + 8,9,0,0,5,6,7,90,5,6, + 7,27,28,54,30,31,32,33,34,35, + 36,37,38,39,40,67,27,28,0,30, + 31,32,33,34,35,36,37,38,39,40, + 0,1,0,67,42,43,129,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,0, + 0,1,0,46,5,6,7,5,6,7, + 11,54,0,1,2,0,1,2,66,62, + 63,64,65,8,0,68,69,27,71,27, + 28,0,30,31,32,33,34,35,36,37, + 38,39,40,0,0,46,0,90,5,6, + 7,0,0,1,2,3,4,5,6,7, + 8,9,10,0,12,41,54,0,70,54, + 27,28,73,30,31,32,33,34,35,36, + 37,38,39,40,0,41,129,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,76,0, + 0,80,0,46,5,6,7,5,6,7, + 0,54,0,3,0,0,4,3,3,62, + 63,64,65,66,0,68,69,73,71,27, + 28,0,30,31,32,33,34,35,36,37, + 38,39,40,31,13,108,109,90,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, + 66,0,1,2,46,4,5,6,7,68, + 0,10,54,12,4,5,6,7,0,0, + 62,63,64,65,0,0,68,69,4,71, + 0,1,2,0,4,5,6,7,0,81, + 10,11,12,0,11,123,124,125,90,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,45,4,0,70,49,8, - 9,0,72,73,0,0,5,6,7,5, - 6,7,63,64,65,66,81,68,69,0, - 1,2,3,4,5,6,7,112,113,114, - 11,12,0,0,0,3,3,88,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,45,0,0,0,49,3,3, - 0,72,0,3,0,11,0,5,6,7, - 0,63,64,65,66,0,68,69,0,1, - 2,3,4,5,6,7,8,9,13,0, - 0,0,0,0,0,45,88,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,45, - 70,66,45,0,78,0,49,0,1,2, - 3,4,74,99,100,8,9,0,1,2, - 63,64,65,66,72,68,69,10,75,0, - 0,0,0,3,0,0,1,2,3,4, - 10,10,10,8,9,88,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,0,1,2,3,4,5,6, - 7,8,9,10,0,1,2,42,43,44, - 75,46,47,48,67,50,51,52,53,54, - 55,56,57,58,59,60,61,62,67,67, - 0,72,72,73,41,75,71,0,78,0, - 0,76,77,78,0,1,2,3,4,45, - 10,0,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,1,2,3,4,0,0,0, - 8,9,10,5,6,7,42,43,44,0, - 46,47,48,42,50,51,52,53,54,55, - 56,57,58,59,60,61,62,67,78,70, - 0,67,0,41,0,71,4,3,0,1, - 2,3,4,0,10,81,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,1,0,70, - 0,0,0,1,2,78,10,5,6,7, - 42,43,44,11,46,47,48,78,50,51, - 52,53,54,55,56,57,58,59,60,61, - 62,0,70,0,3,67,72,73,42,71, - 0,1,2,3,4,45,45,45,8,9, - 0,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,108,73, - 0,1,2,75,0,0,116,46,47,0, - 1,2,42,43,44,10,46,47,48,0, - 50,51,52,53,54,55,56,57,58,59, - 60,61,62,72,0,72,0,0,0,0, - 0,71,5,6,7,45,76,77,0,1, - 2,3,4,0,45,75,8,9,78,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,115,0,73,75, - 75,0,5,6,7,0,5,6,7,128, - 42,43,44,74,46,47,48,0,50,51, - 52,53,54,55,56,57,58,59,60,61, - 62,0,74,74,0,96,0,0,0,71, - 3,0,11,70,76,77,0,1,2,3, - 4,78,96,0,8,9,3,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,101,102,42,0,0,45, - 75,3,109,110,0,0,0,10,42,43, - 44,74,46,47,48,0,50,51,52,53, - 54,55,56,57,58,59,60,61,62,72, - 74,70,0,75,0,3,0,71,41,0, - 0,0,76,77,0,1,2,3,4,13, - 99,100,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,0,0,70,70,5,6,7, - 0,45,10,10,10,49,42,43,44,74, - 46,47,48,0,50,51,52,53,54,55, - 56,57,58,59,60,61,62,0,74,70, - 0,67,0,41,41,71,0,1,2,3, - 4,11,10,0,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,0,0,75,75,75, - 70,0,111,0,10,81,10,12,42,43, - 44,10,46,47,48,0,50,51,52,53, - 54,55,56,57,58,59,60,61,62,0, - 1,2,3,4,0,73,0,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,0,0,99, - 100,0,0,67,107,4,4,73,10,75, - 0,42,43,44,73,46,47,48,75,50, - 51,52,53,54,55,56,57,58,59,60, - 61,62,0,127,0,80,67,0,1,2, - 3,4,10,0,10,8,9,4,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,67,0,0,0,72, - 0,70,70,41,4,0,10,10,3,42, - 43,44,106,46,47,48,0,50,51,52, - 53,54,55,56,57,58,59,60,61,62, - 0,67,0,1,2,3,4,0,0,72, - 8,9,0,11,12,13,14,15,16,17, + 66,66,0,1,2,46,4,5,6,7, + 75,83,84,54,74,62,0,74,0,76, + 4,62,63,64,65,0,0,68,69,0, + 71,96,97,4,5,6,7,0,98,10, + 81,12,5,6,7,27,28,0,30,90, + 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,66,66,0,1,2,46,4,5,6, + 7,0,76,10,54,12,5,6,7,0, + 0,0,62,63,64,65,0,0,68,69, + 73,71,5,6,7,0,0,11,0,1, + 2,81,4,5,6,7,27,28,0,30, + 90,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,54,66,73,0,0,46,3,0, + 74,5,6,7,0,54,0,3,73,83, + 84,0,0,62,63,64,65,0,98,68, + 69,4,71,27,28,0,30,31,32,33, + 34,35,36,37,38,39,40,0,1,2, + 104,90,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, - 0,0,0,0,67,0,0,0,3,3, - 10,10,10,10,42,43,44,81,46,47, - 48,0,50,51,52,53,54,55,56,57, - 58,59,60,61,62,0,0,1,2,3, - 4,41,41,71,8,9,0,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,0,96,0,0,0, - 0,3,0,3,10,73,73,10,42,43, - 44,74,46,47,48,0,50,51,52,53, - 54,55,56,57,58,59,60,61,62,0, - 0,1,2,3,4,70,0,71,8,9, - 0,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,0, - 0,0,0,3,3,0,0,0,3,74, - 73,0,42,43,44,81,46,47,48,80, - 50,51,52,53,54,55,56,57,58,59, - 60,61,62,0,1,2,3,4,0,0, - 0,8,9,74,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,0,0,0,0,0,111,3,0,0, - 0,72,3,3,0,42,43,44,80,46, - 47,48,80,50,51,52,53,54,55,56, - 57,58,59,60,61,62,0,1,2,3, - 4,0,0,0,8,9,0,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,0,0,0,0,0, - 0,0,0,71,0,0,0,0,42,43, - 44,80,46,47,48,80,50,51,52,53, - 54,55,56,57,58,59,60,61,62,0, - 1,2,3,4,0,0,0,8,9,0, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,0,0,0, - 0,0,0,0,0,70,0,0,0,0, - 0,42,43,44,80,46,47,48,0,50, - 51,52,53,54,55,56,57,58,59,60, - 61,62,0,1,2,3,4,0,0,0, - 8,9,45,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,42,43,44,0,46,47, - 48,80,50,51,52,53,54,55,56,57, - 58,59,60,61,62,0,1,2,3,4, - 0,0,0,8,9,45,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,0,0,0,49,0,0,111, - 0,0,0,0,0,0,0,42,43,44, - 0,46,47,48,0,50,51,52,53,54, - 55,56,57,58,59,60,61,62,0,1, - 2,3,4,0,0,0,8,9,0,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,0,0,3, - 0,0,0,0,8,0,0,11,12,0, - 42,43,44,13,46,47,48,0,50,51, - 52,53,54,55,56,57,58,59,60,61, - 62,0,0,0,0,0,0,0,0,43, - 44,0,46,47,48,45,0,0,70,49, - 0,0,0,0,0,0,78,0,0,0, - 0,0,0,0,0,0,70,0,72,0, - 0,75,76,77,78,0,80,0,0,101, - 102,0,0,0,0,0,0,109,110,0, - 94,95,0,97,0,99,100,101,102,103, - 104,105,106,107,108,0,0,0,0,0, - 0,115,0,117,118,119,120,121,122,123, - 124,125,126,0,1,2,0,4,5,6, - 7,0,0,0,0,0,13,14,15,16, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,66,73,73,75,0,46,83, + 84,54,5,6,7,0,54,0,3,0, + 0,0,1,0,62,63,64,65,83,84, + 68,69,11,71,27,28,0,30,31,32, + 33,34,35,36,37,38,39,40,0,1, + 2,0,90,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,0,0,0,0,0, - 0,0,49,0,0,0,0,1,2,0, - 4,5,6,7,0,0,63,64,65,13, + 37,38,39,40,75,74,73,0,0,46, + 83,84,54,5,6,7,0,54,0,0, + 0,5,6,7,0,62,63,64,65,83, + 84,68,69,103,71,27,28,0,30,31, + 32,33,34,35,36,37,38,39,40,42, + 43,0,0,90,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,75,0,73,0,0, + 46,5,6,7,5,6,7,0,54,0, + 3,0,0,0,3,0,62,63,64,65, + 83,84,68,69,11,71,27,28,0,30, + 31,32,33,34,35,36,37,38,39,40, + 42,43,0,0,90,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,74,73,80, + 75,46,0,1,2,3,4,11,0,54, + 8,9,0,75,0,3,0,62,63,64, + 65,98,0,68,69,11,71,108,109,110, + 111,112,113,114,115,116,117,118,119,0, + 1,2,46,0,0,90,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,0,0, - 0,0,0,0,0,49,0,1,2,3, - 4,5,6,7,8,9,10,11,12,63, - 64,65,0,0,0,0,0,0,0,0, - 0,0,0,0,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,0,0, + 34,35,36,37,38,39,40,73,74,0, + 0,75,46,54,0,0,1,2,3,4, + 54,11,8,8,9,83,84,0,62,63, + 64,65,104,0,68,69,0,71,5,6, + 7,5,6,7,80,0,1,2,3,4, + 0,0,0,8,9,10,90,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,0,0,29,0,1,2,3,4, + 5,6,7,8,9,70,41,42,43,44, + 45,81,47,48,49,50,51,52,53,0, + 55,56,57,58,59,60,61,0,1,2, + 3,4,5,6,7,8,9,72,0,0, + 75,3,77,78,0,1,2,3,4,11, + 11,80,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,76,0,29,0,1,2,3,4,5, + 6,7,8,9,0,41,42,43,44,45, + 98,47,48,49,50,51,52,53,0,55, + 56,57,58,59,60,61,67,0,70,0, + 12,67,74,0,0,0,1,2,3,4, + 13,77,78,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,0,0,29,0,1,2,76,4, + 76,0,0,8,9,4,41,42,43,44, + 45,54,47,48,49,50,51,52,53,62, + 55,56,57,58,59,60,61,0,1,2, + 66,4,67,0,0,8,9,72,75,0, + 1,2,3,4,11,11,81,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,73,66,29,0, + 1,2,3,4,5,6,7,8,9,46, + 41,42,43,44,45,0,47,48,49,50, + 51,52,53,0,55,56,57,58,59,60, + 61,67,0,0,11,103,67,5,6,7, + 0,72,0,1,2,3,4,0,0,0, + 8,9,10,0,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,46, + 0,29,0,1,2,0,4,5,6,7, + 5,6,7,41,42,43,44,45,73,47, + 48,49,50,51,52,53,73,55,56,57, + 58,59,60,61,0,0,1,2,3,4, + 5,6,7,0,72,10,0,12,70,77, + 78,0,1,2,3,4,54,11,75,8, + 9,10,0,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,0,102, + 29,0,1,2,41,122,5,6,7,11, + 0,10,41,42,43,44,45,54,47,48, + 49,50,51,52,53,70,55,56,57,58, + 59,60,61,0,1,2,54,4,0,73, + 74,8,9,72,46,0,1,0,77,78, + 0,1,2,3,4,54,11,0,8,9, + 10,0,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,0,0,29, + 0,1,2,0,4,0,41,54,8,9, + 0,41,42,43,44,45,0,47,48,49, + 50,51,52,53,66,55,56,57,58,59, + 60,61,0,1,2,0,1,2,0,74, + 0,0,72,5,6,7,0,77,78,0, + 1,2,3,4,54,0,0,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,66,80,29,76, + 0,76,66,3,0,0,54,3,3,54, + 41,42,43,44,45,11,47,48,49,50, + 51,52,53,122,55,56,57,58,59,60, + 61,70,96,97,0,0,67,0,3,0, + 3,72,0,1,2,3,4,13,11,0, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,0, + 70,29,3,73,70,75,0,73,74,75, + 0,1,2,41,42,43,44,45,54,47, + 48,49,50,51,52,53,62,55,56,57, + 58,59,60,61,0,1,2,3,4,70, + 0,74,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,0,0,29,54,0,5,6,7,0, + 5,6,7,11,0,41,42,43,44,45, + 0,47,48,49,50,51,52,53,0,55, + 56,57,58,59,60,61,0,0,0,127, + 0,67,0,1,2,3,4,11,11,130, + 8,9,10,0,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,0, + 0,29,0,0,0,73,74,3,98,0, + 66,11,46,41,42,43,44,45,0,47, + 48,49,50,51,52,53,76,55,56,57, + 58,59,60,61,67,0,1,2,3,4, + 96,97,70,8,9,10,76,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,104,0,29,66,83,84,66,0, + 102,0,3,73,11,66,41,42,43,44, + 45,81,47,48,49,50,51,52,53,0, + 55,56,57,58,59,60,61,0,80,0, + 0,1,2,3,4,0,0,72,8,9, + 10,12,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,0,0,29, + 0,0,0,3,3,0,0,74,11,11, + 0,41,42,43,44,45,11,47,48,49, + 50,51,52,53,0,55,56,57,58,59, + 60,61,0,66,0,0,1,2,3,4, + 0,0,72,8,9,10,0,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,0,0,29,67,0,0,0,3, + 0,74,67,11,11,0,41,42,43,44, + 45,0,47,48,49,50,51,52,53,0, + 55,56,57,58,59,60,61,0,0,0, + 0,1,2,3,4,0,0,72,8,9, + 10,0,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,0,0,29, + 67,0,0,0,3,0,74,0,11,11, + 3,41,42,43,44,45,76,47,48,49, + 50,51,52,53,0,55,56,57,58,59, + 60,61,0,0,0,0,1,2,3,4, + 0,0,72,8,9,10,0,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,0,0,29,0,3,0,3,0, + 0,74,74,11,0,0,41,42,43,44, + 45,76,47,48,49,50,51,52,53,0, + 55,56,57,58,59,60,61,0,1,2, + 3,4,0,0,80,8,9,10,0,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,83,84,29,0,54,0, + 0,0,0,0,0,0,0,0,41,42, + 43,44,45,81,47,48,49,50,51,52, + 53,0,55,56,57,58,59,60,61,0, + 1,2,3,4,0,0,0,8,9,10, + 0,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,0,0,29,0, + 0,0,0,0,0,0,0,0,0,0, + 41,42,43,44,45,0,47,48,49,50, + 51,52,53,0,55,56,57,58,59,60, + 61,0,1,2,3,4,0,0,0,8, + 9,10,0,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,0,0, + 29,0,0,0,0,0,0,0,0,0, + 0,0,41,42,43,44,45,0,47,48, + 49,50,51,52,53,0,55,56,57,58, + 59,60,61,0,1,2,3,4,0,0, + 0,8,9,10,0,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 0,0,29,0,0,0,0,0,0,0, + 0,0,0,0,41,42,43,44,45,0, + 47,48,49,50,51,52,53,0,55,56, + 57,58,59,60,61,0,1,2,3,4, + 0,0,0,8,9,10,0,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,0,0,29,0,0,0,0,0, + 0,0,0,0,0,0,41,42,43,44, + 45,0,47,48,49,50,51,52,53,0, + 55,56,57,58,59,60,61,0,1,2, + 3,4,0,0,0,8,9,10,0,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,0,0,29,0,0,0, + 0,0,0,0,0,0,0,0,41,42, + 43,44,45,0,47,48,49,50,51,52, + 53,0,55,56,57,58,59,60,61,0, + 1,2,3,4,0,0,0,8,9,10, + 0,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,0,0,29,0, + 0,0,0,0,0,0,0,0,0,0, + 41,42,43,44,45,0,47,48,49,50, + 51,52,53,0,55,56,57,58,59,60, + 61,0,1,2,3,4,0,0,0,8, + 9,10,0,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,0,0, + 29,3,0,0,0,0,8,0,10,0, + 12,0,41,42,43,44,45,0,47,48, + 49,50,51,52,53,0,55,56,57,58, + 59,60,61,0,0,0,0,0,0,0, + 42,43,44,45,0,47,0,0,0,1, + 2,3,4,5,6,7,8,9,10,0, + 12,0,0,0,66,0,0,0,70,0, + 0,73,0,75,0,77,78,0,80,0, + 0,83,84,0,0,0,0,0,0,0, + 0,0,0,0,96,97,0,99,100,101, + 102,103,104,0,106,107,108,0,110,111, + 112,113,114,115,116,117,118,119,70,0, + 0,0,1,2,126,4,5,6,7,0, + 0,0,0,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,0,0,0,0,0,0,0, + 0,0,0,0,0,1,2,0,4,5, + 6,7,0,62,63,64,65,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,0,0, + 0,0,0,0,0,0,0,0,1,2, + 0,0,5,6,7,0,62,63,64,65, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,0,30,31,32, + 33,34,35,36,37,38,39,40,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,1,2,0,0,5,6,7,0,62, + 63,64,65,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,0, + 30,31,32,33,34,35,36,37,38,39, + 40,0,1,2,3,4,5,6,7,8, + 9,10,11,12,0,0,0,0,0,0, + 0,0,62,63,64,65,0,0,27,28, + 0,30,31,32,33,34,35,36,37,38, + 39,40,0,0,0,0,0,46,0,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,0,0,0,0,0,66,0,0, + 0,70,0,0,0,74,27,28,0,30, + 31,32,33,34,35,36,37,38,39,40, + 0,0,0,0,0,46,0,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 0,66,0,0,0,0,67,0,0,70, + 75,0,0,74,27,28,0,30,31,32, + 33,34,35,36,37,38,39,40,0,0, + 0,96,97,46,0,0,1,2,3,4, + 5,6,7,8,9,10,11,12,0,66, + 0,0,0,0,0,120,121,70,75,0, + 0,74,27,28,0,30,31,32,33,34, + 35,36,37,38,39,40,0,0,0,96, + 97,46,0,0,1,2,3,4,5,6, + 7,0,0,10,0,12,0,0,0,0, + 0,0,0,120,121,70,0,0,0,74, + 27,28,0,30,31,32,33,34,35,36, + 37,38,39,40,0,0,0,0,0,0, 0,0,0,1,2,3,4,5,6,7, - 8,9,10,11,12,0,0,0,0,0, - 0,0,0,0,0,0,70,0,72,73, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,0,0,0,0,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,0,0,0,0,0,0,0,0,67, - 0,0,0,0,72,73,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 0,0,0,0,0,1,2,3,4,5, - 6,7,8,9,10,11,12,0,0,0, + 0,0,10,0,12,0,0,1,2,3, + 4,0,0,70,8,9,73,11,75,27, + 28,0,30,31,32,33,34,35,36,37, + 38,39,40,0,1,2,3,4,5,6, + 7,8,9,10,0,12,0,1,2,3, + 4,5,6,7,8,9,10,0,12,0, + 3,0,70,0,0,73,0,75,0,66, + 0,0,0,0,0,0,70,0,75,73, + 74,75,0,0,0,0,80,0,1,2, + 3,4,5,6,7,8,9,0,11,96, + 97,44,45,0,98,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 72,73,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,0,70,0,0, - 0,0,0,0,0,78,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,72,73,101,102, - 0,0,0,0,0,0,109,110,0,0, + 0,0,0,120,121,0,0,70,0,0, + 0,0,0,46,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,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,128,0,0,0,0, + 0,0,0,0,0,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 char termCheck[] = TermCheck.termCheck; @@ -1938,479 +2302,549 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface TermAction { public final static char termAction[] = {0, - 7423,7210,6545,6545,6545,6538,6545,6545,6545,6545, - 7286,6545,6545,1,1,1,1,1,1,1, + 8899,8635,7901,7901,7901,7894,7901,7901,7901,7901, + 7901,8765,7901,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,7214,1,1,1,7423,1,1,1,1, + 1,1,1,1,1,1,8639,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,2062,7434,650,7598, - 1,1,7423,7437,7438,7423,1,1,1748,2867, - 2209,7430,3303,2471,2283,2420,3173,4140,7423,3301, - 705,3245,3036,3234,10,7289,7289,7289,7289,7289, - 7289,7289,7289,7289,7289,7289,7289,7289,7289,7289, - 7289,7289,7289,7289,7289,7289,7289,7289,7289,7289, - 7289,7289,7289,7289,7289,7289,7289,7289,7289,7289, - 7289,7289,7289,7289,7289,7289,7289,7289,7289,338, - 7289,7289,7289,7289,7289,7289,7289,7289,7289,7289, - 7289,7289,7289,7289,7289,7289,7289,7289,7289,7289, - 7289,7289,7289,7289,387,7289,6063,7307,7304,7301, - 7289,7289,360,7289,6537,7289,7289,7289,7289,7289, - 7289,7289,7423,7289,7289,7289,7289,7289,8,7319, - 7319,7319,7319,7319,7319,7319,7319,7319,7319,7319, - 7319,7319,7319,7319,7319,7319,7319,7319,7319,7319, - 7319,7319,7319,7319,7319,7319,7319,7319,7319,7319, - 7319,7319,7319,7319,7319,7319,7319,7319,7319,7319, - 7319,7319,7319,338,7319,7319,7319,7319,7319,7319, - 7319,7319,7319,7319,7319,7319,7319,7319,7319,7319, - 7319,7319,7319,7319,7319,7319,7319,7319,7423,7319, - 7938,7762,7763,8033,7319,7319,2209,7319,7782,7319, - 7319,7319,7319,7319,7319,7319,7423,7319,7319,7319, - 7319,7319,7423,7210,6545,6545,6545,6538,6545,6545, - 6545,6545,7217,6545,6545,1,1,1,1,1, + 1,1,1,1,1,1,39,8910,1709,836, + 8937,9107,1,115,8899,8194,8191,1,1,1179, + 8899,8906,3237,2129,423,2835,2653,2787,3225,5703, + 7630,3234,1507,3232,4791,3229,10,8768,8768,8768, + 8768,8768,8768,8768,8768,8768,8768,8768,8768,8768, + 8768,8768,8768,8768,8768,8768,8768,8768,8768,8768, + 8768,8768,8768,8768,8768,8768,8768,8768,8768,8768, + 8768,8768,8768,8768,8768,8768,8768,8768,8768,8768, + 8768,8768,8768,8768,8768,8768,8768,8768,8768,8768, + 8188,8768,8768,8768,8768,8768,8768,8768,8768,8768, + 8768,8768,420,8768,8768,8768,35,8768,8768,8899, + 8913,8914,8899,8768,8768,8768,1764,8768,8768,2050, + 1971,8768,8768,8768,8768,8768,484,8768,8768,8768, + 8768,8768,8,8789,8789,8789,8789,8789,8789,8789, + 8789,8789,8789,8789,8789,8789,8789,8789,8789,8789, + 8789,8789,8789,8789,8789,8789,8789,8789,8789,8789, + 8789,8789,8789,8789,8789,8789,8789,8789,8789,8789, + 8789,8789,8789,8789,8789,8789,8789,8789,8789,8789, + 8789,8789,8789,8789,8789,8789,1847,8789,8789,8789, + 8789,8789,8789,8789,8789,8789,8789,8789,8899,8789, + 8789,8789,1240,8789,8789,117,8899,12843,12189,8789, + 8789,8789,227,8789,8789,2129,490,8789,8789,8789, + 8789,8789,8899,8789,8789,8789,8789,8789,8899,8635, + 7901,7901,7901,7894,7901,7901,7901,7901,7901,8642, + 7901,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,7214,1,1,1,7423,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2062,7434, - 650,7598,7423,1,38,7005,7002,7423,1,1, - 1098,2867,6999,3945,3303,2471,2283,2420,3173,4140, - 7423,3301,705,3245,3036,3234,7423,7210,6545,6545, - 6545,6538,6545,6545,6545,6545,7217,6545,6545,1, + 1,1,1,1,8639,1,1,1,1,1, + 1,1,8364,1,1,1,1,1,1,1, + 1,1,1,1,8793,8910,1709,836,116,9107, + 1,8899,8913,8914,8899,1,1,1179,2129,1704, + 3237,2050,1971,2835,2653,2787,3225,5703,8899,3234, + 1507,3232,4791,3229,8899,8635,7901,7901,7901,7894, + 7901,7901,7901,7901,7901,8642,7901,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,7214,1,1, - 1,7423,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2062,7434,650,7598,133,1,7423,7437, - 7438,7423,1,1,3860,2867,723,3945,3303,2471, - 2283,2420,3173,4140,7423,3301,705,3245,3036,3234, - 7423,7210,6545,6545,6545,6538,6545,6545,6545,6545, - 7217,6545,6545,1,1,1,1,1,1,1, + 8639,1,1,1,1,1,1,1,151,1, + 1,1,1,1,1,1,1,1,1,1, + 4638,8910,1709,836,9336,9107,1,48,8194,8191, + 8899,1,1,1179,2050,1971,3237,1,476,2835, + 2653,2787,3225,5703,464,3234,1507,3232,4791,3229, + 8899,8635,7901,7901,7901,7894,7901,7901,7901,7901, + 7901,8642,7901,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,7214,1,1,1,7423,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,2062,7434,650,7598, - 7423,1,7423,6838,6835,7423,1,1,1296,2867, - 121,3119,3303,2471,2283,2420,3173,4140,7423,3301, - 705,3245,3036,3234,7423,7210,6545,6545,6545,6538, - 6545,6545,6545,6545,7217,6545,6545,1,1,1, + 1,1,1,1,1,1,8639,1,1,1, + 1,1,1,1,8367,1,1,1,1,1, + 1,1,1,1,1,1,1440,8910,1709,836, + 1485,9107,1,433,8913,8914,155,1,1,1179, + 353,8899,3237,8409,1008,2835,2653,2787,3225,5703, + 594,3234,1507,3232,4791,3229,8899,8635,7901,7901, + 7901,7894,7901,7901,7901,7901,7901,8642,7901,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,7214,1,1,1,7423, + 1,1,1,1,1,1,1,1,1,1, + 1,1,8639,1,1,1,1,1,1,1, + 1677,1,1,1,1,1,1,1,1,1, + 1,1,3623,8910,1709,836,346,9107,1,1491, + 8899,12843,12189,1,1,1179,8899,3469,3237,4387, + 153,2835,2653,2787,3225,5703,3189,3234,1507,3232, + 4791,3229,8899,8635,7901,7901,7901,7894,7901,7901, + 7901,7901,7901,8642,7901,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 2062,7434,650,7598,7423,1,7423,7437,7438,7423, - 1,1,1981,2867,4012,4085,3303,2471,2283,2420, - 3173,4140,7423,3301,705,3245,3036,3234,7423,7210, - 6545,6545,6545,6538,6545,6545,6545,6545,7217,6545, - 6545,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,7214, - 1,1,1,7423,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2062,7434,650,7598,7423,1, - 7423,11680,11679,7423,1,1,3555,2867,582,5823, - 3303,2471,2283,2420,3173,4140,7423,3301,705,3245, - 3036,3234,7423,7210,6545,6545,6545,6538,6545,6545, - 6545,6545,7217,6545,6545,1,1,1,1,1, + 1,1,1,1,1,1,1,1,8639,1, + 1,1,1,1,1,1,1352,1,1,1, + 1,1,1,1,1,1,1,1,8899,8910, + 1709,836,149,9107,1,327,8913,8914,129,1, + 1,1179,382,111,3237,2391,8899,2835,2653,2787, + 3225,5703,4499,3234,1507,3232,4791,3229,8899,8635, + 7901,7901,7901,7894,7901,7901,7901,7901,7901,8642, + 7901,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,7214,1,1,1,7423,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2062,7434, - 650,7598,134,1,48,6838,6835,7423,1,1, - 1349,2867,4012,4085,3303,2471,2283,2420,3173,4140, - 7423,3301,705,3245,3036,3234,7423,7210,6545,6545, - 6545,6538,6545,6545,6545,6545,7217,6545,6545,1, + 1,1,1,1,8639,1,1,1,1,1, + 1,1,1677,1,1,1,1,1,1,1, + 1,1,1,1,8899,8910,1709,836,150,9107, + 1,8899,4923,4856,846,1,1,1179,4414,4292, + 3237,135,6626,2835,2653,2787,3225,5703,6652,3234, + 1507,3232,4791,3229,8899,8635,7901,7901,7901,7894, + 7901,7901,7901,7901,7901,8642,7901,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,7214,1,1, - 1,7423,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2062,7434,650,7598,7423,1,400,7437, - 7438,574,1,1,2117,2867,581,3119,3303,2471, - 2283,2420,3173,4140,7423,3301,705,3245,3036,3234, - 7423,7210,6545,6545,6545,6538,6545,6545,6545,6545, - 7217,6545,6545,1,1,1,1,1,1,1, + 8639,1,1,1,1,1,1,1,131,1, + 1,1,1,1,1,1,1,1,1,1, + 4717,8910,1709,836,8899,9107,1,1431,4923,4856, + 8899,1,1,1179,8899,114,3237,1379,29,2835, + 2653,2787,3225,5703,4458,3234,1507,3232,4791,3229, + 8899,8635,7901,7901,7901,7894,7901,7901,7901,7901, + 7901,8642,7901,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,7214,1,1,1,185,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,2062,7434,650,7598, - 7423,1,7423,11680,11679,561,1,1,2522,2867, - 4012,4085,3303,2471,2283,2420,3173,4140,7423,3301, - 705,3245,3036,3234,7423,7210,6545,6545,6545,6538, - 6545,6545,6545,6545,7217,6545,6545,1,1,1, + 1,1,1,1,1,1,8639,1,1,1, + 1,1,1,1,8370,1,1,1,1,1, + 1,1,1,1,1,1,8899,8910,1709,836, + 130,9107,1,8899,8899,157,2088,1,1,1179, + 8899,113,3237,5838,6626,2835,2653,2787,3225,5703, + 6652,3234,1507,3232,4791,3229,8899,8635,7901,7901, + 7901,7894,7901,7901,7901,7901,7901,8642,7901,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,7214,1,1,1,7423, + 1,1,1,1,1,1,1,1,1,1, + 1,1,8639,1,1,1,1,1,1,1, + 5971,1,1,1,1,1,1,1,1,1, + 1,1,8899,8910,1709,836,8899,9107,1,4337, + 4414,4292,3791,1,1,1179,355,112,3237,4265, + 6626,2835,2653,2787,3225,5703,6652,3234,1507,3232, + 4791,3229,8899,8635,7901,7901,7901,7894,7901,7901, + 7901,7901,7901,8642,7901,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 2062,7434,650,7598,111,1,294,7437,7438,91, - 1,1,7145,2867,125,7417,3303,2471,2283,2420, - 3173,4140,7423,3301,705,3245,3036,3234,7423,7210, - 6545,6545,6545,6538,6545,6545,6545,6545,7217,6545, - 6545,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,7214, - 1,1,1,7423,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2062,7434,650,7598,114,1, - 548,5471,5494,1292,1,1,7423,2867,4012,4085, - 3303,2471,2283,2420,3173,4140,7423,3301,705,3245, - 3036,3234,7423,7210,6545,6545,6545,6538,6545,6545, - 6545,6545,7217,6545,6545,1,1,1,1,1, + 1,1,1,1,1,1,1,1,8639,1, + 1,1,1,1,1,1,1677,1,1,1, + 1,1,1,1,1,1,1,1,8899,8910, + 1709,836,337,9107,1,36,8813,8810,8899,1, + 1,1179,494,8899,3237,9235,6626,2835,2653,2787, + 3225,5703,6652,3234,1507,3232,4791,3229,8899,8635, + 7901,7901,7901,7894,7901,7901,7901,7901,7901,8642, + 7901,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,7214,1,1,1,7423,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2062,7434, - 650,7598,7423,1,3360,5471,5494,313,1,1, - 923,2867,550,7974,3303,2471,2283,2420,3173,4140, - 7423,3301,705,3245,3036,3234,7423,7068,7068,7068, - 7068,7068,7068,7068,7068,7068,7068,7068,7068,568, - 7975,113,7423,397,6730,6730,225,285,6721,6727, - 6724,6637,6631,6634,7068,7068,7068,7068,7068,7068, - 7068,7068,7068,7068,7068,7068,7068,7068,7990,7068, - 7068,112,7068,7068,6646,6643,6640,6652,6670,6649, - 6661,6628,6655,6658,6667,6664,6625,1223,285,304, - 7423,6551,6548,7068,7461,7423,7068,7423,7068,7068, - 7068,7068,7726,7423,7068,7068,7068,7068,333,6551, - 6548,1278,751,884,824,841,723,3945,7423,3729, - 7068,7068,7068,7068,7068,7068,7068,7068,7068,7068, - 7068,7068,7068,7068,7068,7068,7068,1032,5471,5494, - 6024,7068,7068,7068,7068,7068,7068,7068,7068,7068, - 7068,7068,7068,7068,7068,7423,7148,7148,7148,7148, - 7148,7148,7148,7148,7148,7148,7148,7148,5471,5494, - 7423,7423,602,7029,7029,226,606,7020,7026,7023, - 6685,6679,6682,7148,7148,7148,7148,7148,7148,7148, - 7148,7148,7148,7148,7148,7148,7148,320,7148,7148, - 7053,7148,7148,6694,6691,6688,6700,6718,6697,6709, - 6676,6703,6706,6715,6712,6673,1212,606,36,7337, - 7334,7423,7148,118,2746,7148,573,7148,7148,7148, - 7148,7429,7423,7148,7148,7148,7148,1,6564,6560, - 1278,6557,6987,6993,6990,723,3945,7423,135,7148, - 7148,7148,7148,7148,7148,7148,7148,7148,7148,7148, - 7148,7148,7148,7148,7148,7148,5014,4984,1935,1643, - 7148,7148,7148,7148,7148,7148,7148,7148,7148,7148, - 7148,7148,7148,7148,39,6551,6548,6252,751,884, - 824,841,5425,3945,7428,5329,5352,1867,8031,8032, - 7689,7687,7696,7695,7691,7692,7690,7693,7694,7697, - 7688,5781,7762,7763,8033,7684,7678,7685,7681,7657, - 7683,7682,7679,7680,7658,39,7442,5235,4950,7461, - 5402,5375,3090,7824,1400,1567,7444,1485,5606,1534, - 7445,7443,1389,7439,7440,7441,5584,3595,7825,7826, - 1,7423,7437,7438,682,1688,7423,7081,7081,230, - 7077,6545,6545,6545,230,230,7085,230,230,1, + 1,1,1,1,8639,1,1,1,1,1, + 1,1,8418,1,1,1,1,1,1,1, + 1,1,1,1,8899,8910,1709,836,8899,9107, + 1,141,326,1660,1660,1,1,1179,8899,631, + 3237,8899,1769,2835,2653,2787,3225,5703,121,3234, + 1507,3232,4791,3229,8899,8424,8424,8424,8424,8424, + 8424,8424,8424,8424,8424,8424,8424,8899,7920,7916, + 4619,7913,8343,8349,8346,826,1156,8352,1177,8352, + 2394,8424,8424,8899,8424,8424,8424,8424,8424,8424, + 8424,8424,8424,8424,8424,8899,8424,8424,8424,8424, + 8424,8899,7920,7916,4619,7913,8343,8349,8346,826, + 1156,8412,146,8412,879,958,7131,38,8361,8358, + 8424,8424,159,328,8424,8355,1156,8424,8424,8424, + 8424,879,958,8424,8424,8424,2845,8424,8424,583, + 323,8137,8137,3589,318,957,848,923,626,7110, + 8424,8424,8424,8424,8424,8424,8424,8424,8424,8424, + 8424,8424,8424,8424,8424,8424,8424,8424,8424,8424, + 8424,8424,8424,8424,8424,8424,9524,3589,5276,8899, + 8424,8424,8424,8899,8501,8501,8501,8501,8501,8501, + 8501,8501,8501,8501,8501,8501,1,7920,7916,7910, + 7913,8899,2574,3636,7927,7924,8899,8909,5199,4526, + 8501,8501,7893,8501,8501,8501,8501,8501,8501,8501, + 8501,8501,8501,8501,47,8501,8501,8501,8501,8501, + 760,5903,2495,2416,2337,2258,2179,2100,2021,1942, + 1863,1784,8908,1,7920,7916,7910,7913,8899,8501, + 8501,7927,7924,8501,8899,7026,8501,8501,8501,8501, + 7047,1,8501,8501,8501,8903,8501,8501,366,7907, + 7904,4619,1813,957,848,923,826,1156,909,8501, + 8501,8501,8501,8501,8501,8501,8501,8501,8501,8501, + 8501,8501,8501,8501,8501,8501,8501,8501,8501,8501, + 8501,8501,8501,8501,8501,8899,8913,8914,8899,8501, + 8501,8501,39,7907,7904,6318,1813,957,848,923, + 4236,1156,2445,9447,2524,1071,9565,9566,9198,9196, + 9205,9204,9200,9201,9199,9202,9203,9206,9197,9271, + 9272,6890,9567,9193,9187,9194,9190,9166,9192,9191, + 9188,9189,9167,8918,2366,2287,3323,2603,405,2208, + 1833,2026,8920,1970,6725,1996,403,8921,8919,1572, + 8915,8916,8917,6698,9333,4751,9334,9335,37,8427, + 8427,8902,5711,1711,1731,8899,8437,8437,263,8433, + 7901,7901,7901,263,263,263,8441,263,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,230,7423,6551, - 6548,7074,7461,525,131,1,311,6564,6560,1278, - 6557,6987,6993,6990,723,3945,3276,6996,6996,1, - 1,1,4035,7423,2279,7838,227,5448,1692,1714, - 230,6745,6739,6742,447,7059,7059,419,7059,7059, - 7059,7059,1,398,7926,7059,7059,391,884,824, - 841,7423,365,7423,6754,6751,6748,6760,6778,6757, - 6769,6736,6763,6766,6775,6772,6733,7423,7861,7862, - 7863,7423,7081,7081,230,7077,6545,6545,6545,230, - 230,7196,230,230,1,1,1,1,1,1, + 1,1,1,1,1,1,8899,8899,8194,8191, + 2094,263,8935,1,7920,7916,5568,7913,1525,8430, + 632,826,1156,2482,8645,8899,1579,1,1,1, + 1,133,8899,4075,837,7240,9347,5084,333,8913, + 8914,263,257,957,848,923,452,7945,7939,7942, + 8899,7907,7904,8899,8937,9435,9565,9566,9198,9196, + 9205,9204,9200,9201,9199,9202,9203,9206,9197,7954, + 7951,8899,7948,7960,7978,7957,7969,7936,7963,7966, + 7975,7972,7933,1677,5711,1711,475,8648,9370,9371, + 9372,8899,8437,8437,263,8433,7901,7901,7901,263, + 263,263,8549,263,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,7423,1,365,7074,37,7071,7071, - 1,7423,6564,6560,1278,6557,6987,6993,6990,723, - 3945,7423,7056,7056,1,1,1,4035,365,2279, - 7838,228,4709,4651,7423,230,6796,6790,6793,448, - 7250,7250,418,7244,7235,7241,7238,7423,398,7926, - 7247,7247,7459,884,824,841,35,7429,7423,6805, - 6802,6799,6811,6829,6808,6820,6787,6814,6817,6826, - 6823,6784,295,7861,7862,7863,7423,6545,6545,230, - 6545,6538,6545,6545,230,230,6574,230,230,1, + 1,1,1,4565,480,8415,8415,263,8415,8415, + 8415,8415,493,8504,8415,8430,8415,5770,39,8899, + 8913,8914,8937,1,1,1,1,826,1156,4075, + 837,8899,9347,619,333,8899,2801,263,570,957, + 848,923,451,8687,8681,8684,8899,7907,7904,2470, + 8937,9435,9565,9566,9198,9196,9205,9204,9200,9201, + 9199,9202,9203,9206,9197,9271,9272,8899,9567,9193, + 9187,9194,9190,9166,9192,9191,9188,9189,9167,9370, + 9371,9372,8421,8906,9370,9371,9372,8899,7901,7901, + 263,7901,7894,7901,7901,263,263,263,7930,263, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 11422,1,12125,1,1,12188,1,230,1443,7423, - 7428,6542,654,656,7423,1,7423,6564,6560,1278, - 6557,6987,6993,6990,723,3945,1642,6996,6996,1, - 1,1,2933,7423,650,7635,1,6564,6560,6554, - 6557,120,2569,224,6571,6568,300,220,6589,6583, - 6586,884,824,841,7926,442,2131,8031,8032,7689, - 7687,7696,7695,7691,7692,7690,7693,7694,7697,7688, - 451,6598,6595,6592,6604,6622,6601,6613,6580,6607, - 6610,6619,6616,6577,5014,4984,139,290,6781,6781, - 2525,285,884,824,841,220,7423,6545,6545,230, - 6545,6538,6545,6545,230,230,230,230,230,1, + 1,13025,1,13044,1,1,13756,1,8899,37, + 481,8678,8678,263,8672,8663,8669,8666,665,8911, + 8675,7898,8675,957,848,923,8899,8913,8914,1, + 1,1,1,3581,258,3958,836,8911,9144,7993, + 7987,7990,1,7920,7916,4619,7913,8899,253,259, + 826,1156,118,348,8041,8035,8038,9435,957,848, + 923,8002,7999,8935,7996,8008,8026,8005,8017,7984, + 8011,8014,8023,8020,7981,8910,8050,8047,8899,8044, + 8056,8074,8053,8065,8032,8059,8062,8071,8068,8029, + 8899,3687,8899,8910,1892,1127,253,8899,7901,7901, + 263,7901,7894,7901,7901,263,263,263,263,263, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 11422,1,12125,1,1,12188,1,230,37,7071, - 7071,6542,592,7423,835,1,7071,6853,6847,6850, - 601,7032,7032,7427,606,884,824,841,7423,1, - 1,1,2933,7423,650,7635,2234,7861,7862,7863, - 6862,6859,6856,6868,6886,6865,6877,6844,6871,6874, - 6883,6880,6841,2257,7926,92,7283,7283,7423,7283, - 7283,7283,7283,607,2882,7423,7283,7283,884,824, - 841,137,3034,2185,2136,2087,2038,1989,1940,1891, - 1842,1793,1744,1,6564,6560,1278,6557,6987,6993, - 6990,723,3945,7423,7423,221,7423,6545,6545,230, - 6545,6538,6545,6545,230,230,230,230,230,1, + 1,13025,1,13044,1,1,13756,1,383,8899, + 608,9508,260,263,8872,8880,8876,8101,8095,8098, + 8884,7898,8899,8489,8486,37,8427,8427,2090,1, + 1,1,1,8427,8899,3958,836,9509,9144,8110, + 8107,8899,8104,8116,8134,8113,8125,8092,8119,8122, + 8131,8128,8089,261,8899,8884,8899,9435,8152,8146, + 8149,544,8899,8834,8834,8834,8834,8834,8834,8834, + 8834,8834,8834,8899,8834,2016,8935,139,1677,1919, + 8161,8158,8884,8155,8167,8185,8164,8176,8143,8170, + 8173,8182,8179,8140,343,2394,254,8899,7901,7901, + 263,7901,7894,7901,7901,263,263,263,263,263, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 11422,1,12125,1,1,12188,1,230,119,5946, - 7426,6542,293,1221,1221,1,604,6551,6548,1278, - 751,884,824,841,723,3945,7423,2525,7423,1, - 1,1,2933,7423,650,7635,1227,1,6564,6560, - 3981,6557,322,7423,2019,723,3945,369,1173,7423, - 461,5014,4984,7429,7926,7423,6545,6545,230,6545, - 6538,6545,6545,230,230,7187,230,230,1,1, + 1,13025,1,13044,1,1,13756,1,8834,431, + 8899,5972,650,263,957,848,923,8209,8203,8206, + 91,7898,39,8498,606,1,8937,1298,5738,1, + 1,1,1,1180,8899,3958,836,4755,9144,8218, + 8215,337,8212,8224,8242,8221,8233,8200,8227,8230, + 8239,8236,8197,1382,9235,4000,5839,9435,8899,7901, + 7901,263,7901,7894,7901,7901,263,263,263,8540, + 263,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,11422, - 1,12125,1,1,12188,1,230,7423,6551,6548, - 6542,751,7423,3420,1,7154,3945,7423,1569,1643, - 369,6141,369,3089,1643,369,7428,1408,1,1, - 1,2933,7062,650,7635,129,1,6564,6560,3981, - 6557,310,315,369,723,3945,221,884,824,841, - 7423,390,1530,7926,7423,6545,6545,230,6545,6538, - 6545,6545,230,230,7187,230,230,1,1,1, + 1,1,13025,1,13044,1,1,13756,1,8899, + 1758,92,8762,8762,263,8762,8762,8762,8762,1076, + 431,8762,7898,8762,424,957,848,923,145,8899, + 1,1,1,1,432,8899,3958,836,423,9144, + 1,8624,8624,8899,8771,8343,8349,8346,8899,254, + 366,398,366,8899,8905,9370,9371,9372,9435,8899, + 7901,7901,263,7901,7894,7901,7901,263,263,263, + 8540,263,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,11422,1, - 12125,1,1,12188,1,230,7423,7136,7133,6542, - 95,7382,7382,1,7376,7367,7373,7370,1643,194, - 7423,7379,7379,7423,6838,6835,3317,1,1,1, - 2933,6832,650,7635,130,7423,6564,6560,1278,6557, - 6987,6993,6990,723,3945,221,7056,7056,3427,3390, - 457,7459,7926,7423,6545,6545,230,6545,6538,6545, - 6545,230,230,7187,230,230,1,1,1,1, + 1,1,1,13025,1,13044,1,1,13756,1, + 1278,5276,659,8388,8388,263,664,957,848,923, + 5595,879,958,7898,398,2554,8899,8904,371,2004, + 2934,1,1,1,1,8899,29,3958,836,39, + 9144,5199,4526,8937,957,848,923,654,398,366, + 254,366,957,848,923,8783,8780,629,8777,9435, + 8899,7901,7901,263,7901,7894,7901,7901,263,263, + 263,8540,263,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,11422,1,12125, - 1,1,12188,1,230,43,7142,7142,6542,5448, - 1692,7323,1,1,6564,6560,1278,6557,398,2525, - 571,723,3945,884,824,841,1,1,1,2933, - 7008,650,7635,7423,347,6551,6548,3981,751,884, - 824,841,723,3945,221,333,333,3427,3390,443, - 7139,7926,7423,6545,6545,230,6545,6538,6545,6545, - 230,230,230,230,230,1,1,1,1,1, + 1,1,1,1,13025,1,13044,1,1,13756, + 1,4160,1278,95,8858,8858,263,8852,8843,8849, + 8846,662,460,8855,7898,8855,8510,8516,8513,371, + 393,551,1,1,1,1,8899,431,3958,836, + 2235,9144,957,848,923,190,137,8905,430,8086, + 8086,254,318,8077,8083,8080,9271,9272,8899,9567, + 9435,8899,7901,7901,263,7901,7894,7901,7901,263, + 263,263,263,263,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,11422,1,12125,1, - 1,12188,1,230,124,1837,7423,6542,39,7423, - 1118,1,7461,884,824,841,1643,596,123,333, - 333,3363,884,824,841,1,1,1,2933,7011, - 650,7635,7423,7358,7358,7358,7358,7358,7358,7358, - 7358,7358,604,7358,7358,7423,7423,7157,7163,7160, - 7926,7423,6545,6545,230,6545,6538,6545,6545,230, - 230,230,230,230,1,1,1,1,1,1, + 1,1,1,1,1,13025,1,13044,1,1, + 13756,1,318,1278,1098,271,571,263,8654,8899, + 8904,8696,8690,8693,8899,7898,144,5116,2700,879, + 958,8899,485,1,1,1,1,48,9291,3958, + 836,8914,9144,9271,9272,142,9567,9193,9187,9194, + 9190,9166,9192,9191,9188,9189,9167,43,8495,8495, + 4343,9435,8899,7901,7901,263,7901,7894,7901,7901, + 263,263,263,263,263,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,11422,1,12125,1,1, - 12188,1,230,7423,6551,6548,6542,751,4012,4085, - 1,7154,3945,300,7437,7438,7358,122,884,824, - 841,7423,4012,4085,1,1,1,2933,29,650, - 7635,1,7295,7295,7423,7292,6987,6993,6990,7423, - 595,365,333,333,7429,884,824,841,2837,7926, - 7423,6545,6545,230,6545,6538,6545,6545,230,230, - 230,230,230,1,1,1,1,1,1,1, + 1,1,1,1,1,1,13025,1,13044,1, + 1,13756,1,8914,6978,3174,7215,572,263,879, + 958,8492,8705,8699,8702,8899,7898,640,6250,8899, + 156,8899,2403,397,1,1,1,1,879,958, + 3958,836,8905,9144,9271,9272,639,9567,9193,9187, + 9194,9190,9166,9192,9191,9188,9189,9167,8899,13519, + 13519,8899,9435,8899,7901,7901,263,7901,7894,7901, + 7901,263,263,263,263,263,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,11422,1,12125,1,1,12188, - 1,230,7423,6551,6548,6542,751,7423,1443,1, - 723,3945,427,7423,365,39,39,7428,1197,7461, - 7461,4012,4085,1,1,1,2933,29,650,7635, - 1,6564,6560,3981,6557,1,333,365,723,3945, - 7220,7172,7178,7175,7423,7151,1723,2555,7926,7423, - 6545,6545,230,6545,6538,6545,6545,230,230,230, - 230,230,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,13025,1,13044, + 1,1,13756,1,3250,8904,1272,120,573,263, + 879,958,8935,8714,8708,8711,653,7898,8899,8899, + 8899,957,848,923,320,1,1,1,1,879, + 958,3958,836,4387,9144,9271,9272,125,9567,9193, + 9187,9194,9190,9166,9192,9191,9188,9189,9167,1892, + 1127,8899,8899,9435,8899,7901,7901,263,7901,7894, + 7901,7901,263,263,263,263,263,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,11422,1,12125,1,1,12188,1, - 230,7423,6551,6548,6542,751,7423,7014,1,723, - 3945,603,1643,7223,333,7423,884,824,841,884, - 824,841,1,1,1,2933,7430,650,7635,347, - 39,39,3269,7461,884,824,841,7861,7862,7863, - 333,333,1,238,7423,4798,7226,7926,7423,6545, - 6545,230,6545,6538,6545,6545,230,230,230,230, - 230,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,13025,1, + 13044,1,1,13756,1,3272,366,9218,119,574, + 263,8525,8531,8528,8723,8717,8720,8899,7898,139, + 6317,8899,8899,1,6999,8899,1,1,1,1, + 879,958,3958,836,398,9144,9271,9272,8899,9567, + 9193,9187,9194,9190,9166,9192,9191,9188,9189,9167, + 1892,1127,8899,8899,9435,8899,7901,7901,263,7901, + 7894,7901,7901,263,263,263,263,263,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,11422,1,12125,1,1,12188,1,230, - 7423,12063,12063,6542,115,7423,7423,1,2318,6364, - 7423,1643,597,6396,7423,5193,7423,884,824,841, - 7423,1,1,1,2933,304,650,7635,1,6564, - 6560,1278,6557,6987,6993,6990,723,3945,7726,7423, - 7423,7423,460,518,7423,7459,7926,7423,6545,6545, - 230,6545,6538,6545,6545,230,230,230,230,230, + 1,1,1,1,1,1,1,1,1,13025, + 1,13044,1,1,13756,1,8899,398,6978,3245, + 3619,263,1,7920,7916,4619,7913,8909,158,7898, + 826,1156,8899,3273,8899,6413,8899,1,1,1, + 1,398,124,3958,836,8905,9144,4000,5839,3196, + 3147,3098,3049,3000,2951,2902,2853,2803,2754,45, + 8735,8735,8908,8899,542,9435,8899,7901,7901,263, + 7901,7894,7901,7901,263,263,263,263,263,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,11422,1,12125,1,1,12188,1,230,5985, - 2024,810,6542,7423,3376,157,1,1,6564,6560, - 1278,6557,2525,5169,5145,723,3945,7423,7437,7438, - 1,1,1,2933,7065,650,7635,7435,991,350, - 1,7423,1,3269,7423,1,6564,6560,6252,6557, - 343,7435,7017,5425,3945,7926,5329,5352,7088,7127, - 7124,7115,7121,7094,7097,7109,7106,7112,7103,7100, - 7091,7118,7130,1,6564,6560,1278,6557,6987,6993, - 6990,723,3945,311,45,7256,7256,7442,5235,4950, - 2327,5402,5375,3090,7434,1400,1567,7444,1485,5606, - 1534,7445,7443,1389,7439,7440,7441,5584,7434,7434, - 7423,1643,1643,343,311,343,1688,7423,343,7423, - 1,39,39,519,39,6551,6548,6252,751,7253, - 7435,7423,5425,3945,7414,5329,5352,1317,8031,8032, - 7689,7687,7696,7695,7691,7692,7690,7693,7694,7697, - 7688,5562,1,6564,6560,6554,6557,7423,420,7423, - 6571,6568,7433,884,824,841,7442,5235,4950,7423, - 5402,5375,3090,1935,1400,1567,7444,1485,5606,1534, - 7445,7443,1389,7439,7440,7441,5584,7434,3383,3364, - 139,7169,399,7432,1,1688,390,3269,39,6551, - 6548,6252,751,7423,7220,7430,5425,3945,7166,5329, - 5352,1317,8031,8032,7689,7687,7696,7695,7691,7692, - 7690,7693,7694,7697,7688,5562,7423,3517,452,4529, - 47,37,37,7071,7071,7881,7429,884,824,841, - 7442,5235,4950,333,5402,5375,3090,7867,1400,1567, - 7444,1485,5606,1534,7445,7443,1389,7439,7440,7441, - 5584,75,1443,100,7047,7169,1643,7223,3512,1688, - 141,6551,6548,6252,751,1215,7459,7459,5425,3945, - 7423,5329,5352,1317,8031,8032,7689,7687,7696,7695, - 7691,7692,7690,7693,7694,7697,7688,5562,2882,7428, - 37,7071,7071,919,364,7423,3034,7038,7035,7423, - 7330,7326,7442,5235,4950,7429,5402,5375,3090,7423, - 1400,1567,7444,1485,5606,1534,7445,7443,1389,7439, - 7440,7441,5584,7050,7423,7316,1,599,7423,431, - 7423,1688,7340,7346,7343,2110,39,39,556,6551, - 6548,6252,751,126,7459,1569,5425,3945,3940,5329, - 5352,1317,8031,8032,7689,7687,7696,7695,7691,7692, - 7690,7693,7694,7697,7688,5562,7041,598,7428,2061, - 1593,421,7349,7355,7352,287,884,824,841,7044, - 7442,5235,4950,4392,5402,5375,3090,1,1400,1567, - 7444,1485,5606,1534,7445,7443,1389,7439,7440,7441, - 5584,117,7827,2936,1,2711,7423,349,293,1688, - 2697,7423,5193,3896,39,39,1,6564,6560,6252, - 6557,7199,7784,7423,5425,3945,3311,5329,5352,7088, - 7127,7124,7115,7121,7094,7097,7109,7106,7112,7103, - 7100,7091,7118,7130,3830,3797,721,7423,7423,721, - 7709,6420,3764,3685,7423,7423,7423,7433,7442,5235, - 4950,2,5402,5375,3090,7423,1400,1567,7444,1485, - 5606,1534,7445,7443,1389,7439,7440,7441,5584,1643, - 4203,4592,7423,10220,7423,3962,1,1688,7432,7423, - 7423,7423,39,39,39,6551,6548,6252,751,7181, - 5169,5145,5425,3945,7166,5329,5352,1317,8031,8032, - 7689,7687,7696,7695,7691,7692,7690,7693,7694,7697, - 7688,5562,7423,7423,7423,4718,1443,7396,7404,7400, - 7423,3073,7408,7433,7431,7184,7442,5235,4950,4266, - 5402,5375,3090,7423,1400,1567,7444,1485,5606,1534, - 7445,7443,1389,7439,7440,7441,5584,138,2618,1227, - 116,7169,7423,7408,7432,1688,39,6551,6548,6252, - 751,5193,7429,7423,5425,3945,7427,5329,5352,1317, - 8031,8032,7689,7687,7696,7695,7691,7692,7690,7693, - 7694,7697,7688,5562,7423,132,591,7408,3489,1124, - 3312,1,3934,429,7429,7430,7202,3276,7442,5235, - 4950,161,5402,5375,3090,372,1400,1567,7444,1485, - 5606,1534,7445,7443,1389,7439,7440,7441,5584,39, - 6551,6548,6252,751,7423,7428,136,5425,3945,7166, - 5329,5352,1317,8031,8032,7689,7687,7696,7695,7691, - 7692,7690,7693,7694,7697,7688,5562,99,580,5169, - 5145,48,48,7206,1173,7438,7437,7428,7259,5925, - 7423,7442,5235,4950,161,5402,5375,3090,1737,1400, - 1567,7444,1485,5606,1534,7445,7443,1389,7439,7440, - 7441,5584,408,7426,578,1481,7169,39,6551,6548, - 6252,751,7190,7423,7267,5425,3945,2469,5329,5352, - 1317,8031,8032,7689,7687,7696,7695,7691,7692,7690, - 7693,7694,7697,7688,5562,7263,7423,87,7423,7364, - 7423,7438,7437,7193,3047,7423,7431,7275,4143,7442, - 5235,4950,682,5402,5375,3090,7423,1400,1567,7444, - 1485,5606,1534,7445,7443,1389,7439,7440,7441,5584, - 1,7271,39,6551,6548,6252,751,7423,7423,2042, - 5425,3945,7423,5329,5352,1317,8031,8032,7689,7687, - 7696,7695,7691,7692,7690,7693,7694,7697,7688,5562, - 1,1,1,1,7279,7423,7423,7423,4211,4268, - 7433,191,163,532,7442,5235,4950,7430,5402,5375, - 3090,7423,1400,1567,7444,1485,5606,1534,7445,7443, - 1389,7439,7440,7441,5584,73,39,6551,6548,6252, - 751,7432,191,1688,5425,3945,7423,5329,5352,1317, - 8031,8032,7689,7687,7696,7695,7691,7692,7690,7693, - 7694,7697,7688,5562,8,7423,4251,1,7423,370, - 7423,2417,7423,2905,7420,163,532,7429,7442,5235, - 4950,2376,5402,5375,3090,377,1400,1567,7444,1485, - 5606,1534,7445,7443,1389,7439,7440,7441,5584,7423, - 39,6551,6548,4810,751,7393,7423,1688,5425,3945, - 7423,5329,5352,1317,8031,8032,7689,7687,7696,7695, - 7691,7692,7690,7693,7694,7697,7688,5562,511,100, - 103,7423,509,7361,4362,7423,7423,7423,2159,2425, - 7428,7423,7442,5235,4950,7420,5402,5375,3090,1543, - 1400,1567,7444,1485,5606,1534,7445,7443,1389,7439, - 7440,7441,5584,39,6551,6548,4830,751,7423,7423, - 7423,5425,3945,4329,5329,5352,1317,8031,8032,7689, - 7687,7696,7695,7691,7692,7690,7693,7694,7697,7688, - 5562,423,536,7423,280,7423,3934,7411,7423,103, - 7423,7316,7361,3575,7423,7442,5235,4950,5688,5402, - 5375,3090,5852,1400,1567,7444,1485,5606,1534,7445, - 7443,1389,7439,7440,7441,5584,39,6551,6548,5260, - 751,7423,7423,7423,5425,3945,7423,5329,5352,1317, - 8031,8032,7689,7687,7696,7695,7691,7692,7690,7693, - 7694,7697,7688,5562,7423,2,7423,7423,7423,7423, - 7423,7423,7423,3944,7423,7423,7423,7423,7442,5235, - 4950,2662,5402,5375,3090,1642,1400,1567,7444,1485, - 5606,1534,7445,7443,1389,7439,7440,7441,5584,39, - 6551,6548,5713,751,7423,7423,7423,5425,3945,7423, - 5329,5352,1317,8031,8032,7689,7687,7696,7695,7691, - 7692,7690,7693,7694,7697,7688,5562,1,7423,7423, - 7423,513,7423,7423,7423,37,7423,7423,7423,7423, - 7423,7442,5235,4950,2476,5402,5375,3090,524,1400, - 1567,7444,1485,5606,1534,7445,7443,1389,7439,7440, - 7441,5584,39,6551,6548,6252,751,7423,7423,7423, - 5425,3945,661,5329,5352,1317,8031,8032,7689,7687, - 7696,7695,7691,7692,7690,7693,7694,7697,7688,5562, - 1,7423,7423,7423,7423,7423,7423,7423,7423,7423, - 7423,7423,7423,7423,7442,5235,4950,7423,5402,5375, - 3090,2853,1400,1567,7444,1485,5606,1534,7445,7443, - 1389,7439,7440,7441,5584,39,6551,6548,6288,751, - 7423,7423,7423,5425,3945,712,5329,5352,1317,8031, - 8032,7689,7687,7696,7695,7691,7692,7690,7693,7694, - 7697,7688,5562,7423,7423,7423,2449,7423,7423,3934, - 7423,7423,7423,7423,7423,7423,7423,7442,5235,4950, - 7423,5402,5375,3090,7423,1400,1567,7444,1485,5606, - 1534,7445,7443,1389,7439,7440,7441,5584,39,6551, - 6548,6252,751,7423,7423,7423,5425,3945,128,5329, - 5352,1317,8031,8032,7689,7687,7696,7695,7691,7692, - 7690,7693,7694,7697,7688,5562,1,7423,7423,1914, - 1,7423,7423,7423,7895,7423,7423,7889,7893,7423, - 7442,5235,4950,7181,5402,5375,3090,7423,1400,1567, - 7444,1485,5606,1534,7445,7443,1389,7439,7440,7441, - 5584,7423,7423,7423,7423,7423,7423,7423,7423,7887, - 7888,7423,7918,7919,7896,3073,7423,7423,3896,7184, - 7423,7423,7423,7423,7423,7423,7310,7423,7423,7423, - 7423,7423,7423,7423,7423,7423,7898,7423,1063,7423, - 7423,7920,1797,1828,7899,7423,7897,7423,7423,3830, - 3797,7423,7423,7423,7423,7423,7423,3764,3685,7423, - 7909,7908,7423,7921,7423,7890,7891,7914,7915,7912, - 7913,7892,7894,7916,7917,7423,7423,7423,7423,7423, - 7423,7922,7423,7902,7903,7904,7900,7901,7910,7911, - 7906,7905,7907,7423,6551,6548,7423,7461,884,824, - 841,7423,7423,7423,7423,7423,1198,8031,8032,7689, - 7687,7696,7695,7691,7692,7690,7693,7694,7697,7688, - 5540,7762,7763,8033,7684,7678,7685,7681,7657,7683, - 7682,7679,7680,7658,7423,7423,7423,7423,7423,7423, - 7423,7423,7824,7423,7423,7423,242,6980,6976,7423, - 6984,6901,6895,6898,7423,7423,3595,7825,7826,1198, - 6973,6970,6961,6967,6940,6943,6955,6952,6958,6949, - 6946,6937,6964,5540,6910,6907,6904,6916,6934,6913, - 6925,6892,6919,6922,6931,6928,6889,7423,7423,7423, - 7423,7423,7423,7423,7423,7824,29,390,390,7232, - 390,390,390,390,390,390,7232,7232,7232,3595, - 7825,7826,7423,7423,7423,7423,7423,7423,7423,7423, - 7423,7423,7423,7423,390,390,390,390,390,390, - 390,390,390,390,390,390,390,7232,7423,7423, - 7423,7423,580,591,591,591,591,591,591,591, - 591,591,7385,7390,7390,7423,7423,7423,7423,7423, - 7423,7423,7423,7423,7423,7423,7014,7423,7232,7232, - 591,591,591,591,591,591,591,591,591,591, - 591,591,591,7390,7423,7423,7423,7423,32,391, - 391,7229,391,391,391,391,391,391,7229,7229, - 7229,7423,7423,7423,7423,7423,7423,127,7423,7169, - 7423,7423,7423,7423,591,7390,391,391,391,391, - 391,391,391,391,391,391,391,391,391,7229, - 7423,7423,7423,7423,579,590,590,590,590,590, - 590,590,590,590,7298,7298,7298,7423,7423,7423, - 7423,7423,7423,7423,7423,7423,7423,7423,7423,7423, - 7229,7229,590,590,590,590,590,590,590,590, - 590,590,590,590,590,7298,7423,3896,7423,7423, - 7423,7423,7423,7423,7423,7313,7423,7423,7423,7423, - 7423,7423,7423,7423,7423,7423,7423,7423,7423,7423, - 7423,7423,7423,7423,7423,7423,590,7298,3830,3797, - 7423,7423,7423,7423,7423,7423,3764,3685 + 13025,1,13044,1,1,13756,1,797,8904,8899, + 8899,3274,263,8732,8899,1,7920,7916,5568,7913, + 7898,8907,1704,826,1156,879,958,8899,1,1, + 1,1,4265,661,3958,836,366,9144,957,848, + 923,957,848,923,6254,1,7920,7916,3520,1813, + 8899,456,8899,4236,1156,2445,9435,2524,8444,8483, + 8480,8471,8477,8450,8453,8465,8462,8468,8459,8456, + 8447,8474,1,8899,5647,1,7920,7916,4619,7913, + 8343,8349,8346,826,1156,1677,8918,2366,2287,3323, + 2603,8906,2208,1833,2026,8920,1970,6725,1996,8899, + 8921,8919,1572,8915,8916,8917,6698,1,7920,7916, + 4619,7913,8343,8349,8346,826,1156,1731,1,1, + 552,3937,39,39,1,7920,7916,8621,7913,8645, + 8373,3737,8582,7924,8570,8911,8573,8444,8483,8480, + 8471,8477,8450,8453,8465,8462,8468,8459,8456,8447, + 8474,3589,8899,8552,1,7920,7916,4619,7913,8343, + 8349,8346,826,1156,8899,8594,8567,8564,8579,8576, + 9293,8561,8609,8618,8588,8612,8558,8615,152,8585, + 8591,8606,8603,8600,8597,8555,8910,1,1677,8899, + 4638,8910,8648,8899,8899,39,7907,7904,6318,1813, + 8534,8624,8624,4236,1156,2445,8890,2524,1563,9565, + 9566,9198,9196,9205,9204,9200,9201,9199,9202,9203, + 9206,9197,8899,326,5647,8899,7907,7904,5837,1813, + 3589,48,136,826,1156,8913,8918,2366,2287,3323, + 2603,3188,2208,1833,2026,8920,1970,6725,1996,8537, + 8921,8919,1572,8915,8916,8917,6698,8899,7907,7904, + 4830,1813,8522,441,1,826,1156,1731,9390,39, + 7907,7904,6318,1813,8543,8911,8906,4236,1156,2445, + 8519,2524,1563,9565,9566,9198,9196,9205,9204,9200, + 9201,9199,9202,9203,9206,9197,10894,8913,5647,662, + 7907,7904,4619,1813,957,848,923,826,1156,8546, + 8918,2366,2287,3323,2603,462,2208,1833,2026,8920, + 1970,6725,1996,8899,8921,8919,1572,8915,8916,8917, + 6698,8910,655,410,8909,4458,8522,957,848,923, + 8899,1731,174,7907,7904,6318,1813,154,100,8899, + 4236,1156,2445,8899,2524,1563,9565,9566,9198,9196, + 9205,9204,9200,9201,9199,9202,9203,9206,9197,8908, + 8899,5647,660,8385,8385,453,664,8376,8382,8379, + 957,848,923,8918,2366,2287,3323,2603,1824,2208, + 1833,2026,8920,1970,6725,1996,5005,8921,8919,1572, + 8915,8916,8917,6698,8899,380,39,39,3937,8937, + 957,848,923,1,1731,366,8899,366,8786,39, + 39,614,7907,7904,6318,1813,664,8905,9376,4236, + 1156,2445,1,2524,1563,9565,9566,9198,9196,9205, + 9204,9200,9201,9199,9202,9203,9206,9197,1,4499, + 5647,37,8427,8427,765,3581,957,848,923,8909, + 8899,366,8918,2366,2287,3323,2603,765,2208,1833, + 2026,8920,1970,6725,1996,1677,8921,8919,1572,8915, + 8916,8917,6698,8899,7907,7904,727,1813,8899,1628, + 8904,8507,1156,1731,8908,8899,3631,8899,39,39, + 1,7920,7916,3520,1813,8935,8905,8899,4236,1156, + 2445,582,2524,8444,8483,8480,8471,8477,8450,8453, + 8465,8462,8468,8459,8456,8447,8474,8899,8899,5647, + 8899,7907,7904,1,1813,8899,3588,1048,8507,1156, + 8899,8918,2366,2287,3323,2603,148,2208,1833,2026, + 8920,1970,6725,1996,5304,8921,8919,1572,8915,8916, + 8917,6698,37,8427,8427,8899,8806,8802,657,8904, + 8899,99,1731,8816,8822,8819,8899,39,39,39, + 7907,7904,6318,1813,1511,8899,8899,4236,1156,2445, + 8519,2524,1563,9565,9566,9198,9196,9205,9204,9200, + 9201,9199,9202,9203,9206,9197,1278,1847,5647,2, + 1,3690,5276,3937,1,8899,1609,3937,5905,8935, + 8918,2366,2287,3323,2603,376,2208,1833,2026,8920, + 1970,6725,1996,3581,8921,8919,1572,8915,8916,8917, + 6698,8840,5199,4526,1,8899,8522,8899,5917,100, + 1626,1731,39,7907,7904,6318,1813,8534,8905,218, + 4236,1156,2445,8903,2524,1563,9565,9566,9198,9196, + 9205,9204,9200,9201,9199,9202,9203,9206,9197,8899, + 1677,5647,6039,576,1677,576,8899,376,376,376, + 8899,14804,14755,8918,2366,2287,3323,2603,3188,2208, + 1833,2026,8920,1970,6725,1996,8537,8921,8919,1572, + 8915,8916,8917,6698,39,7907,7904,6318,1813,8786, + 1,8904,4236,1156,2445,8519,2524,1563,9565,9566, + 9198,9196,9205,9204,9200,9201,9199,9202,9203,9206, + 9197,656,8899,5647,8935,454,8825,8831,8828,8899, + 957,848,923,8905,147,8918,2366,2287,3323,2603, + 8899,2208,1833,2026,8920,1970,6725,1996,138,8921, + 8919,1572,8915,8916,8917,6698,1,649,134,8902, + 8899,8522,39,7907,7904,6318,1813,224,8627,8893, + 4236,1156,2445,123,2524,1563,9565,9566,9198,9196, + 9205,9204,9200,9201,9199,9202,9203,9206,9197,8899, + 8899,5647,8899,8899,8899,6315,8904,6106,4189,73, + 5276,8907,224,8918,2366,2287,3323,2603,8899,2208, + 1833,2026,8920,1970,6725,1996,3294,8921,8919,1572, + 8915,8916,8917,6698,8631,39,7907,7904,6318,1813, + 5199,4526,1670,4236,1156,2445,5904,2524,1563,9565, + 9566,9198,9196,9205,9204,9200,9201,9199,9202,9203, + 9206,9197,4343,8899,5647,1180,879,958,2483,8899, + 4565,8899,6340,1245,8905,8869,8918,2366,2287,3323, + 2603,8906,2208,1833,2026,8920,1970,6725,1996,8899, + 8921,8919,1572,8915,8916,8917,6698,2,3471,132, + 39,7907,7904,3520,1813,8899,8899,1731,4236,1156, + 2445,4717,2524,1563,9565,9566,9198,9196,9205,9204, + 9200,9201,9199,9202,9203,9206,9197,1,638,5647, + 8899,103,8899,6759,8837,636,8899,8904,194,8738, + 8899,8918,2366,2287,3323,2603,8746,2208,1833,2026, + 8920,1970,6725,1996,8899,8921,8919,1572,8915,8916, + 8917,6698,8899,37,8899,39,7907,7904,3520,1813, + 8899,8899,1731,4236,1156,2445,8899,2524,1563,9565, + 9566,9198,9196,9205,9204,9200,9201,9199,9202,9203, + 9206,9197,1,87,5647,8742,8899,8899,8899,6319, + 8899,194,8750,196,8754,8899,8918,2366,2287,3323, + 2603,8899,2208,1833,2026,8920,1970,6725,1996,8899, + 8921,8919,1572,8915,8916,8917,6698,8899,8899,8899, + 39,7907,7904,6318,1813,8899,8899,1731,4236,1156, + 2445,8899,2524,1563,9565,9566,9198,9196,9205,9204, + 9200,9201,9199,9202,9203,9206,9197,1,1,5647, + 8758,8899,8899,8899,1326,8899,196,313,590,8905, + 8887,8918,2366,2287,3323,2603,3373,2208,1833,2026, + 8920,1970,6725,1996,546,8921,8919,1572,8915,8916, + 8917,6698,8899,8899,8899,39,7907,7904,5735,1813, + 8899,122,1731,4236,1156,2445,8899,2524,1563,9565, + 9566,9198,9196,9205,9204,9200,9201,9199,9202,9203, + 9206,9197,8,103,5647,8899,8837,8899,7661,8899, + 8899,590,8904,8896,1,8899,8918,2366,2287,3323, + 2603,3422,2208,1833,2026,8920,1970,6725,1996,8899, + 8921,8919,1572,8915,8916,8917,6698,39,7907,7904, + 5885,1813,8899,8899,722,4236,1156,2445,8899,2524, + 1563,9565,9566,9198,9196,9205,9204,9200,9201,9199, + 9202,9203,9206,9197,879,958,5647,8899,755,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8918,2366, + 2287,3323,2603,8896,2208,1833,2026,8920,1970,6725, + 1996,8899,8921,8919,1572,8915,8916,8917,6698,39, + 7907,7904,6204,1813,8899,8899,8899,4236,1156,2445, + 8899,2524,1563,9565,9566,9198,9196,9205,9204,9200, + 9201,9199,9202,9203,9206,9197,8899,8899,5647,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8918,2366,2287,3323,2603,8899,2208,1833,2026,8920, + 1970,6725,1996,8899,8921,8919,1572,8915,8916,8917, + 6698,39,7907,7904,6251,1813,8899,8899,8899,4236, + 1156,2445,8899,2524,1563,9565,9566,9198,9196,9205, + 9204,9200,9201,9199,9202,9203,9206,9197,8899,8899, + 5647,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8918,2366,2287,3323,2603,8899,2208,1833, + 2026,8920,1970,6725,1996,8899,8921,8919,1572,8915, + 8916,8917,6698,39,7907,7904,6318,1813,8899,8899, + 8899,4236,1156,2445,8899,2524,1563,9565,9566,9198, + 9196,9205,9204,9200,9201,9199,9202,9203,9206,9197, + 8899,8899,5647,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8918,2366,2287,3323,2603,8899, + 2208,1833,2026,8920,1970,6725,1996,8899,8921,8919, + 1572,8915,8916,8917,6698,39,7907,7904,7484,1813, + 8899,8899,8899,4236,1156,2445,8899,2524,1563,9565, + 9566,9198,9196,9205,9204,9200,9201,9199,9202,9203, + 9206,9197,8899,8899,5647,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8918,2366,2287,3323, + 2603,8899,2208,1833,2026,8920,1970,6725,1996,8899, + 8921,8919,1572,8915,8916,8917,6698,39,7907,7904, + 3520,1813,8899,8899,8899,4236,1156,2445,8899,2524, + 1563,9565,9566,9198,9196,9205,9204,9200,9201,9199, + 9202,9203,9206,9197,8899,8899,5647,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8918,2366, + 2287,3323,2603,8899,2208,1833,2026,8920,1970,6725, + 1996,8899,8921,8919,1572,8915,8916,8917,6698,39, + 7907,7904,3520,1813,8899,8899,8899,4236,1156,2445, + 8899,2524,1563,9565,9566,9198,9196,9205,9204,9200, + 9201,9199,9202,9203,9206,9197,8899,8899,5647,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8918,2366,2287,3323,2603,8899,2208,1833,2026,8920, + 1970,6725,1996,8899,8921,8919,1572,8915,8916,8917, + 6698,39,7907,7904,6318,1813,8899,8899,8899,4236, + 1156,2445,8899,2524,1563,9565,9566,9198,9196,9205, + 9204,9200,9201,9199,9202,9203,9206,9197,1,8899, + 5647,1730,8899,8899,8899,8899,9404,8899,9398,8899, + 9402,8899,8918,2366,2287,3323,2603,8899,2208,1833, + 2026,8920,1970,6725,1996,8899,8921,8919,1572,8915, + 8916,8917,6698,8899,8899,8899,8899,8899,8899,8899, + 9396,9397,9427,9428,8899,9405,8899,8899,380,7907, + 7904,5568,1813,957,848,923,826,1156,366,8899, + 366,8899,8899,8899,9407,8899,8899,8899,1062,8899, + 8899,9429,8899,9408,8899,2239,2263,8899,9406,8899, + 8899,9418,9417,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,9423,9424,8899,9430,9421,9422, + 9401,9403,9425,8899,9399,9400,9426,8899,9411,9412, + 9413,9409,9410,9419,9420,9415,9414,9416,1677,8899, + 8899,8899,7907,7904,9431,8937,957,848,923,8899, + 8899,8899,8899,8899,810,9565,9566,9198,9196,9205, + 9204,9200,9201,9199,9202,9203,9206,9197,9271,9272, + 5243,9567,9193,9187,9194,9190,9166,9192,9191,9188, + 9189,9167,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,275,8336,8332,8899,8340,8257, + 8251,8254,8899,9333,4751,9334,9335,810,8329,8326, + 8317,8323,8296,8299,8311,8308,8314,8305,8302,8293, + 8320,8266,8263,5243,8260,8272,8290,8269,8281,8248, + 8275,8278,8287,8284,8245,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8913,8914, + 8899,8899,957,848,923,8899,9333,4751,9334,9335, + 1655,9565,9566,9198,9196,9205,9204,9200,9201,9199, + 9202,9203,9206,9197,9271,9272,8899,9567,9193,9187, + 9194,9190,9166,9192,9191,9188,9189,9167,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 275,8729,8726,8899,8899,8257,8251,8254,8899,9333, + 4751,9334,9335,1655,8329,8326,8317,8323,8296,8299, + 8311,8308,8314,8305,8302,8293,8320,8266,8263,8899, + 8260,8272,8290,8269,8281,8248,8275,8278,8287,8284, + 8245,29,423,423,8660,423,423,423,423,423, + 423,8660,8660,8660,8899,8899,8899,8899,8899,8899, + 8899,8899,9333,4751,9334,9335,8899,8899,423,423, + 8899,423,423,423,423,423,423,423,423,423, + 423,423,8899,8899,8899,126,8899,8660,8899,638, + 649,649,649,649,649,649,649,649,649,8866, + 8861,8866,8899,8899,8899,8899,8899,8370,8899,8899, + 8899,8660,8899,8899,8899,8660,649,649,8899,649, + 649,649,649,649,649,649,649,649,649,649, + 8899,8899,8899,128,8899,8866,8899,32,424,424, + 8657,424,424,424,424,424,424,8657,8657,8657, + 8899,5541,8899,8899,8899,8899,8522,8899,8899,649, + 8651,8899,8899,8866,424,424,8899,424,424,424, + 424,424,424,424,424,424,424,424,8899,8899, + 8899,5487,5460,8657,8899,637,648,648,648,648, + 648,648,648,648,648,8774,8774,8774,8899,5541, + 8899,8899,8899,8899,8899,5433,5406,8657,8796,8899, + 8899,8657,648,648,8899,648,648,648,648,648, + 648,648,648,648,648,648,8899,8899,8899,5487, + 5460,8774,8899,37,8914,8914,8914,8914,8914,8914, + 8914,8899,8899,8914,8899,8914,8899,8899,8899,8899, + 8899,8899,8899,5433,5406,648,8899,8899,8899,8774, + 8914,8914,8899,8914,8914,8914,8914,8914,8914,8914, + 8914,8914,8914,8914,8899,8899,8899,8899,8899,8899, + 8899,8899,37,8913,8913,8913,8913,8913,8913,8913, + 8899,8899,8913,127,8913,8899,1,7920,7916,5568, + 7913,8899,8899,8914,826,1156,8914,402,8914,8913, + 8913,8899,8913,8913,8913,8913,8913,8913,8913,8913, + 8913,8913,8913,344,7920,7916,4619,7913,8343,8349, + 8346,826,1156,8352,8899,8352,8899,7920,7916,4619, + 7913,8343,8349,8346,826,1156,8412,75,8412,8899, + 8403,8899,8913,8899,8899,8913,8899,8913,8899,5541, + 8899,8899,8899,8899,8899,8899,1677,8899,8799,402, + 402,402,8899,8899,8899,8899,1458,1,7920,7916, + 4619,7913,8343,8349,8346,826,1156,8899,344,5487, + 5460,8394,8391,8899,402,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,5433,5406,8899,8899,8406,8899,8899, + 8899,8899,8899,344,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8899,8899,8899,8899,8899,8899,8899, + 8899,8899,8899,8397,8899,8400 }; }; public final static char termAction[] = TermAction.termAction; @@ -2418,69 +2852,75 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface Asb { public final static char asb[] = {0, - 1307,1,1298,126,951,1345,65,65,65,1254, - 8,1041,1306,986,902,546,1055,546,546,546, - 1068,175,1068,1038,1068,774,1068,1068,986,905, - 1068,1049,863,3,1345,1128,1201,1068,1068,911, - 905,1068,905,546,178,16,16,811,16,74, - 175,270,180,270,905,903,381,544,377,1252, - 11,1040,62,1038,173,986,774,193,905,905, - 63,988,863,863,863,863,863,863,863,863, - 863,863,1203,863,1140,546,178,178,178,178, - 986,546,1068,437,437,654,745,260,260,1131, - 768,489,1128,1128,905,1356,732,193,193,1068, - 320,732,1068,1068,178,1068,905,120,996,27, - 16,16,15,15,175,986,905,903,496,386, - 495,500,377,543,732,11,905,269,754,432, - 63,175,441,905,193,63,905,116,1140,1140, - 1140,1140,1208,950,120,1068,732,732,732,823, - 720,842,842,951,951,951,951,905,333,67, - 67,333,862,437,175,986,745,276,1128,1068, - 905,862,1160,1128,745,116,1068,1068,193,193, - 1131,320,320,903,996,27,15,15,15,905, - 654,654,381,654,257,1252,731,730,376,444, - 905,11,607,1041,178,901,1359,11,269,433, - 437,269,437,63,441,441,905,811,447,452, - 449,456,454,463,461,465,464,466,323,467, - 810,905,988,905,732,732,732,732,320,950, - 862,1068,824,1131,992,794,793,493,506,1074, - 1074,986,1203,863,732,732,811,811,811,811, - 63,732,862,902,904,902,732,320,175,550, - 905,546,320,480,1128,1135,732,444,175,1128, - 745,1138,1068,811,811,1068,732,798,783,797, - 810,178,187,187,444,444,15,905,906,732, - 500,732,332,732,732,120,1361,437,437,437, - 437,905,441,443,657,443,863,863,863,863, - 863,863,863,863,863,863,863,863,863,863, - 863,863,863,863,863,863,863,862,862,862, - 862,862,862,862,862,862,862,862,562,863, - 842,116,1068,1068,1068,1161,863,951,1068,1068, - 732,823,607,863,607,654,822,546,546,546, - 824,546,905,609,654,654,905,175,720,732, - 994,996,862,905,120,1078,1140,546,546,546, - 546,905,905,905,904,120,548,986,905,333, - 444,1160,1068,1068,735,862,795,795,990,1131, - 392,27,16,27,809,809,444,654,732,731, - 903,489,863,607,746,762,486,1361,437,437, - 554,443,444,863,905,449,449,447,447,447, - 454,454,454,454,454,454,452,452,461,456, - 456,464,463,465,607,607,466,732,1068,1131, - 813,824,607,908,824,842,842,840,822,842, - 654,654,752,821,732,996,63,903,732,862, - 862,862,862,546,546,988,905,903,548,732, - 1160,1068,662,735,862,862,994,783,27,951, - 951,332,654,1361,863,863,486,486,1361,1361, - 550,985,555,905,444,862,862,1068,1068,1068, - 862,1068,824,863,824,732,1128,732,840,1345, - 546,732,548,802,732,905,672,732,732,732, - 732,333,333,124,1068,988,814,546,443,1068, - 738,810,486,486,554,905,986,986,905,1068, - 333,863,320,824,752,824,654,1345,862,824, - 821,802,802,1111,732,732,124,392,1068,129, - 738,1036,905,905,905,1068,732,320,862,822, - 333,654,732,805,802,732,732,1125,1068,1068, - 546,187,905,905,824,732,654,805,805,175, - 175,1127,997,809,824,805,731,902,951 + 1315,1,1306,11,287,1353,687,687,687,1262, + 8,870,1314,94,853,736,1177,736,736,736, + 1190,200,1190,867,1190,878,1190,1190,94,856, + 1190,1171,814,3,1353,1250,1109,1190,1190,19, + 856,1190,856,736,750,103,103,424,103,637, + 200,872,326,872,856,854,14,734,527,1046, + 98,869,533,867,198,94,878,259,856,856, + 685,96,814,814,814,814,814,814,814,814, + 814,814,1111,814,1048,736,750,750,750,750, + 94,736,1190,557,557,634,571,203,203,1253, + 758,633,1250,1250,856,932,528,259,259,1190, + 470,528,1190,1190,750,1190,856,683,960,114, + 103,103,102,102,200,94,856,854,692,546, + 691,347,527,733,528,98,856,554,1163,552, + 685,200,538,856,259,685,856,679,1048,1048, + 1048,1048,1002,286,683,1190,528,528,528,774, + 939,793,793,287,287,287,287,856,483,531, + 531,483,813,557,200,94,571,426,1250,1190, + 856,813,1068,1250,571,679,1190,1190,259,259, + 1253,470,470,854,960,114,102,102,102,856, + 634,634,14,634,1364,1046,950,949,526,541, + 856,98,1161,870,750,852,1367,98,554,553, + 557,554,557,685,538,538,856,424,289,85, + 591,596,593,1048,401,399,406,404,408,407, + 409,473,410,423,856,96,856,528,528,528, + 528,470,286,813,1190,775,1253,956,211,210, + 689,600,598,607,605,609,608,610,611,696, + 1196,1196,94,1111,814,528,528,424,424,424, + 424,685,528,813,853,855,853,528,470,200, + 738,856,736,470,624,1250,1257,528,541,200, + 1250,571,1260,1190,424,424,1190,528,215,935, + 214,423,750,333,333,541,541,102,856,857, + 528,347,528,482,528,528,683,1369,557,557, + 557,557,856,538,540,742,540,59,72,72, + 72,72,54,94,814,814,814,814,814,814, + 814,747,814,814,814,814,814,814,814,814, + 814,814,814,813,813,813,813,813,813,813, + 813,813,813,813,813,814,793,679,1190,1190, + 1190,1069,814,287,1190,1190,528,774,1161,814, + 1161,634,773,736,736,736,775,736,856,887, + 634,634,856,200,939,528,958,960,813,814, + 814,814,814,814,814,814,814,814,814,814, + 814,813,813,813,813,813,813,813,813,813, + 813,813,1116,814,856,683,1200,1048,736,736, + 736,736,856,856,856,855,683,544,94,856, + 483,541,1068,1190,1190,561,813,212,212,954, + 1253,219,114,103,114,422,422,541,634,528, + 950,854,633,814,1161,572,752,630,1369,557, + 557,339,540,541,814,856,856,593,593,591, + 591,591,814,399,399,399,596,596,404,401, + 401,407,406,408,1161,409,528,1190,1253,764, + 775,1161,859,775,793,793,791,773,793,634, + 634,578,772,528,960,598,598,598,598,598, + 598,605,600,600,608,607,609,1161,1161,610, + 685,854,528,813,813,813,813,736,736,96, + 856,854,544,528,1068,1190,353,561,813,813, + 958,935,114,287,287,482,634,1369,814,814, + 630,630,1369,1369,738,149,340,856,541,685, + 862,813,1190,1190,1190,813,1190,775,814,775, + 528,1250,528,791,1353,736,528,544,580,528, + 813,813,856,363,528,528,528,528,483,483, + 1312,1190,96,765,736,540,1190,564,423,630, + 630,339,856,94,94,856,856,1190,483,814, + 470,775,578,775,634,1353,813,775,772,580, + 580,1233,528,528,1312,219,1190,154,564,324, + 856,856,856,1190,528,470,813,773,483,634, + 528,583,580,528,528,1247,1190,1190,736,333, + 856,856,775,528,634,583,583,200,200,1249, + 961,422,775,583,950,853,287 }; }; public final static char asb[] = Asb.asb; @@ -2488,144 +2928,145 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface Asr { public final static char asr[] = {0, - 129,0,10,74,67,79,0,42,45,0, - 112,113,114,74,81,9,10,3,12,11, - 8,41,69,66,88,68,14,15,30,5, - 32,16,17,49,28,18,63,33,34,19, - 35,36,20,21,37,38,22,23,39,64, - 40,13,65,24,31,25,29,26,27,6, - 7,4,1,2,45,0,9,4,45,8, - 1,2,0,14,15,30,32,16,17,49, - 28,18,63,33,88,34,19,35,36,20, - 21,37,66,38,22,23,39,64,40,13, - 65,24,68,31,25,29,26,3,12,4, - 41,27,69,67,10,5,11,6,7,9, - 45,1,2,8,0,3,29,0,76,77, - 71,46,47,12,11,43,44,8,48,54, - 62,27,3,4,9,59,60,61,42,57, - 52,56,14,15,17,26,16,22,20,21, - 23,24,19,18,25,13,51,55,53,50, - 58,81,1,2,67,10,0,70,0,5, - 10,67,6,7,80,0,78,80,75,1, - 2,0,14,15,30,5,32,16,17,49, - 28,50,76,18,51,63,33,34,52,19, - 35,36,20,21,37,77,9,38,53,22, - 23,54,39,55,64,56,71,57,40,58, - 13,65,24,31,25,29,26,59,60,61, - 42,2,3,46,47,12,43,44,8,48, - 78,4,27,62,6,7,1,11,0,79, - 3,78,96,80,75,73,41,72,74,10, - 67,6,7,5,0,76,77,3,13,51, - 55,53,50,58,17,26,16,22,20,21, - 23,24,19,18,25,14,15,59,60,61, - 42,57,52,56,8,9,4,46,47,12, - 11,43,44,48,54,62,27,1,2,127, - 10,0,5,78,74,96,127,81,41,6, - 7,75,14,15,16,17,50,76,18,51, - 52,19,20,21,77,9,53,22,23,54, - 55,56,71,57,58,13,24,25,26,59, - 60,61,2,3,46,47,12,11,43,44, - 8,48,4,27,62,42,73,10,1,0, - 10,74,73,42,0,10,74,75,73,3, - 0,14,15,30,5,32,16,17,49,28, - 18,63,33,34,19,35,36,20,21,37, - 38,22,23,39,64,40,13,65,24,31, - 25,29,26,1,2,4,27,6,7,96, - 0,4,6,7,5,70,10,74,67,0, - 1,2,75,81,10,0,98,97,11,99, - 100,43,44,95,94,70,101,102,109,110, - 103,104,12,105,106,107,78,73,80,117, - 118,119,120,121,122,123,124,125,126,74, - 96,127,81,108,116,6,7,5,10,41, - 75,0,127,41,75,73,10,74,0,10, - 75,73,1,28,0,14,15,30,5,32, - 16,17,28,18,33,34,19,35,36,20, + 129,0,11,76,67,79,0,41,54,0, + 3,28,0,11,76,74,41,0,29,78, + 77,42,43,106,107,102,103,8,47,80, + 66,113,114,110,111,112,118,117,119,84, + 83,115,116,100,101,96,97,104,108,44, + 45,99,126,13,63,62,64,65,17,26, + 16,22,20,21,23,24,19,18,25,14, + 15,32,38,39,34,37,36,31,33,27, + 28,30,35,40,75,73,5,12,10,6, + 7,3,70,1,2,4,0,123,124,125, + 76,81,9,11,3,12,10,8,46,71, + 68,90,69,14,15,30,5,32,16,17, + 62,27,18,63,33,34,19,35,36,20, + 21,37,38,22,23,39,64,54,40,13, + 65,24,25,28,26,29,6,7,1,2, + 4,31,0,77,78,72,44,45,12,10, + 42,43,8,47,52,61,29,3,4,9, + 58,59,60,41,56,50,55,14,15,17, + 26,16,22,20,21,23,24,19,18,25, + 13,49,53,51,48,57,81,1,2,67, + 11,0,5,79,76,46,67,6,7,3, + 70,75,80,73,11,74,98,0,14,15, + 30,5,32,16,17,62,27,18,63,33, + 34,19,35,36,20,21,37,38,22,23, + 39,64,40,13,65,24,31,25,28,26, + 1,2,4,29,6,7,98,0,48,77, + 49,50,78,9,51,52,53,55,72,56, + 57,58,59,60,41,44,45,12,10,42, + 43,8,47,75,61,3,29,4,13,1, + 2,63,64,65,14,15,17,26,16,22, + 20,21,23,24,19,18,25,32,38,39, + 34,37,36,31,33,27,28,30,5,7, + 6,35,40,62,0,5,11,67,6,7, + 80,0,75,80,73,1,2,0,31,1, + 2,4,123,124,125,0,11,73,74,1, + 27,0,72,79,128,126,44,45,76,98, + 127,81,33,34,35,36,37,9,38,39, + 40,31,28,1,2,70,3,27,32,8, + 4,5,30,6,7,105,99,42,43,106, + 107,120,121,10,74,46,67,11,84,83, + 66,96,97,100,101,12,102,103,104,108, + 109,110,111,112,113,114,115,116,117,118, + 119,80,73,75,0,77,78,3,13,49, + 53,51,48,57,17,26,16,22,20,21, + 23,24,19,18,25,14,15,58,59,60, + 41,56,50,55,8,9,4,44,45,12, + 10,42,43,47,52,61,29,1,2,127, + 11,0,5,75,76,98,127,81,46,6, + 7,73,14,15,16,17,48,77,18,49, + 50,19,20,21,78,9,51,22,23,52, + 53,55,72,56,57,13,24,25,26,58, + 59,60,2,3,44,45,12,10,42,43, + 8,47,4,29,61,41,1,74,11,0, + 9,8,54,1,2,4,0,1,2,73, + 81,11,0,122,0,11,76,73,74,3, + 0,4,66,6,7,5,11,76,67,0, + 30,27,28,72,79,75,76,98,74,67, + 3,5,11,73,46,6,7,80,0,30, + 27,28,72,11,75,98,80,73,74,0, + 105,99,10,106,107,42,43,84,83,66, + 96,97,120,121,100,101,12,102,103,104, + 75,74,80,110,111,112,113,114,115,116, + 117,118,119,76,98,127,81,108,109,6, + 7,5,73,46,11,0,14,15,30,32, + 16,17,62,27,18,63,33,90,34,19, + 35,36,20,21,37,68,38,22,23,39, + 64,40,13,65,24,69,31,25,28,26, + 3,12,4,46,29,71,67,11,5,10, + 6,7,9,8,1,2,54,0,127,46, + 73,74,11,76,0,14,15,30,5,32, + 16,17,27,18,33,34,19,35,36,20, 21,37,9,38,22,23,39,40,24,31, - 25,29,26,2,72,12,11,8,4,41, - 6,7,1,73,10,3,0,111,0,10, - 67,75,0,31,1,2,4,112,113,114, - 0,14,15,16,17,50,76,18,51,52, - 19,20,21,77,9,53,22,23,54,55, - 56,71,57,58,13,24,25,26,59,60, - 61,42,1,2,3,46,47,12,11,43, - 44,8,48,4,27,62,74,0,14,15, - 16,17,50,76,18,51,52,19,20,21, - 77,9,53,22,23,54,55,56,71,57, - 58,13,24,25,26,59,60,61,42,1, - 2,3,46,47,12,11,43,44,8,48, - 4,27,62,41,10,0,10,75,81,80, - 0,71,79,128,115,46,47,74,96,127, - 81,33,34,35,36,37,9,38,39,40, - 31,29,28,32,8,30,98,97,43,44, - 99,100,94,95,70,101,102,103,104,105, - 106,107,108,116,80,117,118,119,120,121, - 122,123,124,125,126,109,110,41,67,78, - 5,1,2,12,11,4,6,7,72,3, - 75,73,10,0,30,28,29,71,79,78, - 74,96,73,67,3,5,10,75,41,6, - 7,80,0,4,10,74,67,6,7,5, - 0,74,5,72,6,7,70,10,75,41, - 80,3,0,4,10,67,6,7,5,1, - 2,0,5,12,11,6,7,9,8,4, - 1,2,3,72,78,80,75,10,73,96, - 0,30,28,29,71,10,96,73,80,75, - 78,0,73,88,112,113,114,45,74,129, - 111,130,81,69,79,68,66,83,85,92, - 90,82,87,89,91,93,67,84,86,41, - 10,63,49,64,65,32,38,39,34,37, - 36,31,33,28,29,30,5,7,6,35, - 40,71,76,77,51,55,53,50,58,3, - 17,26,16,22,20,21,23,24,19,18, - 25,14,15,59,60,61,42,57,52,56, - 46,47,12,11,43,44,48,54,62,27, - 13,4,9,8,2,1,0,74,96,0, - 77,76,43,44,11,99,100,105,12,106, - 8,48,80,70,78,120,121,117,118,119, - 125,124,126,95,94,122,123,103,104,101, - 102,107,108,46,47,75,97,115,72,3, - 27,13,63,49,64,65,14,15,17,26, - 16,22,20,21,23,24,19,18,25,32, - 38,39,34,37,36,33,28,29,30,5, - 7,6,35,40,31,1,2,4,0,8, - 9,3,72,11,12,96,14,15,30,5, - 32,16,17,28,18,63,33,34,19,35, - 36,20,21,37,38,22,23,39,64,40, - 13,65,24,31,25,29,26,1,2,4, - 27,6,7,73,10,49,0,45,4,74, - 10,67,6,7,5,1,2,0,27,13, - 63,49,64,65,17,26,16,22,20,21, - 23,24,19,18,25,14,15,79,74,96, - 127,81,67,128,115,46,47,98,97,43, - 44,99,100,94,95,70,78,101,102,103, - 104,105,106,107,108,116,80,117,118,119, - 120,121,122,123,124,125,126,75,109,110, - 30,32,28,33,34,35,36,37,38,39, - 40,31,29,41,10,73,72,8,9,3, - 12,1,2,4,6,7,5,11,0,30, - 5,32,49,28,63,33,34,35,36,37, - 38,39,64,40,65,31,29,6,7,71, - 46,47,12,11,43,44,48,54,62,27, - 3,4,59,60,61,42,57,52,56,14, - 15,17,26,16,22,20,21,23,24,19, - 18,25,13,51,55,53,50,58,67,10, - 9,8,1,2,77,76,0,76,77,46, - 47,12,11,43,44,8,48,54,62,27, - 3,4,9,59,60,61,57,52,56,14, - 15,17,26,16,22,20,21,23,24,19, - 18,25,13,51,55,53,50,58,72,1, - 2,42,0,17,49,28,18,63,33,19, - 35,20,21,37,38,22,23,64,40,65, - 24,31,25,29,26,16,32,30,27,15, - 14,10,3,12,11,41,68,88,34,39, - 36,69,70,6,7,5,45,9,1,2, - 8,4,13,66,0,81,14,15,30,32, - 16,17,49,28,18,63,33,19,35,20, - 21,37,38,22,23,64,40,13,65,24, - 31,25,29,26,27,129,69,66,34,39, - 36,88,68,45,5,10,41,6,7,8, - 9,1,2,4,3,11,12,0,41,10, - 3,9,8,74,12,11,4,1,2,6, - 7,5,0 + 25,28,26,2,70,12,10,8,4,46, + 6,7,1,74,11,3,0,11,67,73, + 0,11,73,81,80,0,75,96,97,66, + 0,76,5,70,6,7,66,11,73,46, + 80,3,0,74,90,123,124,125,54,76, + 129,122,130,81,71,79,69,68,85,87, + 94,92,82,89,91,93,95,67,86,88, + 46,11,63,62,64,65,32,38,39,34, + 37,36,31,33,27,28,30,5,7,6, + 35,40,72,77,78,49,53,51,48,57, + 3,17,26,16,22,20,21,23,24,19, + 18,25,14,15,58,59,60,41,56,50, + 55,44,45,12,10,42,43,47,52,61, + 29,13,4,9,8,2,1,0,76,98, + 0,74,11,84,83,0,54,4,76,1, + 2,11,67,6,7,5,0,4,11,67, + 6,7,5,1,2,0,14,15,16,17, + 48,77,18,49,50,19,20,21,78,9, + 51,22,23,52,53,55,72,56,57,13, + 24,25,26,58,59,60,41,1,2,3, + 44,45,42,43,8,47,4,29,61,46, + 11,10,12,0,98,9,8,80,75,5, + 1,2,12,10,4,6,7,70,3,74, + 11,73,0,8,9,3,70,10,12,98, + 14,15,30,5,32,16,17,62,27,18, + 63,33,34,19,35,36,20,21,37,38, + 22,23,39,64,40,13,65,24,31,25, + 28,26,1,2,4,29,6,7,74,11, + 0,77,78,44,45,12,10,42,43,8, + 47,52,61,29,3,4,9,58,59,60, + 56,50,55,14,15,17,26,16,22,20, + 21,23,24,19,18,25,13,49,53,51, + 48,57,70,1,2,41,0,30,5,32, + 62,27,63,33,34,35,36,37,38,39, + 64,40,65,31,28,6,7,72,44,45, + 12,10,42,43,47,52,61,29,3,4, + 58,59,60,41,56,50,55,14,15,17, + 26,16,22,20,21,23,24,19,18,25, + 13,49,53,51,48,57,67,11,9,8, + 1,2,78,77,0,14,15,16,17,48, + 77,18,49,50,19,20,21,78,9,51, + 22,23,52,53,55,72,56,57,13,24, + 25,26,58,59,60,41,1,2,3,44, + 45,12,10,42,43,8,47,4,29,61, + 76,0,4,11,76,67,6,7,5,0, + 29,13,63,62,64,65,17,26,16,22, + 20,21,23,24,19,18,25,14,15,79, + 76,98,127,81,67,128,126,44,45,105, + 99,42,43,106,107,83,84,66,75,96, + 97,100,101,102,103,104,108,109,80,110, + 111,112,113,114,115,116,117,118,119,73, + 120,121,30,32,27,33,34,35,36,37, + 38,39,40,31,28,46,11,74,70,8, + 9,3,12,1,2,4,6,7,5,10, + 0,17,62,27,18,63,33,19,35,20, + 21,37,38,22,23,64,40,65,24,31, + 25,28,26,16,32,30,29,15,14,11, + 3,12,10,46,69,90,34,39,36,71, + 66,6,7,5,54,9,1,2,4,13, + 68,8,0,81,14,15,30,32,16,17, + 62,27,18,63,33,19,35,20,21,37, + 38,22,23,64,40,13,65,24,31,25, + 28,26,29,129,71,68,34,39,36,90, + 69,54,5,11,12,46,6,7,8,9, + 2,4,3,1,10,0,46,11,3,9, + 8,76,12,10,4,1,2,6,7,5, + 0 }; }; public final static char asr[] = Asr.asr; @@ -2633,69 +3074,75 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface Nasb { public final static char nasb[] = {0, - 279,13,14,55,5,307,13,13,13,295, - 13,149,295,66,66,13,259,13,13,13, - 260,237,260,144,260,144,260,13,11,156, - 260,252,62,225,137,220,173,13,13,213, - 288,13,156,13,13,295,295,13,295,197, - 237,144,13,274,203,203,117,192,200,13, - 225,291,66,274,72,66,274,225,156,12, + 288,13,21,19,5,319,13,13,13,301, + 13,170,301,238,238,13,274,13,13,13, + 275,250,275,163,275,163,275,13,11,240, + 275,267,62,154,156,233,195,13,13,48, + 180,13,240,13,13,301,301,13,301,224, + 250,163,13,286,277,277,42,35,74,13, + 154,210,238,286,16,238,286,154,240,12, 13,13,62,62,62,62,62,62,62,62, - 62,62,156,284,262,13,13,13,13,13, - 66,13,13,225,135,165,144,91,91,302, - 57,13,169,268,156,13,192,225,225,104, - 102,192,13,13,13,13,12,53,225,225, - 295,295,225,225,237,66,228,173,192,13, - 13,133,39,13,192,239,292,144,144,13, - 203,237,225,203,27,22,292,16,262,262, - 262,262,62,107,53,13,192,192,192,119, - 178,1,264,32,32,32,32,156,75,42, - 42,75,210,135,187,35,274,97,169,274, - 156,48,60,138,144,276,144,144,27,27, - 302,102,102,173,184,184,279,279,225,203, - 165,165,117,165,13,117,192,13,192,120, - 156,165,13,227,13,14,306,239,144,144, - 225,274,225,22,225,289,12,13,13,13, - 13,13,13,13,13,13,13,13,62,13, - 13,292,13,12,192,192,192,192,102,32, - 48,235,194,302,177,91,91,13,13,13, - 13,11,156,62,192,192,13,13,13,13, - 52,192,62,172,156,172,192,102,187,13, - 203,13,102,13,269,144,192,225,237,268, - 274,13,225,13,13,248,192,13,218,13, - 13,13,81,81,120,120,279,228,13,192, - 133,192,62,192,192,53,137,225,225,109, - 109,292,289,83,13,13,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62, - 62,62,62,62,62,62,62,62,159,62, - 27,16,235,235,235,230,62,32,225,78, - 192,206,13,122,13,165,13,13,13,13, - 207,13,289,163,165,165,289,146,246,192, - 300,225,62,156,53,13,262,13,13,13, - 13,292,12,156,88,53,225,35,12,75, - 120,225,144,93,225,62,13,13,217,302, - 184,184,295,225,13,13,120,165,192,192, - 173,165,62,13,25,13,144,268,109,109, - 152,83,120,62,289,13,13,13,13,13, + 62,62,240,176,150,13,13,13,13,13, + 238,13,13,154,120,208,163,68,68,328, + 14,13,191,280,240,13,35,154,154,37, + 96,35,13,13,13,13,12,46,154,154, + 301,301,154,154,250,238,174,195,35,13, + 13,89,34,13,35,311,211,163,163,13, + 277,250,154,277,23,31,211,104,150,150, + 150,150,62,98,46,13,35,35,35,86, + 166,1,152,339,339,339,339,240,183,114, + 114,183,153,120,140,55,286,91,191,286, + 240,83,60,157,163,227,163,163,23,23, + 328,96,96,195,308,308,288,288,154,277, + 208,208,42,208,13,42,35,13,35,87, + 240,208,13,173,13,21,318,311,163,163, + 154,286,154,31,154,181,12,13,199,166, + 13,13,13,145,13,13,13,13,13,13, + 13,62,13,13,211,13,12,35,35,35, + 35,96,339,83,248,214,328,165,68,68, 13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,192,95,248, - 13,207,13,13,207,318,318,182,13,318, - 165,165,13,225,192,184,51,292,192,210, - 210,210,210,13,13,13,288,292,68,192, - 60,225,93,93,62,62,300,167,184,32, - 32,62,165,138,62,62,274,144,268,13, - 13,66,111,203,120,62,62,225,20,13, - 210,248,207,62,207,192,220,192,314,225, - 13,192,68,225,192,292,235,192,192,192, - 192,75,75,89,13,13,70,13,120,93, - 225,13,144,274,113,203,66,66,12,95, - 75,62,102,207,13,207,165,138,210,207, - 70,93,225,13,192,192,89,32,129,59, - 131,13,12,203,203,20,192,102,62,13, - 85,165,192,225,93,192,192,225,129,13, - 13,81,12,12,207,192,165,131,225,146, - 146,218,190,13,207,131,192,172,32 + 13,13,11,240,62,35,35,13,13,13, + 13,45,35,62,194,240,194,35,96,140, + 13,277,13,96,13,281,163,35,154,250, + 280,286,13,154,13,13,334,35,13,231, + 13,13,13,77,77,87,87,288,174,13, + 35,89,35,62,35,35,46,156,154,154, + 100,100,211,181,108,13,13,274,275,275, + 275,275,293,11,62,62,62,62,62,62, + 62,13,62,62,62,62,62,62,62,62, + 62,62,62,62,62,62,62,62,62,62, + 62,62,62,62,153,62,23,104,248,248, + 248,243,62,339,154,126,35,220,13,133, + 13,208,13,13,13,13,221,13,181,206, + 208,208,181,52,332,35,326,154,62,62, + 62,62,62,62,62,62,62,62,62,62, + 62,62,62,62,62,62,62,62,62,62, + 62,62,259,62,240,46,13,150,13,13, + 13,13,211,12,240,186,46,154,55,12, + 183,87,154,163,70,154,62,13,13,230, + 328,308,308,301,154,13,13,87,208,35, + 35,195,208,62,13,124,13,163,280,100, + 100,79,108,87,62,181,240,13,13,13, + 13,13,62,13,13,13,13,13,13,13, + 13,13,13,13,13,13,35,40,334,13, + 221,13,13,221,263,263,306,13,263,208, + 208,13,154,35,308,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13, + 44,211,35,153,153,153,153,13,13,13, + 180,211,131,35,60,154,70,70,62,62, + 326,189,308,339,339,62,208,157,62,62, + 286,163,280,13,13,238,72,277,87,31, + 35,62,154,102,13,153,334,221,62,221, + 35,233,35,252,154,13,35,131,154,35, + 62,62,211,248,35,35,35,35,183,183, + 187,13,13,129,13,87,70,154,13,163, + 286,110,277,238,238,12,211,40,183,62, + 96,221,13,221,208,157,153,221,129,70, + 154,13,35,35,187,339,143,59,122,13, + 12,277,277,102,35,96,62,13,256,208, + 35,154,70,35,35,154,143,13,13,77, + 12,12,221,35,208,122,154,52,52,231, + 338,13,221,122,35,194,339 }; }; public final static char nasb[] = Nasb.nasb; @@ -2703,38 +3150,40 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface Nasr { public final static char nasr[] = {0, - 3,13,10,9,164,189,162,132,161,160, - 5,2,0,169,0,78,150,149,0,153, - 0,2,78,0,207,0,5,10,9,2, - 13,4,49,0,182,5,181,0,30,187, - 0,5,2,9,10,151,0,4,35,0, - 2,126,78,0,218,0,200,0,89,96, - 39,13,2,9,10,5,0,174,0,125, - 0,39,1,0,4,104,0,4,193,0, - 117,0,166,0,4,194,0,2,127,0, - 90,0,71,0,155,0,13,2,9,10, - 5,91,0,4,211,0,191,0,119,0, - 209,0,5,109,178,0,147,0,4,89, - 0,13,2,9,10,5,220,0,175,0, - 138,0,185,0,172,0,98,4,5,10, - 9,2,68,41,0,39,61,0,41,1, - 0,5,109,208,0,2,60,0,4,45, - 126,0,4,45,46,0,102,101,41,68, - 70,5,10,9,2,0,30,101,102,4, - 0,45,197,23,4,0,39,173,0,49, - 4,30,0,52,45,195,39,4,0,217, - 30,0,2,69,0,89,39,52,79,4, - 45,0,4,49,212,0,30,102,101,68, - 5,2,9,10,4,0,41,113,0,5, - 10,9,2,13,96,95,39,0,4,52, - 76,109,50,5,0,102,101,41,5,70, - 0,2,5,132,128,129,130,148,13,92, - 0,39,61,4,49,45,0,4,5,10, - 9,2,68,24,0,41,78,0,112,76, - 52,4,0,5,10,9,13,3,1,0, - 60,2,3,0,4,52,76,86,0,23, - 4,5,41,98,0,46,5,2,9,10, - 4,171,0,49,4,196,0,4,49,111, + 3,13,10,9,149,204,148,121,147,146, + 4,2,0,215,0,36,1,0,234,0, + 181,0,4,10,9,2,13,140,5,0, + 2,89,0,202,32,0,5,226,0,172, + 0,164,0,2,143,89,0,5,54,227, + 0,36,56,0,194,4,193,0,102,105, + 36,13,2,9,10,4,0,101,0,63, + 0,224,0,233,32,0,131,0,4,123, + 223,0,5,33,0,5,102,0,200,0, + 13,2,9,10,4,103,0,206,0,133, + 0,170,0,89,167,166,0,178,0,4, + 123,190,0,4,2,9,10,168,0,184, + 0,156,0,222,0,5,208,0,142,0, + 186,0,13,2,9,10,4,236,0,36, + 185,0,187,0,13,2,9,10,4,36, + 56,54,41,5,0,107,5,4,10,9, + 2,73,38,0,32,109,110,5,0,38, + 1,0,38,127,0,4,10,9,13,3, + 1,0,5,113,0,2,144,0,110,109, + 38,73,83,4,10,9,2,0,149,228, + 148,121,147,146,0,5,41,47,0,53, + 2,3,0,5,51,36,41,210,0,102, + 41,51,91,36,5,0,38,89,0,32, + 110,109,73,2,9,10,5,4,0,2, + 53,0,4,10,9,2,13,105,104,36, + 0,54,5,211,0,5,209,0,5,41, + 143,0,5,54,125,0,2,4,121,118, + 119,120,165,13,79,0,2,82,0,5, + 4,10,9,2,73,27,0,126,88,51, + 5,0,121,79,13,118,119,120,198,0, + 5,51,88,98,0,41,212,31,5,0, + 5,51,88,123,49,4,0,47,4,2, + 9,10,5,183,0,31,5,4,38,107, + 0,110,109,38,4,83,0,32,5,54, 0 }; }; @@ -2743,19 +3192,19 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface TerminalIndex { public final static char terminalIndex[] = {0, - 118,119,2,31,51,129,130,13,84,120, - 10,9,105,48,49,53,57,65,73,79, - 80,91,92,107,110,112,127,59,111,50, + 118,119,2,31,51,129,130,13,84,10, + 120,9,105,48,49,53,57,65,73,79, + 80,91,92,107,110,112,59,111,127,50, 109,52,69,71,75,78,81,88,94,103, - 125,117,11,12,98,7,8,14,58,60, - 66,72,89,93,95,99,102,104,114,115, - 116,128,68,96,106,82,126,108,131,19, - 100,1,123,30,44,63,83,20,101,33, - 124,113,54,55,61,62,64,70,74,76, - 77,90,97,17,18,32,6,4,15,16, - 21,22,23,24,25,26,27,28,45,46, - 56,85,86,87,5,29,34,35,36,37, - 38,39,40,41,42,43,122,3,132,67, + 117,11,12,7,8,125,14,60,66,72, + 89,93,95,98,99,102,104,114,115,116, + 128,58,68,96,106,19,126,82,108,1, + 131,100,44,123,20,30,63,83,101,33, + 124,113,17,18,54,55,61,62,64,70, + 74,76,77,90,97,21,22,32,6,23, + 24,25,26,27,4,15,16,28,29,34, + 35,36,37,38,39,40,41,42,43,45, + 46,56,85,86,87,5,122,3,132,67, 121 }; }; @@ -2764,29 +3213,31 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 138,143,144,0,0,142,0,0,238,244, + 138,143,144,0,0,142,0,0,246,252, 141,0,151,0,140,0,0,150,156,0, - 0,157,188,253,0,0,0,166,167,134, - 168,169,170,171,159,172,173,174,137,175, - 254,176,0,149,139,136,177,0,160,185, - 0,0,146,0,0,0,0,0,0,145, - 180,153,0,212,0,0,209,213,0,163, - 195,183,0,0,0,0,0,0,179,0, - 0,0,0,0,0,186,0,0,135,214, - 133,194,0,0,226,0,165,210,220,216, - 217,218,0,0,154,0,0,215,229,0, - 182,187,204,0,0,219,0,0,0,233, - 0,235,0,249,250,0,155,197,198,199, - 200,201,203,0,206,0,207,0,222,225, - 228,0,247,0,248,0,258,261,147,148, - 152,0,0,162,164,0,178,0,189,190, - 191,192,193,196,0,0,0,202,0,205, - 211,0,223,224,0,0,230,237,0,241, - 242,243,246,0,255,0,257,0,260,0, - 0,158,161,0,181,0,184,0,0,208, - 221,227,0,0,231,232,234,236,0,239, - 240,245,251,252,0,0,256,0,0,259, - 0,0,0 + 0,157,166,167,168,169,264,0,0,0, + 196,134,159,0,170,137,171,265,172,173, + 139,149,174,175,176,0,136,177,193,0, + 0,146,145,160,178,188,0,0,0,0, + 0,0,203,179,180,0,220,0,0,181, + 182,217,221,153,183,184,0,185,202,0, + 0,0,163,191,0,0,0,0,0,0, + 187,0,0,0,0,0,0,194,0,0, + 222,135,133,234,0,165,218,224,225,226, + 0,228,0,154,0,0,223,205,206,207, + 209,236,237,0,190,195,212,0,0,227, + 0,0,0,241,0,243,0,257,0,260, + 0,261,0,155,197,198,199,200,204,208, + 211,0,214,0,215,0,230,233,0,255, + 0,256,0,269,272,147,148,152,0,0, + 162,164,0,186,0,201,0,0,0,210, + 0,213,219,0,231,232,0,0,238,245, + 0,249,250,251,254,0,0,258,0,266, + 0,268,0,271,0,0,158,161,0,189, + 0,192,0,0,216,229,235,0,0,239, + 240,242,244,0,247,248,253,259,262,263, + 0,0,267,0,0,270,0,0,0,0, + 0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2794,21 +3245,22 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopePrefix { public final static char scopePrefix[] = { - 250,414,710,729,403,432,661,677,688,699, - 499,358,372,389,452,118,383,519,557,258, - 718,604,96,127,147,156,161,166,221,286, - 445,460,465,71,235,364,378,632,103,235, - 509,465,737,103,308,339,7,39,39,63, - 67,79,90,137,152,182,470,488,492,575, - 597,626,653,657,747,751,755,173,83,173, - 537,553,566,584,645,192,192,320,410,566, - 668,684,695,706,298,615,19,31,60,132, - 132,247,313,13,132,334,355,13,13,132, - 496,594,601,247,132,770,1,13,54,186, - 474,541,581,1,132,201,395,474,201,201, - 422,528,268,422,24,24,45,180,45,45, - 45,45,579,759,766,24,24,49,329,759, - 766,141,547,228,180,329,180,344 + 265,429,731,750,418,447,682,698,709,720, + 501,373,387,404,465,133,398,521,559,273, + 739,625,98,111,142,162,171,176,181,236, + 301,460,471,98,593,71,250,379,393,653, + 118,250,511,98,758,118,323,354,7,39, + 39,63,67,79,90,105,152,167,197,105, + 490,494,577,618,647,674,678,768,772,776, + 188,83,188,539,555,568,586,605,666,207, + 207,335,425,568,689,705,716,727,313,636, + 19,31,60,147,147,262,328,13,147,349, + 370,13,13,147,498,615,622,262,147,791, + 1,13,54,201,476,543,583,1,598,147, + 216,410,476,216,216,437,530,283,437,24, + 24,45,45,195,45,45,45,45,581,780, + 787,24,24,49,344,780,787,156,549,243, + 195,344,195,359 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2816,21 +3268,22 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeSuffix { public final static char scopeSuffix[] = { - 94,226,43,43,226,226,43,43,43,43, - 506,226,171,226,458,124,369,525,563,264, - 143,610,101,101,101,135,135,171,226,291, - 450,450,458,76,240,369,177,637,114,243, - 514,724,742,108,302,302,11,43,43,43, - 43,43,94,43,135,171,450,171,171,226, - 337,43,43,43,43,43,337,768,87,177, - 506,506,506,588,637,196,210,324,398,570, - 672,672,672,672,302,619,22,22,43,135, - 135,43,43,316,318,337,43,11,11,318, - 171,43,337,43,630,43,4,16,57,189, - 477,544,57,591,649,196,398,640,204,215, - 439,531,271,425,29,37,47,171,480,482, - 484,486,171,761,761,26,34,51,331,763, - 763,143,549,230,293,324,278,346 + 94,241,43,43,241,241,43,43,43,43, + 508,241,186,241,103,139,384,527,565,279, + 158,631,103,116,116,116,150,150,186,241, + 306,109,109,103,43,76,255,384,192,658, + 129,258,516,745,763,123,317,317,11,43, + 43,43,43,43,94,109,43,150,186,109, + 186,186,241,352,43,43,43,43,43,352, + 789,87,192,508,508,508,590,609,658,211, + 225,339,413,572,693,693,693,693,317,640, + 22,22,43,150,150,43,43,331,333,352, + 43,11,11,333,186,43,352,43,651,43, + 4,16,57,204,479,546,57,612,601,670, + 211,413,661,219,230,454,533,286,440,29, + 37,47,96,186,482,484,486,488,186,782, + 782,26,34,51,346,784,784,158,551,245, + 308,339,293,361 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2838,21 +3291,22 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 50,130,18,18,75,130,18,18,18,18, - 82,88,51,75,129,73,57,82,81,50, - 18,20,3,7,8,178,178,177,128,50, - 129,129,131,25,95,58,51,151,144,95, - 82,18,18,144,103,63,72,148,19,19, - 184,146,85,181,178,177,131,198,55,61, - 155,19,18,18,18,18,18,12,125,177, - 82,81,81,43,151,141,141,70,75,81, - 18,18,18,18,103,20,120,137,17,182, - 178,200,101,108,65,90,64,171,72,131, - 83,156,155,191,151,17,18,72,80,177, - 131,111,80,22,151,141,75,151,141,141, - 130,82,50,130,120,137,189,177,163,162, - 161,160,77,149,60,120,137,220,70,149, - 60,181,111,128,50,70,50,63 + 49,120,18,18,87,120,18,18,18,18, + 94,100,50,87,119,85,60,94,93,49, + 18,20,198,3,7,8,190,190,189,118, + 49,119,119,150,55,28,104,61,50,168, + 161,104,94,18,18,161,111,66,84,165, + 19,19,199,163,97,198,193,190,189,150, + 213,58,56,172,19,18,18,18,18,18, + 12,142,189,94,93,93,77,46,168,122, + 122,83,87,93,18,18,18,18,111,20, + 134,155,17,194,190,215,109,117,68,101, + 67,183,84,150,95,173,172,206,168,17, + 18,84,92,189,150,125,92,22,55,168, + 122,87,168,122,122,120,94,49,120,134, + 155,204,228,189,176,148,147,146,90,166, + 53,134,155,236,83,166,53,193,125,118, + 49,83,49,66 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2860,21 +3314,22 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeLa { public final static char scopeLa[] = { - 111,81,73,73,81,81,73,73,73,73, - 73,81,41,81,1,78,1,73,130,67, - 3,73,78,78,78,1,1,41,81,67, - 1,1,1,73,81,1,1,4,78,75, - 41,1,1,78,73,73,1,73,73,73, - 73,73,111,73,1,41,1,41,41,81, - 127,73,73,73,73,73,127,1,73,1, - 73,73,73,74,4,1,1,11,67,73, - 78,78,78,78,73,3,6,6,73,1, - 1,73,73,3,1,127,73,1,1,1, - 41,73,127,73,8,73,73,6,74,1, - 45,80,74,73,1,1,67,45,1,1, - 67,82,79,1,1,1,27,41,1,63, - 49,49,41,4,4,1,1,96,12,4, - 4,3,1,67,1,11,1,3 + 122,81,74,74,81,81,74,74,74,74, + 74,81,46,81,1,75,1,74,130,67, + 3,74,1,75,75,75,1,1,46,81, + 67,1,1,1,74,74,81,1,1,4, + 75,73,46,1,1,75,74,74,1,74, + 74,74,74,74,122,1,74,1,46,1, + 46,46,81,127,74,74,74,74,74,127, + 1,74,1,74,74,74,76,76,4,1, + 1,10,67,74,75,75,75,75,74,3, + 6,6,74,1,1,74,74,3,1,127, + 74,1,1,1,46,74,127,74,8,74, + 74,6,76,1,54,80,76,74,75,1, + 1,67,54,1,1,67,82,79,1,1, + 1,29,1,46,1,63,62,62,46,4, + 4,1,1,98,12,4,4,3,1,67, + 1,10,1,3 }; }; public final static char scopeLa[] = ScopeLa.scopeLa; @@ -2882,21 +3337,22 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeStateSet { public final static char scopeStateSet[] = { - 371,156,233,233,398,156,233,233,233,233, - 91,385,371,398,156,398,373,91,91,371, - 233,233,160,204,204,21,21,410,156,371, - 156,156,156,310,42,373,371,55,38,42, - 91,233,233,38,72,132,138,156,233,233, - 63,1,91,52,21,410,156,36,373,80, - 18,233,233,233,233,233,233,208,8,410, - 91,91,91,271,55,156,156,355,398,91, - 233,233,233,233,72,233,148,104,233,52, - 21,66,72,74,132,68,132,153,138,156, - 91,5,18,58,55,233,233,138,91,410, - 156,13,91,238,55,156,398,55,156,156, - 156,91,371,156,148,104,157,410,157,157, - 157,157,24,60,108,148,104,308,355,60, - 108,52,13,156,371,355,371,132 + 441,367,266,266,468,367,266,266,266,266, + 121,455,441,468,367,468,443,121,121,441, + 266,266,38,191,237,237,21,21,480,367, + 441,367,367,187,66,373,45,443,441,58, + 41,45,121,266,266,41,100,163,169,187, + 266,266,91,1,121,38,55,21,480,187, + 36,443,109,18,266,266,266,266,266,266, + 241,8,480,121,121,121,74,332,58,367, + 367,425,468,121,266,266,266,266,100,266, + 179,134,266,55,21,94,100,102,163,96, + 163,184,169,187,121,5,18,61,58,266, + 266,169,121,480,187,13,121,271,66,58, + 367,468,58,367,367,367,121,441,367,179, + 134,370,39,480,370,369,369,369,24,63, + 138,179,134,365,425,63,138,55,13,367, + 441,425,441,163 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2904,84 +3360,86 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 193,3,0,134,226,0,172,229,135,0, - 209,0,229,135,0,254,209,0,251,172, - 0,254,0,172,0,233,254,0,233,0, - 203,172,0,183,254,0,183,0,193,3, - 27,0,134,0,295,0,261,0,228,0, - 32,165,0,351,84,0,30,179,0,192, - 3,0,193,3,62,0,347,3,316,0, - 346,3,3,6,0,134,134,0,345,3, - 71,0,344,3,111,0,134,180,0,135, - 192,79,0,224,0,273,135,70,133,0, - 20,0,314,135,70,45,0,20,58,0, - 33,140,0,20,58,0,0,314,135,70, - 45,207,0,20,186,0,273,135,70,141, - 0,200,136,0,149,0,235,3,313,0, - 313,0,2,0,134,0,273,135,70,140, - 0,200,136,240,0,200,136,31,240,0, - 200,136,340,31,0,137,209,191,136,0, - 136,0,209,191,136,0,142,136,0,183, - 0,336,135,183,0,135,183,0,231,136, - 0,191,335,263,0,144,0,0,0,0, - 335,263,0,145,144,0,0,0,0,143, - 0,0,0,0,145,143,0,0,0,0, - 334,135,170,272,0,135,0,272,0,137, - 0,0,135,0,333,135,170,227,0,135, - 0,0,44,135,0,0,166,3,0,135, - 304,303,135,79,302,183,0,303,135,79, - 302,183,0,223,0,224,0,302,183,0, - 101,0,0,223,0,224,0,211,101,0, - 0,223,0,224,0,303,135,302,183,0, - 223,0,211,0,0,223,0,245,135,3, - 0,134,0,0,0,0,0,245,135,3, - 232,0,239,3,0,216,0,154,0,197, - 191,136,0,10,0,0,0,0,197,0, - 9,0,0,228,72,0,133,0,245,135, - 3,195,0,195,0,2,0,0,134,0, - 0,0,0,0,203,3,0,241,135,170, - 42,34,0,200,136,66,68,0,204,136, - 0,137,200,136,300,68,0,200,136,300, - 68,0,200,136,80,132,66,0,241,135, - 170,265,66,0,265,66,0,137,0,0, - 135,0,241,135,170,265,244,66,0,265, - 244,66,0,297,298,135,170,132,330,63, - 0,330,63,0,138,137,0,0,0,135, - 0,297,298,135,170,330,63,0,137,0, - 0,0,135,0,200,136,296,63,0,143, - 0,209,200,136,296,263,0,144,0,200, - 136,296,263,0,209,191,136,13,0,191, - 136,13,0,191,136,0,98,144,0,200, - 0,199,0,198,0,197,0,289,135,154, - 0,289,135,183,0,176,92,0,325,177, - 327,328,3,89,0,134,179,0,327,328, - 3,89,0,136,0,134,179,0,176,3, - 82,210,87,0,134,136,0,210,87,0, - 113,2,139,134,136,0,242,3,82,0, - 203,180,0,33,177,0,180,0,183,33, - 177,0,242,3,93,0,210,161,242,3, - 91,0,67,179,0,242,3,91,0,134, - 179,67,179,0,326,135,170,0,176,0, - 228,84,0,176,116,173,0,30,177,0, - 134,157,0,235,3,0,228,72,286,0, - 176,72,0,193,3,322,77,136,0,134, - 0,0,0,0,322,77,136,0,2,153, - 134,0,0,0,0,193,3,54,0,155, - 0,134,45,191,136,0,31,155,0,98, - 144,31,155,0,236,200,136,0,154,31, - 155,0,193,3,58,0,176,3,58,0, - 176,3,78,193,70,50,0,193,70,50, - 0,20,2,139,134,0,176,3,78,193, - 70,53,0,193,70,53,0,176,3,78, - 193,70,55,0,193,70,55,0,176,3, - 78,193,70,51,0,193,70,51,0,235, - 3,134,209,191,136,13,0,134,209,191, - 136,13,0,144,2,0,134,0,235,3, - 133,257,191,136,13,0,257,191,136,13, - 0,143,2,0,134,0,235,3,144,0, - 235,3,149,0,176,72,149,0,281,0, - 31,0,31,147,0,184,0,142,0,176, - 3,0 + 205,3,0,134,234,0,169,238,136,0, + 217,0,238,136,0,265,217,0,265,169, + 0,265,0,169,0,241,265,0,241,0, + 215,169,0,191,265,0,191,0,205,3, + 29,0,134,0,280,0,272,0,237,0, + 32,165,0,367,86,0,30,187,0,187, + 3,0,205,3,61,0,363,3,331,0, + 362,3,3,6,0,134,134,0,361,3, + 72,0,360,3,122,0,134,188,0,136, + 187,79,0,232,0,258,0,220,184,135, + 13,0,144,0,184,135,13,0,143,0, + 290,136,66,133,0,20,0,326,136,66, + 54,0,20,58,0,33,140,0,20,58, + 0,0,326,136,66,54,219,0,20,194, + 0,290,136,66,141,0,213,135,0,149, + 0,244,3,325,0,325,0,2,0,134, + 0,290,136,66,140,0,213,135,254,0, + 213,135,31,254,0,213,135,355,31,0, + 137,220,184,135,0,136,0,220,184,135, + 0,142,136,0,182,0,351,136,182,0, + 136,182,0,239,136,0,184,350,252,0, + 144,0,0,0,0,350,252,0,145,144, + 0,0,0,0,143,0,0,0,0,145, + 143,0,0,0,0,349,136,167,253,0, + 135,0,253,0,137,0,0,135,0,348, + 136,167,236,0,135,0,0,44,135,0, + 0,164,3,0,136,316,315,136,79,314, + 182,0,315,136,79,314,182,0,231,0, + 232,0,314,182,0,101,0,0,231,0, + 232,0,219,101,0,0,231,0,232,0, + 315,136,314,182,0,231,0,219,0,0, + 231,0,259,136,3,0,134,0,0,0, + 0,0,259,136,3,240,0,248,3,0, + 224,0,154,0,200,184,135,0,10,0, + 0,0,0,200,0,9,0,0,237,70, + 0,133,0,259,136,3,198,0,198,0, + 2,0,0,134,0,0,0,0,0,215, + 3,0,255,136,167,41,34,0,213,135, + 68,69,0,212,136,0,137,213,135,312, + 69,0,213,135,312,69,0,213,135,80, + 132,68,0,255,136,167,283,68,0,283, + 68,0,137,0,0,135,0,255,136,167, + 283,258,68,0,283,258,68,0,309,310, + 136,167,132,345,63,0,345,63,0,138, + 137,0,0,0,135,0,309,310,136,167, + 345,63,0,137,0,0,0,135,0,213, + 135,308,63,0,220,213,135,308,252,0, + 213,135,308,252,0,184,135,0,98,144, + 0,208,0,207,0,206,0,205,0,306, + 136,162,0,306,136,182,0,172,94,0, + 340,178,342,343,3,91,0,134,187,0, + 342,343,3,91,0,136,0,134,187,0, + 172,3,82,222,89,0,134,136,0,222, + 89,0,113,2,139,134,136,0,256,3, + 82,0,215,185,0,33,177,0,185,0, + 191,33,177,0,256,3,95,0,222,163, + 256,3,93,0,67,187,0,256,3,93, + 0,134,187,67,187,0,341,136,167,0, + 172,0,237,86,0,172,109,207,0,30, + 185,0,157,75,186,3,0,186,3,0, + 20,169,134,0,172,109,176,0,30,177, + 0,134,157,0,244,3,0,237,70,303, + 0,172,70,0,205,3,337,78,135,0, + 134,0,0,0,0,337,78,135,0,2, + 153,134,0,0,0,0,205,3,52,0, + 155,0,134,54,184,135,0,31,155,0, + 98,144,31,155,0,245,213,135,0,154, + 31,155,0,205,3,57,0,172,3,57, + 0,172,3,75,205,66,48,0,205,66, + 48,0,20,2,139,134,0,172,3,75, + 205,66,51,0,205,66,51,0,172,3, + 75,205,66,53,0,205,66,53,0,172, + 3,75,205,66,49,0,205,66,49,0, + 244,3,134,220,184,135,13,0,134,220, + 184,135,13,0,144,2,0,134,0,244, + 3,133,274,184,135,13,0,274,184,135, + 13,0,143,2,0,134,0,244,3,144, + 0,244,3,149,0,172,70,149,0,298, + 0,31,0,31,147,0,183,0,142,0, + 172,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2989,48 +3447,55 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 3216,3199,2685,0,830,717,0,2796,1327,1258, - 1208,0,6339,6420,6396,6364,0,3080,1619,0, - 1737,2936,0,4707,4644,4581,4518,4455,4392,4329, - 4266,4203,4140,3919,3593,3311,0,5118,1569,4485, - 0,1124,3956,1074,4117,3584,3546,3511,3386,1223, - 0,919,835,0,1465,906,0,1692,0,1118, - 656,0,654,2746,0,1069,0,2278,2140,1637, - 1507,3156,4269,665,3981,3655,3269,3631,0,3483, - 3200,6288,2867,3762,3480,6252,5713,5260,4830,4810, - 4707,4644,4581,4518,4455,4392,4329,4266,4203,4140, - 3919,3593,0,3203,3317,2809,0,6403,6391,6377, - 6329,6009,5970,6307,6303,5652,5884,5225,5839,4108, - 5061,5057,4804,3708,678,5646,4401,3886,3474,2975, - 0,3156,5803,6230,4913,4817,3184,665,3203,6201, - 3981,3655,5072,3317,5044,1278,2809,3562,3489,3461, - 2996,0,6230,3184,0,4769,615,2924,0,3536, - 2706,6403,6391,2613,2548,6377,2399,6329,2257,2209, - 2110,1272,1461,6009,2012,5970,1963,6307,6303,5652, - 5085,1816,5884,5225,5839,4108,1215,5061,5057,739, - 2306,4804,3708,1247,678,5646,4401,3886,3474,723, - 4769,2975,2924,3169,2984,1058,751,2853,665,3203, - 6201,3562,3489,3156,3461,3981,2996,3655,5072,5803, - 2837,1530,6230,3317,4913,1465,906,5044,4817,1278, - 2809,3184,5781,5606,5584,5562,5540,5517,4117,2882, - 1173,3119,682,3427,3390,3276,4085,4012,3896,3863, - 3830,3797,3764,3685,5193,5169,5145,5014,4984,5494, - 5471,5448,5425,5402,5375,5352,5329,5235,4950,3090, - 2476,1124,2755,2711,2425,2376,2662,2618,1593,1543, - 1481,1074,2569,2525,1408,2327,991,2234,2185,2136, - 2087,2038,1989,1940,1891,1842,1793,1744,1292,1359, - 1688,928,843,1223,1643,615,780,2283,0,3203, - 3238,5286,3562,4902,3051,3489,3461,4524,5823,2988, - 5072,4907,5803,2617,4713,4273,4035,4709,4651,5065, - 4398,3317,2475,1743,615,3306,869,5044,3926,1331, - 1123,1018,4039,4769,2956,2710,3595,1433,4646,955, - 807,2939,2933,2924,4520,3156,6255,2800,4457,6220, - 4269,2996,4583,4394,4209,4913,4817,3479,2809,0, - 5658,4154,4707,4644,4581,4518,4455,4392,4329,4266, - 4203,4140,3919,3593,6141,5822,5668,5628,6102,6063, - 6024,5985,5946,5907,5865,5216,0,6141,5822,5668, - 5628,6102,6063,6024,5985,5946,5907,5865,5216,5658, - 4154,0 + 2089,2077,2003,0,2154,1759,0,2894,2105,2563, + 2552,0,5782,6413,6317,6250,0,1385,998,0, + 1824,1485,0,6306,6239,6172,6105,6038,5971,5904, + 5837,5770,5703,5303,5101,6999,0,6853,4773,0, + 6960,6978,5947,0,1245,2364,1182,5680,2285,2206, + 2127,1516,1352,0,3174,1240,0,4804,1834,0, + 1711,0,1769,1764,0,760,4265,4499,4387,4923, + 4856,4638,3520,3294,1098,2574,2495,2416,2337,2258, + 2179,2100,2021,1942,1863,1784,1019,929,850,0, + 797,1626,0,796,0,2557,2320,1292,1250,4605, + 7423,4114,5568,5164,3937,5266,3989,0,3512,2691, + 7484,1179,2844,3520,2796,6318,6251,6204,5885,5735, + 6306,6239,6172,6105,6038,5971,5904,5837,5770,5703, + 5303,5101,0,3911,4755,3898,0,7585,7581,7569, + 7562,7671,7645,7184,7554,7550,7526,7100,7507,6567, + 5585,7493,7416,6875,4746,756,4995,6774,6384,5704, + 5590,0,4605,5847,7329,6421,5318,739,4114,3911, + 7316,5568,5164,6505,4755,6473,4619,3898,5052,5005, + 4952,4128,0,7329,739,0,673,6377,4028,0, + 3360,2750,7585,7581,2640,2008,1725,7569,1923,7562, + 1919,1704,1609,7671,1294,4555,7645,1574,7184,1327, + 7554,7550,7526,4444,916,7100,7507,6567,5585,909, + 7493,7416,842,1231,6875,4746,799,756,4995,6774, + 6384,5704,826,6377,5590,4028,4161,3577,3557,1813, + 722,4114,3911,7316,5052,5005,4605,4952,5568,4128, + 5164,6505,5847,1511,1048,7329,4755,6421,4804,1834, + 6473,5318,4619,3898,739,6890,6725,6698,5647,5243, + 3294,5595,4000,4343,4565,4458,4414,4292,4717,5541, + 5514,5487,5460,5433,5406,6675,5680,1098,760,2574, + 2495,2416,2337,2258,2179,2100,2021,1942,1863,1784, + 4265,4499,4387,4923,4856,4638,958,879,5276,5199, + 4526,2129,2050,1971,1892,1127,6652,6626,3520,1019, + 929,5711,850,4236,3323,2603,2524,2445,2366,2287, + 2208,3471,1245,3838,3422,3373,3791,3737,3690,1628, + 1579,1525,1182,3636,3589,1458,3245,3196,3147,3098, + 3049,3000,2951,2902,2853,2803,2754,2700,1298,1404, + 1731,1352,1677,673,2653,0,6853,6377,4773,673, + 4028,0,3911,6157,7652,5052,7257,6048,5005,4952, + 6520,7630,6853,6721,6536,6382,6090,4820,5981,6505, + 7626,5847,4773,5751,7612,7590,4075,7240,5084,5313, + 5070,4755,5240,4680,673,6121,4190,6473,4667,4179, + 3963,986,4033,6377,6023,5956,4751,5075,3924,5065, + 4887,3866,3958,4028,6054,4605,7374,5987,7436,7342, + 7423,4128,6188,6761,6524,6421,5318,5000,3898,0, + 7359,7173,6306,6239,6172,6105,6038,5971,5904,5837, + 5770,5703,5303,5101,7215,6864,6763,6747,7194,7131, + 7110,7047,7026,6956,6935,6525,0,7215,6864,6763, + 6747,7194,7131,7110,7047,7026,6956,6935,6525,7359, + 7173,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -3038,69 +3503,75 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,321,68,5,135,183,207,36,39,45, - 34,66,243,66,300,349,290,6,7,5, - 291,272,292,263,293,63,294,133,13,136, - 320,295,27,302,135,3,4,141,140,9, - 8,133,136,195,45,45,45,70,45,42, - 265,244,132,172,136,136,3,3,3,3, - 170,335,296,172,330,296,172,70,136,200, - 191,184,27,62,54,48,44,43,11,12, - 47,46,136,8,3,58,50,53,55,51, - 13,144,149,79,135,289,203,199,195,135, - 268,301,229,172,136,197,203,70,70,180, - 72,3,76,77,133,132,200,191,3,70, - 78,135,170,170,265,80,200,200,350,42, - 278,3,348,1,42,135,191,248,134,133, - 136,132,170,136,135,191,45,4,3,3, - 3,3,76,77,191,134,193,192,176,170, - 180,135,3,70,70,70,70,136,3,115, - 128,3,72,135,303,74,172,72,229,172, - 136,3,80,75,203,191,12,11,135,135, - 135,72,72,209,135,135,135,135,170,136, - 244,137,74,161,3,75,346,316,3,334, - 136,181,240,66,45,68,183,337,134,133, - 249,172,249,200,170,135,200,273,159,162, - 160,164,163,167,165,169,168,171,71,173, - 276,209,281,209,193,193,193,193,72,322, - 3,161,135,135,3,233,232,288,144,134, - 133,13,136,27,193,176,193,193,193,193, - 191,235,135,45,136,45,235,176,303,312, - 136,313,228,173,172,191,166,170,227,172, - 172,197,197,273,273,229,245,246,154,247, - 314,45,13,49,241,241,135,200,11,1, - 75,161,3,42,1,191,135,249,249,135, - 135,209,135,298,132,299,97,98,44,43, - 100,99,11,110,109,102,101,78,70,94, - 95,12,104,103,106,105,107,126,125,124, - 123,122,121,120,119,118,117,80,116,108, - 75,4,161,161,161,161,222,3,323,180, - 166,326,86,84,1,176,10,93,91,89, - 87,82,90,92,85,83,66,79,229,239, - 135,3,75,136,191,150,3,78,78,78, - 78,209,257,136,200,191,304,75,200,3, - 135,170,11,135,161,80,239,203,3,135, - 75,75,78,70,248,248,241,244,1,347, - 209,336,74,253,203,133,251,172,135,135, - 74,298,297,80,75,160,160,159,159,159, - 163,163,163,163,163,163,162,162,165,164, - 164,168,167,169,257,176,171,193,135,135, - 10,74,351,228,74,3,3,3,210,3, - 132,176,132,192,245,135,191,45,193,3, - 3,3,3,134,133,236,8,45,135,235, - 135,197,202,135,80,80,135,229,135,80, - 80,75,137,75,74,80,172,251,172,155, - 339,240,31,136,297,74,74,161,283,286, - 72,201,74,96,74,242,180,242,328,154, - 82,242,135,161,245,209,161,176,176,176, - 176,3,3,4,132,134,305,111,333,135, - 237,314,251,172,75,136,31,340,200,135, - 3,72,176,161,203,161,327,135,3,161, - 305,135,161,134,235,235,4,3,220,75, - 135,78,200,136,136,283,235,228,80,210, - 177,289,176,237,135,96,344,180,220,10, - 71,49,200,200,130,325,161,135,237,161, - 161,135,3,248,161,135,345,80,75 + 0,336,69,5,136,182,219,36,39,54, + 34,68,257,68,312,365,276,6,7,5, + 277,253,278,252,279,63,307,133,13,135, + 335,280,29,314,136,3,4,141,140,9, + 8,133,135,198,54,54,54,66,54,41, + 283,258,132,169,135,135,3,3,3,3, + 167,350,308,169,345,308,169,66,135,213, + 184,183,29,61,52,47,43,42,10,12, + 45,44,135,8,3,57,48,51,53,49, + 13,144,149,79,136,306,215,204,198,136, + 286,313,238,169,135,200,215,66,66,185, + 70,3,77,78,133,132,213,184,3,66, + 75,136,167,167,283,80,213,213,366,41, + 295,3,364,1,41,136,184,262,134,133, + 135,132,167,135,136,184,54,4,3,3, + 3,3,77,78,184,134,205,187,172,167, + 185,136,3,66,66,66,66,135,3,126, + 128,3,70,136,315,76,169,70,238,169, + 135,3,80,73,215,184,12,10,136,136, + 136,70,70,220,136,136,136,136,167,135, + 258,137,76,163,3,73,362,331,3,349, + 135,180,254,68,54,69,182,352,134,133, + 263,169,263,213,167,136,213,290,136,271, + 154,156,155,3,186,157,196,195,202,201, + 206,72,207,293,220,298,220,205,205,205, + 205,70,337,3,163,136,136,3,241,240, + 305,166,157,170,168,174,171,175,176,144, + 134,133,13,135,29,205,172,205,205,205, + 205,184,244,136,54,135,54,244,172,315, + 324,135,325,237,176,169,184,164,167,236, + 169,169,200,200,290,290,238,259,260,162, + 261,326,54,13,62,255,255,136,213,10, + 1,73,163,3,41,1,184,136,263,263, + 136,136,220,136,310,132,311,276,277,278, + 279,359,280,13,99,105,43,42,107,106, + 10,186,97,96,66,83,84,12,101,100, + 103,102,104,119,118,117,116,115,114,113, + 112,111,110,80,109,108,73,4,163,163, + 163,163,234,3,338,185,164,341,88,86, + 1,172,11,95,93,91,89,82,92,94, + 87,85,68,79,238,248,136,3,73,121, + 120,97,96,75,66,12,101,100,103,102, + 104,119,118,117,116,115,114,113,112,111, + 110,80,109,108,135,184,150,3,75,75, + 75,75,220,274,135,213,184,316,73,213, + 3,136,167,10,136,163,80,248,215,3, + 136,73,73,75,66,262,262,255,258,1, + 363,220,351,76,267,215,133,265,169,136, + 136,76,310,309,80,73,135,155,155,154, + 154,154,75,157,157,157,156,156,195,186, + 186,201,196,202,172,206,205,136,136,11, + 76,367,237,76,3,3,3,222,3,132, + 172,132,187,259,136,157,157,157,157,157, + 157,168,166,166,171,170,174,274,172,175, + 184,54,205,3,3,3,3,134,133,245, + 8,54,136,244,136,200,194,136,80,80, + 136,238,136,80,80,73,137,73,76,80, + 169,265,169,158,354,254,31,135,309,184, + 157,76,163,300,303,70,214,76,98,76, + 256,185,256,343,162,82,256,136,163,259, + 76,76,220,163,172,172,172,172,3,3, + 4,132,134,317,122,348,136,246,326,265, + 169,73,135,31,355,213,220,136,3,70, + 172,163,215,163,342,136,3,163,317,136, + 163,134,244,244,4,3,233,73,136,75, + 213,135,135,300,244,237,80,222,178,306, + 172,246,136,98,360,185,233,11,72,62, + 213,213,130,340,163,136,246,163,163,136, + 3,262,163,136,361,80,73 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -3288,6 +3759,20 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym "logical_and_expression", "logical_or_expression", "assignment_expression", + "relational_expression_inTempla" + + "te", + "equality_expression_inTemplate", + "and_expression_inTemplate", + "exclusive_or_expression_inTemp" + + "late", + "inclusive_or_expression_inTemp" + + "late", + "logical_and_expression_inTempl" + + "ate", + "logical_or_expression_inTempla" + + "te", + "assignment_expression_inTempla" + + "te", "expression_list_actual", "statement", "compound_statement", @@ -3364,6 +3849,10 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym "template_parameter", "template_argument_list", "template_argument", + "type_name_specifier_inTemplate", + "type_name_declaration_specifie" + + "rs_inTemplate", + "type_specifier_seq_inTemplate", "handler", "exception_declaration", "type_id_list", @@ -3383,10 +3872,10 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 69, - SCOPE_UBOUND = 147, - SCOPE_SIZE = 148, - MAX_NAME_LENGTH = 37; + ERROR_SYMBOL = 71, + SCOPE_UBOUND = 153, + SCOPE_SIZE = 154, + MAX_NAME_LENGTH = 43; public final int getErrorSymbol() { return ERROR_SYMBOL; } public final int getScopeUbound() { return SCOPE_UBOUND; } @@ -3394,20 +3883,20 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 629, + NUM_STATES = 687, NT_OFFSET = 131, - LA_STATE_OFFSET = 8037, + LA_STATE_OFFSET = 9571, MAX_LA = 2147483647, - NUM_RULES = 614, - NUM_NONTERMINALS = 223, - NUM_SYMBOLS = 354, + NUM_RULES = 672, + NUM_NONTERMINALS = 244, + NUM_SYMBOLS = 375, SEGMENT_SIZE = 8192, - START_STATE = 5216, + START_STATE = 6525, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 129, EOLT_SYMBOL = 129, - ACCEPT_ACTION = 6537, - ERROR_ACTION = 7423; + ACCEPT_ACTION = 7893, + ERROR_ACTION = 8899; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java index 5eaa497fbb5..2169e6149c6 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java @@ -21,130 +21,130 @@ public interface GPPParsersym { TK_asm = 5, TK_auto = 32, TK_bool = 16, - TK_break = 83, - TK_case = 84, - TK_catch = 111, + TK_break = 85, + TK_case = 86, + TK_catch = 122, TK_char = 17, - TK_class = 49, - TK_const = 28, - TK_const_cast = 50, - TK_continue = 85, - TK_default = 86, - TK_delete = 76, - TK_do = 87, + TK_class = 62, + TK_const = 27, + TK_const_cast = 48, + TK_continue = 87, + TK_default = 88, + TK_delete = 77, + TK_do = 89, TK_double = 18, - TK_dynamic_cast = 51, + TK_dynamic_cast = 49, TK_else = 130, TK_enum = 63, TK_explicit = 33, - TK_export = 88, + TK_export = 90, TK_extern = 34, - TK_false = 52, + TK_false = 50, TK_float = 19, - TK_for = 89, + TK_for = 91, TK_friend = 35, - TK_goto = 90, - TK_if = 91, + TK_goto = 92, + TK_if = 93, TK_inline = 36, TK_int = 20, TK_long = 21, TK_mutable = 37, - TK_namespace = 66, - TK_new = 77, + TK_namespace = 68, + TK_new = 78, TK_operator = 9, - TK_private = 112, - TK_protected = 113, - TK_public = 114, + TK_private = 123, + TK_protected = 124, + TK_public = 125, TK_register = 38, - TK_reinterpret_cast = 53, - TK_return = 92, + TK_reinterpret_cast = 51, + TK_return = 94, TK_short = 22, TK_signed = 23, - TK_sizeof = 54, + TK_sizeof = 52, TK_static = 39, - TK_static_cast = 55, + TK_static_cast = 53, TK_struct = 64, - TK_switch = 93, - TK_template = 45, - TK_this = 56, - TK_throw = 71, + TK_switch = 95, + TK_template = 54, + TK_this = 55, + TK_throw = 72, TK_try = 79, - TK_true = 57, + TK_true = 56, TK_typedef = 40, - TK_typeid = 58, + TK_typeid = 57, TK_typename = 13, TK_union = 65, TK_unsigned = 24, - TK_using = 68, + TK_using = 69, TK_virtual = 31, TK_void = 25, - TK_volatile = 29, + TK_volatile = 28, TK_wchar_t = 26, TK_while = 82, - TK_integer = 59, - TK_floating = 60, - TK_charconst = 61, - TK_stringlit = 42, + TK_integer = 58, + TK_floating = 59, + TK_charconst = 60, + TK_stringlit = 41, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 10, + TK_EndOfCompletion = 11, TK_Invalid = 131, - TK_LeftBracket = 72, + TK_LeftBracket = 70, TK_LeftParen = 3, TK_Dot = 128, - TK_DotStar = 98, - TK_Arrow = 115, - TK_ArrowStar = 97, - TK_PlusPlus = 46, - TK_MinusMinus = 47, + TK_DotStar = 105, + TK_Arrow = 126, + TK_ArrowStar = 99, + TK_PlusPlus = 44, + TK_MinusMinus = 45, TK_And = 12, - TK_Star = 11, - TK_Plus = 43, - TK_Minus = 44, + TK_Star = 10, + TK_Plus = 42, + TK_Minus = 43, TK_Tilde = 8, - TK_Bang = 48, - TK_Slash = 99, - TK_Percent = 100, - TK_RightShift = 94, - TK_LeftShift = 95, - TK_LT = 70, - TK_GT = 78, - TK_LE = 101, - TK_GE = 102, - TK_EQ = 103, - TK_NE = 104, - TK_Caret = 105, - TK_Or = 106, - TK_AndAnd = 107, + TK_Bang = 47, + TK_Slash = 106, + TK_Percent = 107, + TK_RightShift = 83, + TK_LeftShift = 84, + TK_LT = 66, + TK_GT = 75, + TK_LE = 96, + TK_GE = 97, + TK_EQ = 100, + TK_NE = 101, + TK_Caret = 102, + TK_Or = 103, + TK_AndAnd = 104, TK_OrOr = 108, - TK_Question = 116, - TK_Colon = 74, + TK_Question = 109, + TK_Colon = 76, TK_ColonColon = 4, - TK_DotDotDot = 96, + TK_DotDotDot = 98, TK_Assign = 80, - TK_StarAssign = 117, - TK_SlashAssign = 118, - TK_PercentAssign = 119, - TK_PlusAssign = 120, - TK_MinusAssign = 121, - TK_RightShiftAssign = 122, - TK_LeftShiftAssign = 123, - TK_AndAssign = 124, - TK_CaretAssign = 125, - TK_OrAssign = 126, - TK_Comma = 75, + TK_StarAssign = 110, + TK_SlashAssign = 111, + TK_PercentAssign = 112, + TK_PlusAssign = 113, + TK_MinusAssign = 114, + TK_RightShiftAssign = 115, + TK_LeftShiftAssign = 116, + TK_AndAssign = 117, + TK_CaretAssign = 118, + TK_OrAssign = 119, + TK_Comma = 73, TK_RightBracket = 127, - TK_RightParen = 73, + TK_RightParen = 74, TK_RightBrace = 81, - TK_SemiColon = 41, + TK_SemiColon = 46, TK_LeftBrace = 67, - TK_typeof = 27, - TK___alignof__ = 62, + TK_typeof = 29, + TK___alignof__ = 61, TK___attribute__ = 6, TK___declspec = 7, - TK_MAX = 109, - TK_MIN = 110, - TK_ERROR_TOKEN = 69, + TK_MAX = 120, + TK_MIN = 121, + TK_ERROR_TOKEN = 71, TK_EOF_TOKEN = 129; public final static String orderedTerminalSymbols[] = { @@ -158,8 +158,8 @@ public interface GPPParsersym { "__declspec", "Tilde", "operator", - "EndOfCompletion", "Star", + "EndOfCompletion", "And", "typename", "_Complex", @@ -175,9 +175,9 @@ public interface GPPParsersym { "unsigned", "void", "wchar_t", - "typeof", "const", "volatile", + "typeof", "restrict", "virtual", "auto", @@ -189,21 +189,20 @@ public interface GPPParsersym { "register", "static", "typedef", - "SemiColon", "stringlit", "Plus", "Minus", - "template", "PlusPlus", "MinusMinus", + "SemiColon", "Bang", - "class", "const_cast", "dynamic_cast", "false", "reinterpret_cast", "sizeof", "static_cast", + "template", "this", "true", "typeid", @@ -211,26 +210,29 @@ public interface GPPParsersym { "floating", "charconst", "__alignof__", + "class", "enum", "struct", "union", - "namespace", - "LeftBrace", - "using", - "ERROR_TOKEN", "LT", - "throw", + "LeftBrace", + "namespace", + "using", "LeftBracket", - "RightParen", - "Colon", + "ERROR_TOKEN", + "throw", "Comma", + "RightParen", + "GT", + "Colon", "delete", "new", - "GT", "try", "Assign", "RightBrace", "while", + "RightShift", + "LeftShift", "break", "case", "continue", @@ -242,28 +244,19 @@ public interface GPPParsersym { "if", "return", "switch", - "RightShift", - "LeftShift", - "DotDotDot", - "ArrowStar", - "DotStar", - "Slash", - "Percent", "LE", "GE", + "DotDotDot", + "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd", + "DotStar", + "Slash", + "Percent", "OrOr", - "MAX", - "MIN", - "catch", - "private", - "protected", - "public", - "Arrow", "Question", "StarAssign", "SlashAssign", @@ -275,6 +268,13 @@ public interface GPPParsersym { "AndAssign", "CaretAssign", "OrAssign", + "MAX", + "MIN", + "catch", + "private", + "protected", + "public", + "Arrow", "RightBracket", "Dot", "EOF_TOKEN", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java index 191564d2313..e0b123477df 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java @@ -258,7 +258,13 @@ public void setTokens(List tokens) { public GPPSizeofExpressionParser(ITokenStream stream, Map properties) { // constructor for creating secondary parser initActions(properties); tokenMap = new TokenMap(GPPSizeofExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); -} +} + + public GPPSizeofExpressionParser(ITokenStream stream, IScanner scanner, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map properties) { // constructor for creating secondary parser + initActions(properties); + action.initializeTranslationUnit(scanner, builtinBindingsProvider, index); + tokenMap = new TokenMap(GPPSizeofExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); +} private GNUBuildASTParserAction gnuAction; @@ -815,1251 +821,1479 @@ private GNUBuildASTParserAction gnuAction; } // - // Rule 139: throw_expression ::= throw + // Rule 140: relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression // - case 139: { action. consumeExpressionThrow(false); break; + case 140: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 140: throw_expression ::= throw assignment_expression + // Rule 141: relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression ) // - case 140: { action. consumeExpressionThrow(true); break; + case 141: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 143: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 142: relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression // - case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 142: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 144: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 143: relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression // - case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 145: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 145: equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate // - case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 146: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 146: equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate // - case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 147: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 148: and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate // - case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 148: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 150: exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate // - case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 149: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 152: inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate // - case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 150: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 154: logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate // - case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 151: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 156: logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate // - case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 156: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 152: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 158: conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate // - case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 158: { action. consumeExpressionConditional(); break; } // - // Rule 153: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 161: assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate // - case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 161: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 155: expression_list ::= expression_list_actual + // Rule 162: assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate // - case 155: { action. consumeExpressionList(); break; + case 162: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 159: expression_list_opt ::= $Empty + // Rule 163: assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate // - case 159: { action. consumeEmpty(); break; + case 163: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 161: expression_opt ::= $Empty + // Rule 164: assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate // - case 161: { action. consumeEmpty(); break; + case 164: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 164: constant_expression_opt ::= $Empty + // Rule 165: assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate // - case 164: { action. consumeEmpty(); break; + case 165: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 173: statement ::= ERROR_TOKEN + // Rule 166: assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate // - case 173: { action. consumeStatementProblem(); break; + case 166: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 174: labeled_statement ::= identifier : statement + // Rule 167: assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate // - case 174: { action. consumeStatementLabeled(); break; + case 167: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 175: labeled_statement ::= case constant_expression : statement + // Rule 168: assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate // - case 175: { action. consumeStatementCase(); break; + case 168: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 176: labeled_statement ::= default : statement + // Rule 169: assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate // - case 176: { action. consumeStatementDefault(); break; + case 169: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 177: expression_statement ::= expression ; + // Rule 170: assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate // - case 177: { action. consumeStatementExpression(); break; + case 170: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 178: expression_statement ::= ; + // Rule 171: assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate // - case 178: { action. consumeStatementNull(); break; + case 171: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 179: compound_statement ::= { statement_seq } + // Rule 172: throw_expression ::= throw // - case 179: { action. consumeStatementCompoundStatement(true); break; + case 172: { action. consumeExpressionThrow(false); break; } // - // Rule 180: compound_statement ::= { } + // Rule 173: throw_expression ::= throw assignment_expression // - case 180: { action. consumeStatementCompoundStatement(false); break; + case 173: { action. consumeExpressionThrow(true); break; } // - // Rule 183: selection_statement ::= if ( condition ) statement + // Rule 176: assignment_expression ::= logical_or_expression = assignment_expression // - case 183: { action. consumeStatementIf(false); break; + case 176: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 184: selection_statement ::= if ( condition ) statement else statement + // Rule 177: assignment_expression ::= logical_or_expression *= assignment_expression // - case 184: { action. consumeStatementIf(true); break; + case 177: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 185: selection_statement ::= switch ( condition ) statement + // Rule 178: assignment_expression ::= logical_or_expression /= assignment_expression // - case 185: { action. consumeStatementSwitch(); break; + case 178: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 187: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 179: assignment_expression ::= logical_or_expression %= assignment_expression // - case 187: { action. consumeConditionDeclaration(); break; + case 179: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 189: condition_opt ::= $Empty + // Rule 180: assignment_expression ::= logical_or_expression += assignment_expression // - case 189: { action. consumeEmpty(); break; + case 180: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 190: iteration_statement ::= while ( condition ) statement + // Rule 181: assignment_expression ::= logical_or_expression -= assignment_expression // - case 190: { action. consumeStatementWhileLoop(); break; + case 181: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 191: iteration_statement ::= do statement while ( expression ) ; + // Rule 182: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 191: { action. consumeStatementDoLoop(true); break; + case 182: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 192: iteration_statement ::= do statement + // Rule 183: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 192: { action. consumeStatementDoLoop(false); break; + case 183: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 193: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 184: assignment_expression ::= logical_or_expression &= assignment_expression // - case 193: { action. consumeStatementForLoop(); break; + case 184: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 195: for_init_statement ::= simple_declaration_with_declspec + // Rule 185: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 195: { action. consumeStatementDeclaration(); break; + case 185: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 196: jump_statement ::= break ; + // Rule 186: assignment_expression ::= logical_or_expression |= assignment_expression // - case 196: { action. consumeStatementBreak(); break; + case 186: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 197: jump_statement ::= continue ; + // Rule 188: expression_list ::= expression_list_actual // - case 197: { action. consumeStatementContinue(); break; + case 188: { action. consumeExpressionList(); break; } // - // Rule 198: jump_statement ::= return expression ; + // Rule 192: expression_list_opt ::= $Empty // - case 198: { action. consumeStatementReturn(true); break; + case 192: { action. consumeEmpty(); break; } // - // Rule 199: jump_statement ::= return ; + // Rule 194: expression_opt ::= $Empty // - case 199: { action. consumeStatementReturn(false); break; + case 194: { action. consumeEmpty(); break; } // - // Rule 200: jump_statement ::= goto identifier_token ; + // Rule 197: constant_expression_opt ::= $Empty // - case 200: { action. consumeStatementGoto(); break; + case 197: { action. consumeEmpty(); break; } // - // Rule 201: declaration_statement ::= block_declaration + // Rule 206: statement ::= ERROR_TOKEN // - case 201: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 206: { action. consumeStatementProblem(); break; } // - // Rule 202: declaration_statement ::= function_definition + // Rule 207: labeled_statement ::= identifier : statement // - case 202: { action. consumeStatementDeclaration(); break; + case 207: { action. consumeStatementLabeled(); break; } // - // Rule 210: declaration ::= ERROR_TOKEN + // Rule 208: labeled_statement ::= case constant_expression : statement // - case 210: { action. consumeDeclarationProblem(); break; + case 208: { action. consumeStatementCase(); break; } // - // Rule 220: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 209: labeled_statement ::= default : statement // - case 220: { action. consumeDeclarationSimple(true); break; + case 209: { action. consumeStatementDefault(); break; } // - // Rule 221: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 210: expression_statement ::= expression ; // - case 221: { action. consumeDeclarationSimple(true); break; + case 210: { action. consumeStatementExpression(); break; } // - // Rule 222: declaration_specifiers ::= simple_declaration_specifiers + // Rule 211: expression_statement ::= ; // - case 222: { action. consumeDeclarationSpecifiersSimple(); break; + case 211: { action. consumeStatementNull(); break; } // - // Rule 223: declaration_specifiers ::= class_declaration_specifiers + // Rule 212: compound_statement ::= { statement_seq } // - case 223: { action. consumeDeclarationSpecifiersComposite(); break; + case 212: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 224: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 213: compound_statement ::= { } // - case 224: { action. consumeDeclarationSpecifiersComposite(); break; + case 213: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 225: declaration_specifiers ::= enum_declaration_specifiers + // Rule 216: selection_statement ::= if ( condition ) statement // - case 225: { action. consumeDeclarationSpecifiersComposite(); break; + case 216: { action. consumeStatementIf(false); break; } // - // Rule 226: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 217: selection_statement ::= if ( condition ) statement else statement // - case 226: { action. consumeDeclarationSpecifiersTypeName(); break; + case 217: { action. consumeStatementIf(true); break; } // - // Rule 228: declaration_specifiers_opt ::= $Empty + // Rule 218: selection_statement ::= switch ( condition ) statement // - case 228: { action. consumeEmpty(); break; + case 218: { action. consumeStatementSwitch(); break; } // - // Rule 232: no_type_declaration_specifier ::= friend + // Rule 220: condition ::= type_specifier_seq declarator = assignment_expression // - case 232: { action. consumeToken(); break; + case 220: { action. consumeConditionDeclaration(); break; } // - // Rule 233: no_type_declaration_specifier ::= typedef + // Rule 222: condition_opt ::= $Empty // - case 233: { action. consumeToken(); break; + case 222: { action. consumeEmpty(); break; } // - // Rule 253: storage_class_specifier ::= auto + // Rule 223: iteration_statement ::= while ( condition ) statement // - case 253: { action. consumeToken(); break; + case 223: { action. consumeStatementWhileLoop(); break; } // - // Rule 254: storage_class_specifier ::= register + // Rule 224: iteration_statement ::= do statement while ( expression ) ; // - case 254: { action. consumeToken(); break; + case 224: { action. consumeStatementDoLoop(true); break; } // - // Rule 255: storage_class_specifier ::= static + // Rule 225: iteration_statement ::= do statement // - case 255: { action. consumeToken(); break; + case 225: { action. consumeStatementDoLoop(false); break; } // - // Rule 256: storage_class_specifier ::= extern + // Rule 226: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 256: { action. consumeToken(); break; + case 226: { action. consumeStatementForLoop(); break; } // - // Rule 257: storage_class_specifier ::= mutable + // Rule 228: for_init_statement ::= simple_declaration_with_declspec // - case 257: { action. consumeToken(); break; + case 228: { action. consumeStatementDeclaration(); break; } // - // Rule 258: function_specifier ::= inline + // Rule 229: jump_statement ::= break ; // - case 258: { action. consumeToken(); break; + case 229: { action. consumeStatementBreak(); break; } // - // Rule 259: function_specifier ::= virtual + // Rule 230: jump_statement ::= continue ; // - case 259: { action. consumeToken(); break; + case 230: { action. consumeStatementContinue(); break; } // - // Rule 260: function_specifier ::= explicit + // Rule 231: jump_statement ::= return expression ; // - case 260: { action. consumeToken(); break; + case 231: { action. consumeStatementReturn(true); break; } // - // Rule 261: simple_type_specifier ::= simple_type_specifier_token + // Rule 232: jump_statement ::= return ; // - case 261: { action. consumeToken(); break; + case 232: { action. consumeStatementReturn(false); break; } // - // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 233: jump_statement ::= goto identifier_token ; // - case 275: { action. consumeQualifiedId(false); break; + case 233: { action. consumeStatementGoto(); break; } // - // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 234: declaration_statement ::= block_declaration // - case 276: { action. consumeQualifiedId(false); break; + case 234: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 235: declaration_statement ::= function_definition // - case 277: { action. consumeQualifiedId(false); break; + case 235: { action. consumeStatementDeclaration(); break; } // - // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 243: declaration ::= ERROR_TOKEN // - case 278: { action. consumeQualifiedId(true); break; + case 243: { action. consumeDeclarationProblem(); break; } // - // Rule 280: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 253: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 280: { action. consumeTypeSpecifierElaborated(false); break; + case 253: { action. consumeDeclarationSimple(true); break; } // - // Rule 281: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 254: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 281: { action. consumeTypeSpecifierElaborated(true); break; + case 254: { action. consumeDeclarationSimple(true); break; } // - // Rule 282: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 255: declaration_specifiers ::= simple_declaration_specifiers // - case 282: { action. consumeTypeSpecifierElaborated(false); break; + case 255: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 286: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 256: declaration_specifiers ::= class_declaration_specifiers // - case 286: { action. consumeTypeSpecifierEnumeration(false); break; + case 256: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 287: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 257: declaration_specifiers ::= elaborated_declaration_specifiers // - case 287: { action. consumeTypeSpecifierEnumeration(true); break; + case 257: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 293: enumerator_definition ::= identifier_token + // Rule 258: declaration_specifiers ::= enum_declaration_specifiers // - case 293: { action. consumeEnumerator(false); break; + case 258: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 294: enumerator_definition ::= identifier_token = constant_expression + // Rule 259: declaration_specifiers ::= type_name_declaration_specifiers // - case 294: { action. consumeEnumerator(true); break; + case 259: { action. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 296: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } + // Rule 261: declaration_specifiers_opt ::= $Empty // - case 296: { action. consumeNamespaceDefinition(true); break; + case 261: { action. consumeEmpty(); break; } // - // Rule 297: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } + // Rule 265: no_type_declaration_specifier ::= friend // - case 297: { action. consumeNamespaceDefinition(false); break; + case 265: { action. consumeToken(); break; } // - // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 266: no_type_declaration_specifier ::= typedef // - case 299: { action. consumeNamespaceAliasDefinition(); break; + case 266: { action. consumeToken(); break; } // - // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 286: storage_class_specifier ::= auto // - case 300: { action. consumeUsingDeclaration(); break; + case 286: { action. consumeToken(); break; } // - // Rule 301: typename_opt ::= typename + // Rule 287: storage_class_specifier ::= register // - case 301: { action. consumePlaceHolder(); break; + case 287: { action. consumeToken(); break; } // - // Rule 302: typename_opt ::= $Empty + // Rule 288: storage_class_specifier ::= static // - case 302: { action. consumeEmpty(); break; + case 288: { action. consumeToken(); break; } // - // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 289: storage_class_specifier ::= extern // - case 303: { action. consumeUsingDirective(); break; + case 289: { action. consumeToken(); break; } // - // Rule 304: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 290: storage_class_specifier ::= mutable // - case 304: { action. consumeLinkageSpecification(); break; + case 290: { action. consumeToken(); break; } // - // Rule 305: linkage_specification ::= extern stringlit declaration + // Rule 291: function_specifier ::= inline // - case 305: { action. consumeLinkageSpecification(); break; + case 291: { action. consumeToken(); break; } // - // Rule 310: init_declarator_complete ::= init_declarator + // Rule 292: function_specifier ::= virtual // - case 310: { action. consumeInitDeclaratorComplete(); break; + case 292: { action. consumeToken(); break; } // - // Rule 312: init_declarator ::= complete_declarator initializer + // Rule 293: function_specifier ::= explicit // - case 312: { action. consumeDeclaratorWithInitializer(true); break; + case 293: { action. consumeToken(); break; } // - // Rule 315: declarator ::= ptr_operator_seq direct_declarator + // Rule 294: simple_type_specifier ::= simple_type_specifier_token // - case 315: { action. consumeDeclaratorWithPointer(true); break; + case 294: { action. consumeToken(); break; } // - // Rule 317: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 308: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 317: { action. consumeDeclaratorWithPointer(true); break; + case 308: { action. consumeQualifiedId(false); break; } // - // Rule 321: basic_direct_declarator ::= declarator_id_name + // Rule 309: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 321: { action. consumeDirectDeclaratorIdentifier(); break; + case 309: { action. consumeQualifiedId(false); break; } // - // Rule 322: basic_direct_declarator ::= ( declarator ) + // Rule 310: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 322: { action. consumeDirectDeclaratorBracketed(); break; + case 310: { action. consumeQualifiedId(false); break; } // - // Rule 323: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 311: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 323: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 311: { action. consumeQualifiedId(true); break; } // - // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 313: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 324: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 313: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 325: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 314: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 325: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 314: { action. consumeTypeSpecifierElaborated(true); break; } // - // Rule 326: array_modifier ::= [ constant_expression ] + // Rule 315: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 326: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 315: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 327: array_modifier ::= [ ] + // Rule 319: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 327: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 319: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 328: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 320: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 328: { action. consumePointer(); break; + case 320: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 329: ptr_operator ::= pointer_hook & pointer_hook + // Rule 326: enumerator_definition ::= identifier_token // - case 329: { action. consumeReferenceOperator(); break; + case 326: { action. consumeEnumerator(false); break; } // - // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 327: enumerator_definition ::= identifier_token = constant_expression // - case 330: { action. consumePointerToMember(); break; + case 327: { action. consumeEnumerator(true); break; } // - // Rule 337: cv_qualifier ::= const + // Rule 329: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } // - case 337: { action. consumeToken(); break; + case 329: { action. consumeNamespaceDefinition(true); break; } // - // Rule 338: cv_qualifier ::= volatile + // Rule 330: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } // - case 338: { action. consumeToken(); break; + case 330: { action. consumeNamespaceDefinition(false); break; } // - // Rule 340: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 332: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 340: { action. consumeQualifiedId(false); break; + case 332: { action. consumeNamespaceAliasDefinition(); break; } // - // Rule 341: type_id ::= type_specifier_seq + // Rule 333: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 341: { action. consumeTypeId(false); break; + case 333: { action. consumeUsingDeclaration(); break; } // - // Rule 342: type_id ::= type_specifier_seq abstract_declarator + // Rule 334: typename_opt ::= typename // - case 342: { action. consumeTypeId(true); break; + case 334: { action. consumePlaceHolder(); break; } // - // Rule 345: abstract_declarator ::= ptr_operator_seq + // Rule 335: typename_opt ::= $Empty // - case 345: { action. consumeDeclaratorWithPointer(false); break; + case 335: { action. consumeEmpty(); break; } // - // Rule 346: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 336: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 346: { action. consumeDeclaratorWithPointer(true); break; + case 336: { action. consumeUsingDirective(); break; } // - // Rule 350: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 337: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 350: { action. consumeDirectDeclaratorBracketed(); break; + case 337: { action. consumeLinkageSpecification(); break; } // - // Rule 351: basic_direct_abstract_declarator ::= ( ) + // Rule 338: linkage_specification ::= extern stringlit declaration // - case 351: { action. consumeAbstractDeclaratorEmpty(); break; + case 338: { action. consumeLinkageSpecification(); break; } // - // Rule 352: array_direct_abstract_declarator ::= array_modifier + // Rule 343: init_declarator_complete ::= init_declarator // - case 352: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 343: { action. consumeInitDeclaratorComplete(); break; } // - // Rule 353: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 345: init_declarator ::= complete_declarator initializer // - case 353: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 345: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 354: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 348: declarator ::= ptr_operator_seq direct_declarator // - case 354: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 348: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 355: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 350: function_declarator ::= ptr_operator_seq direct_declarator // - case 355: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 350: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 356: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 354: basic_direct_declarator ::= declarator_id_name // - case 356: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; + case 354: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 355: basic_direct_declarator ::= ( declarator ) // - case 357: { action. consumePlaceHolder(); break; + case 355: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 356: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 358: { action. consumeEmpty(); break; + case 356: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 357: array_direct_declarator ::= array_direct_declarator array_modifier // - case 359: { action. consumePlaceHolder(); break; + case 357: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 365: abstract_declarator_opt ::= $Empty + // Rule 358: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 365: { action. consumeEmpty(); break; + case 358: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 366: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 359: array_modifier ::= [ constant_expression ] // - case 366: { action. consumeParameterDeclaration(); break; + case 359: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 367: parameter_declaration ::= declaration_specifiers + // Rule 360: array_modifier ::= [ ] // - case 367: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 360: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 369: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 361: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 369: { action. consumeDeclaratorWithInitializer(true); break; + case 361: { action. consumePointer(); break; } // - // Rule 371: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 362: ptr_operator ::= pointer_hook & pointer_hook // - case 371: { action. consumeDeclaratorWithInitializer(true); break; + case 362: { action. consumeReferenceOperator(); break; } // - // Rule 372: parameter_init_declarator ::= = parameter_initializer + // Rule 363: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 372: { action. consumeDeclaratorWithInitializer(false); break; + case 363: { action. consumePointerToMember(); break; } // - // Rule 373: parameter_initializer ::= assignment_expression + // Rule 370: cv_qualifier ::= const // - case 373: { action. consumeInitializer(); break; + case 370: { action. consumeToken(); break; } // - // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 371: cv_qualifier ::= volatile // - case 374: { action. consumeFunctionDefinition(false); break; + case 371: { action. consumeToken(); break; } // - // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 373: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 375: { action. consumeFunctionDefinition(true); break; + case 373: { action. consumeQualifiedId(false); break; } // - // Rule 378: initializer ::= ( expression_list ) + // Rule 374: type_id ::= type_specifier_seq // - case 378: { action. consumeInitializerConstructor(); break; + case 374: { action. consumeTypeId(false); break; } // - // Rule 379: initializer_clause ::= assignment_expression + // Rule 375: type_id ::= type_specifier_seq abstract_declarator // - case 379: { action. consumeInitializer(); break; + case 375: { action. consumeTypeId(true); break; } // - // Rule 380: initializer_clause ::= initializer_list + // Rule 378: abstract_declarator ::= ptr_operator_seq // - case 380: { action. consumeInitializer(); break; + case 378: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 381: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // Rule 379: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 381: { action. consumeInitializerList(); break; + case 379: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 382: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // Rule 383: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 382: { action. consumeInitializerList(); break; + case 383: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 383: initializer_list ::= { } + // Rule 384: basic_direct_abstract_declarator ::= ( ) // - case 383: { action. consumeInitializerList(); break; + case 384: { action. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 384: start_initializer_list ::= $Empty + // Rule 385: array_direct_abstract_declarator ::= array_modifier // - case 384: { action. initializerListStart(); break; + case 385: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 385: end_initializer_list ::= $Empty + // Rule 386: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 385: { action. initializerListEnd(); break; + case 386: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 390: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 387: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 390: { action. consumeClassSpecifier(); break; + case 387: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 391: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // Rule 388: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 391: { action. consumeClassHead(false); break; + case 388: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 392: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // Rule 389: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 392: { action. consumeClassHead(false); break; + case 389: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 393: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // Rule 390: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 393: { action. consumeClassHead(true); break; + case 390: { action. consumePlaceHolder(); break; } // - // Rule 394: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // Rule 391: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 394: { action. consumeClassHead(true); break; + case 391: { action. consumeEmpty(); break; } // - // Rule 398: identifier_name_opt ::= $Empty + // Rule 392: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 392: { action. consumePlaceHolder(); break; + } + + // + // Rule 398: abstract_declarator_opt ::= $Empty // case 398: { action. consumeEmpty(); break; + } + + // + // Rule 399: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 399: { action. consumeParameterDeclaration(); break; + } + + // + // Rule 400: parameter_declaration ::= declaration_specifiers + // + case 400: { action. consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // Rule 402: parameter_init_declarator ::= declarator = parameter_initializer + // + case 402: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 404: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 404: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 405: parameter_init_declarator ::= = parameter_initializer + // + case 405: { action. consumeDeclaratorWithInitializer(false); break; + } + + // + // Rule 406: parameter_initializer ::= assignment_expression + // + case 406: { action. consumeInitializer(); break; + } + + // + // Rule 407: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // + case 407: { action. consumeFunctionDefinition(false); break; + } + + // + // Rule 408: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // + case 408: { action. consumeFunctionDefinition(true); break; + } + + // + // Rule 411: initializer ::= ( expression_list ) + // + case 411: { action. consumeInitializerConstructor(); break; + } + + // + // Rule 412: initializer_clause ::= assignment_expression + // + case 412: { action. consumeInitializer(); break; + } + + // + // Rule 413: initializer_clause ::= initializer_list + // + case 413: { action. consumeInitializer(); break; + } + + // + // Rule 414: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // + case 414: { action. consumeInitializerList(); break; + } + + // + // Rule 415: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // + case 415: { action. consumeInitializerList(); break; + } + + // + // Rule 416: initializer_list ::= { } + // + case 416: { action. consumeInitializerList(); break; + } + + // + // Rule 417: start_initializer_list ::= $Empty + // + case 417: { action. initializerListStart(); break; + } + + // + // Rule 418: end_initializer_list ::= $Empty + // + case 418: { action. initializerListEnd(); break; + } + + // + // Rule 423: class_specifier ::= class_head { member_declaration_list_opt } + // + case 423: { action. consumeClassSpecifier(); break; + } + + // + // Rule 424: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // + case 424: { action. consumeClassHead(false); break; + } + + // + // Rule 425: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // + case 425: { action. consumeClassHead(false); break; + } + + // + // Rule 426: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // + case 426: { action. consumeClassHead(true); break; + } + + // + // Rule 427: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // + case 427: { action. consumeClassHead(true); break; + } + + // + // Rule 431: identifier_name_opt ::= $Empty + // + case 431: { action. consumeEmpty(); break; } // - // Rule 402: visibility_label ::= access_specifier_keyword : + // Rule 435: visibility_label ::= access_specifier_keyword : // - case 402: { action. consumeVisibilityLabel(); break; + case 435: { action. consumeVisibilityLabel(); break; } // - // Rule 403: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 436: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 403: { action. consumeDeclarationSimple(true); break; + case 436: { action. consumeDeclarationSimple(true); break; } // - // Rule 404: member_declaration ::= declaration_specifiers_opt ; + // Rule 437: member_declaration ::= declaration_specifiers_opt ; // - case 404: { action. consumeDeclarationSimple(false); break; + case 437: { action. consumeDeclarationSimple(false); break; } // - // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 440: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 407: { action. consumeMemberDeclarationQualifiedId(); break; + case 440: { action. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 413: member_declaration ::= ERROR_TOKEN + // Rule 446: member_declaration ::= ERROR_TOKEN // - case 413: { action. consumeDeclarationProblem(); break; + case 446: { action. consumeDeclarationProblem(); break; } // - // Rule 422: member_declarator ::= declarator constant_initializer + // Rule 455: member_declarator ::= declarator constant_initializer // - case 422: { action. consumeMemberDeclaratorWithInitializer(); break; + case 455: { action. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 423: member_declarator ::= bit_field_declarator : constant_expression + // Rule 456: member_declarator ::= bit_field_declarator : constant_expression // - case 423: { action. consumeBitField(true); break; + case 456: { action. consumeBitField(true); break; } // - // Rule 424: member_declarator ::= : constant_expression + // Rule 457: member_declarator ::= : constant_expression // - case 424: { action. consumeBitField(false); break; + case 457: { action. consumeBitField(false); break; } // - // Rule 425: bit_field_declarator ::= identifier_name + // Rule 458: bit_field_declarator ::= identifier_name // - case 425: { action. consumeDirectDeclaratorIdentifier(); break; + case 458: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 426: constant_initializer ::= = constant_expression + // Rule 459: constant_initializer ::= = constant_expression // - case 426: { action. consumeInitializer(); break; + case 459: { action. consumeInitializer(); break; } // - // Rule 432: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 465: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 432: { action. consumeBaseSpecifier(false, false); break; + case 465: { action. consumeBaseSpecifier(false, false); break; } // - // Rule 433: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 466: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 433: { action. consumeBaseSpecifier(true, true); break; + case 466: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 434: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 467: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 434: { action. consumeBaseSpecifier(true, true); break; + case 467: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 435: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 468: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 435: { action. consumeBaseSpecifier(true, false); break; + case 468: { action. consumeBaseSpecifier(true, false); break; } // - // Rule 436: access_specifier_keyword ::= private + // Rule 469: access_specifier_keyword ::= private // - case 436: { action. consumeToken(); break; + case 469: { action. consumeToken(); break; } // - // Rule 437: access_specifier_keyword ::= protected + // Rule 470: access_specifier_keyword ::= protected // - case 437: { action. consumeToken(); break; + case 470: { action. consumeToken(); break; } // - // Rule 438: access_specifier_keyword ::= public + // Rule 471: access_specifier_keyword ::= public // - case 438: { action. consumeToken(); break; + case 471: { action. consumeToken(); break; } // - // Rule 440: access_specifier_keyword_opt ::= $Empty + // Rule 473: access_specifier_keyword_opt ::= $Empty // - case 440: { action. consumeEmpty(); break; + case 473: { action. consumeEmpty(); break; } // - // Rule 442: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 475: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 442: { action. consumeTemplateId(); break; + case 475: { action. consumeTemplateId(); break; } // - // Rule 443: conversion_function_id ::= operator conversion_type_id + // Rule 476: conversion_function_id ::= operator conversion_type_id // - case 443: { action. consumeConversionName(); break; + case 476: { action. consumeConversionName(); break; } // - // Rule 444: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 477: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 444: { action. consumeTypeId(true); break; + case 477: { action. consumeTypeId(true); break; } // - // Rule 445: conversion_type_id ::= type_specifier_seq + // Rule 478: conversion_type_id ::= type_specifier_seq // - case 445: { action. consumeTypeId(false); break; + case 478: { action. consumeTypeId(false); break; } // - // Rule 446: conversion_declarator ::= ptr_operator_seq + // Rule 479: conversion_declarator ::= ptr_operator_seq // - case 446: { action. consumeDeclaratorWithPointer(false); break; + case 479: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 452: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 485: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 452: { action. consumeConstructorChainInitializer(); break; + case 485: { action. consumeConstructorChainInitializer(); break; } // - // Rule 453: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 486: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 453: { action. consumeQualifiedId(false); break; + case 486: { action. consumeQualifiedId(false); break; } // - // Rule 456: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 489: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 456: { action. consumeTemplateId(); break; + case 489: { action. consumeTemplateId(); break; } // - // Rule 457: operator_id_name ::= operator overloadable_operator + // Rule 490: operator_id_name ::= operator overloadable_operator // - case 457: { action. consumeOperatorName(); break; + case 490: { action. consumeOperatorName(); break; } // - // Rule 500: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 533: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 500: { action. consumeTemplateDeclaration(); break; + case 533: { action. consumeTemplateDeclaration(); break; } // - // Rule 501: export_opt ::= export + // Rule 534: export_opt ::= export // - case 501: { action. consumePlaceHolder(); break; + case 534: { action. consumePlaceHolder(); break; } // - // Rule 502: export_opt ::= $Empty + // Rule 535: export_opt ::= $Empty // - case 502: { action. consumeEmpty(); break; + case 535: { action. consumeEmpty(); break; } // - // Rule 506: template_parameter ::= parameter_declaration + // Rule 539: template_parameter ::= parameter_declaration // - case 506: { action. consumeTemplateParamterDeclaration(); break; + case 539: { action. consumeTemplateParamterDeclaration(); break; } // - // Rule 507: type_parameter ::= class identifier_name_opt + // Rule 540: type_parameter ::= class identifier_name_opt // - case 507: { action. consumeSimpleTypeTemplateParameter(false); break; + case 540: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 508: type_parameter ::= class identifier_name_opt = type_id + // Rule 541: type_parameter ::= class identifier_name_opt = type_id // - case 508: { action. consumeSimpleTypeTemplateParameter(true); break; + case 541: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 509: type_parameter ::= typename identifier_name_opt + // Rule 542: type_parameter ::= typename identifier_name_opt // - case 509: { action. consumeSimpleTypeTemplateParameter(false); break; + case 542: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 510: type_parameter ::= typename identifier_name_opt = type_id + // Rule 543: type_parameter ::= typename identifier_name_opt = type_id // - case 510: { action. consumeSimpleTypeTemplateParameter(true); break; + case 543: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 511: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 544: type_parameter ::= template < template_parameter_list > class identifier_name_opt // - case 511: { action. consumeTemplatedTypeTemplateParameter(false); break; + case 544: { action. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 512: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 545: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 512: { action. consumeTemplatedTypeTemplateParameter(true); break; + case 545: { action. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 513: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 546: template_id_name ::= identifier_name < template_argument_list_opt > // - case 513: { action. consumeTemplateId(); break; + case 546: { action. consumeTemplateId(); break; } // - // Rule 518: template_argument ::= assignment_expression + // Rule 553: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 518: { action. consumeTemplateArgumentExpression(); break; + case 553: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 519: template_argument ::= type_id + // Rule 554: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: // - case 519: { action. consumeTemplateArgumentTypeId(); break; + case 554: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 520: explicit_instantiation ::= template declaration + // Rule 555: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 520: { action. consumeTemplateExplicitInstantiation(); break; + case 555: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 521: explicit_specialization ::= template < > declaration + // Rule 556: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: // - case 521: { action. consumeTemplateExplicitSpecialization(); break; + case 556: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 522: try_block ::= try compound_statement handler_seq + // Rule 557: class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate // - case 522: { action. consumeStatementTryBlock(true); break; + case 557: { action. consumeNameWithTemplateKeyword(); break; } // - // Rule 523: try_block ::= try compound_statement + // Rule 559: nested_name_specifier_opt_inTemplate ::= $Empty // - case 523: { action. consumeStatementTryBlock(false); break; + case 559: { action. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 526: handler ::= catch ( exception_declaration ) compound_statement + // Rule 562: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name // - case 526: { action. consumeStatementCatchHandler(false); break; + case 562: { action. consumeQualifiedId(false); break; } // - // Rule 527: handler ::= catch ( ... ) compound_statement + // Rule 563: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 527: { action. consumeStatementCatchHandler(true); break; + case 563: { action. consumeQualifiedId(true); break; } // - // Rule 528: exception_declaration ::= type_specifier_seq declarator + // Rule 568: declaration_specifiers_inTemplate ::= simple_declaration_specifiers // - case 528: { action. consumeDeclarationSimple(true); break; + case 568: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 529: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 569: declaration_specifiers_inTemplate ::= class_declaration_specifiers // - case 529: { action. consumeDeclarationSimple(true); break; + case 569: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 530: exception_declaration ::= type_specifier_seq + // Rule 570: declaration_specifiers_inTemplate ::= elaborated_declaration_specifiers // - case 530: { action. consumeDeclarationSimple(false); break; + case 570: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 532: exception_specification ::= throw ( ) + // Rule 571: declaration_specifiers_inTemplate ::= enum_declaration_specifiers // - case 532: { action. consumePlaceHolder(); break; + case 571: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 553: attribute_parameter ::= assignment_expression + // Rule 572: declaration_specifiers_inTemplate ::= type_name_declaration_specifiers_inTemplate // - case 553: { action. consumeIgnore(); break; + case 572: { action. consumeDeclarationSpecifiersTypeName(); break; + } + + // + // Rule 574: type_id_inTemplate ::= type_specifier_seq_inTemplate + // + case 574: { action. consumeTypeId(false); break; + } + + // + // Rule 575: type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator + // + case 575: { action. consumeTypeId(true); break; + } + + // + // Rule 576: template_argument ::= assignment_expression_inTemplate + // + case 576: { action. consumeTemplateArgumentExpression(); break; + } + + // + // Rule 577: template_argument ::= type_id_inTemplate + // + case 577: { action. consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 578: explicit_instantiation ::= template declaration + // + case 578: { action. consumeTemplateExplicitInstantiation(); break; + } + + // + // Rule 579: explicit_specialization ::= template < > declaration + // + case 579: { action. consumeTemplateExplicitSpecialization(); break; + } + + // + // Rule 580: try_block ::= try compound_statement handler_seq + // + case 580: { action. consumeStatementTryBlock(true); break; + } + + // + // Rule 581: try_block ::= try compound_statement + // + case 581: { action. consumeStatementTryBlock(false); break; + } + + // + // Rule 584: handler ::= catch ( exception_declaration ) compound_statement + // + case 584: { action. consumeStatementCatchHandler(false); break; + } + + // + // Rule 585: handler ::= catch ( ... ) compound_statement + // + case 585: { action. consumeStatementCatchHandler(true); break; + } + + // + // Rule 586: exception_declaration ::= type_specifier_seq declarator + // + case 586: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 587: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 587: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 588: exception_declaration ::= type_specifier_seq + // + case 588: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 590: exception_specification ::= throw ( ) + // + case 590: { action. consumePlaceHolder(); break; + } + + // + // Rule 611: attribute_parameter ::= assignment_expression + // + case 611: { action. consumeIgnore(); break; } // - // Rule 564: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; + // Rule 622: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; // - case 564: { gnuAction.consumeDeclarationASM(); break; + case 622: { gnuAction.consumeDeclarationASM(); break; } // - // Rule 575: unary_expression ::= __alignof__ unary_expression + // Rule 633: unary_expression ::= __alignof__ unary_expression // - case 575: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; + case 633: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; } // - // Rule 576: unary_expression ::= typeof unary_expression + // Rule 634: unary_expression ::= typeof unary_expression // - case 576: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + case 634: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; } // - // Rule 577: relational_expression ::= relational_expression >? shift_expression + // Rule 635: relational_expression ::= relational_expression >? shift_expression // - case 577: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break; + case 635: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break; } // - // Rule 578: relational_expression ::= relational_expression : assignment_expression + // Rule 637: conditional_expression ::= logical_or_expression ? : assignment_expression // - case 579: { action. consumeExpressionConditional(); break; + case 637: { action. consumeExpressionConditional(); break; } // - // Rule 580: primary_expression ::= ( compound_statement ) + // Rule 638: primary_expression ::= ( compound_statement ) // - case 580: { gnuAction.consumeCompoundStatementExpression(); break; + case 638: { gnuAction.consumeCompoundStatementExpression(); break; } // - // Rule 581: labeled_statement ::= case case_range_expression : statement + // Rule 639: labeled_statement ::= case case_range_expression : statement // - case 581: { action. consumeStatementCase(); break; + case 639: { action. consumeStatementCase(); break; } // - // Rule 582: case_range_expression ::= constant_expression ... constant_expression + // Rule 640: case_range_expression ::= constant_expression ... constant_expression // - case 582: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 640: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 586: typeof_type_specifier ::= typeof unary_expression + // Rule 644: typeof_type_specifier ::= typeof unary_expression // - case 586: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + case 644: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; } // - // Rule 587: typeof_type_specifier ::= typeof ( type_id ) + // Rule 645: typeof_type_specifier ::= typeof ( type_id ) // - case 587: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; + case 645: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; } // - // Rule 588: declaration_specifiers ::= typeof_declaration_specifiers + // Rule 646: declaration_specifiers ::= typeof_declaration_specifiers // - case 588: { action. consumeDeclarationSpecifiersTypeof(); break; + case 646: { action. consumeDeclarationSpecifiersTypeof(); break; } // - // Rule 601: declarator ::= ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator + // Rule 659: declarator ::= ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator // - case 601: { action. consumeDeclaratorWithPointer(true); break; + case 659: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 604: simple_type_specifier ::= _Complex + // Rule 662: simple_type_specifier ::= _Complex // - case 604: { action. consumeToken(); break; + case 662: { action. consumeToken(); break; } // - // Rule 605: simple_type_specifier ::= _Imaginary + // Rule 663: simple_type_specifier ::= _Imaginary // - case 605: { action. consumeToken(); break; + case 663: { action. consumeToken(); break; } // - // Rule 606: cv_qualifier ::= restrict + // Rule 664: cv_qualifier ::= restrict // - case 606: { action. consumeToken(); break; + case 664: { action. consumeToken(); break; } // - // Rule 607: explicit_instantiation ::= extern template declaration + // Rule 665: explicit_instantiation ::= extern template declaration // - case 607: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break; + case 665: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break; } // - // Rule 608: explicit_instantiation ::= static template declaration + // Rule 666: explicit_instantiation ::= static template declaration // - case 608: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break; + case 666: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break; } // - // Rule 609: explicit_instantiation ::= inline template declaration + // Rule 667: explicit_instantiation ::= inline template declaration // - case 609: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break; + case 667: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break; } // - // Rule 610: postfix_expression ::= ( type_id ) initializer_list + // Rule 668: postfix_expression ::= ( type_id ) initializer_list // - case 610: { action. consumeExpressionTypeIdInitializer(); break; + case 668: { action. consumeExpressionTypeIdInitializer(); break; } // - // Rule 612: no_sizeof_type_id_start ::= ERROR_TOKEN + // Rule 670: no_sizeof_type_id_start ::= ERROR_TOKEN // - case 612: { action. consumeEmpty(); break; + case 670: { action. consumeEmpty(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java index d7a979817e2..ae7452e0177 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java @@ -51,623 +51,753 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,2,1,3,1,0,1, - 0,1,1,0,1,1,1,1,1,1, - 1,1,1,3,4,3,2,1,4,2, - 1,2,5,7,5,1,4,1,0,5, - 7,2,8,1,1,2,2,3,2,3, + 1,3,1,3,1,3,1,5,1,3, + 5,3,3,1,3,3,1,3,1,3, + 1,3,1,3,1,3,1,5,1,1, + 3,3,3,3,3,3,3,3,3,3, + 3,1,2,1,1,3,3,3,3,3, + 3,3,3,3,3,3,1,2,1,3, + 1,0,1,0,1,1,0,1,1,1, + 1,1,1,1,1,1,3,4,3,2, + 1,4,2,1,2,5,7,5,1,4, + 1,0,5,7,2,8,1,1,2,2, + 3,2,3,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,2, + 1,0,4,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,2,1,0,4, - 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,3,4,4,5,2,5, - 6,5,0,1,0,7,8,0,1,3, - 1,0,1,3,1,7,6,0,7,6, - 1,0,6,6,4,1,3,1,0,1, - 1,2,1,1,3,1,3,1,1,1, - 1,3,9,2,2,3,2,5,3,7, - 0,1,2,2,1,0,1,1,1,3, - 1,2,1,1,2,3,1,1,1,3, - 2,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,1, - 7,6,3,0,0,1,3,1,1,5, - 6,6,7,7,0,0,1,0,1,1, - 1,2,4,2,2,1,5,1,1,1, - 1,1,1,1,2,1,0,1,3,1, - 1,2,3,2,1,2,2,1,0,1, - 3,3,5,5,4,1,1,1,1,0, - 1,5,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,3,4,4, + 5,2,5,6,5,0,1,0,7,8, + 0,1,3,1,0,1,3,1,7,6, + 0,7,6,1,0,6,6,4,1,3, + 1,0,1,1,2,1,1,3,1,3, + 1,1,1,1,3,9,2,2,3,2, + 5,3,7,0,1,2,2,1,0,1, + 1,1,3,1,2,1,1,2,3,1, + 1,1,3,2,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,1,7,6,3,0,0,1,3, + 1,1,5,6,6,7,7,0,0,1, + 0,1,1,1,2,4,2,2,1,5, + 1,1,1,1,1,1,1,2,1,0, + 1,3,1,1,2,3,2,1,2,2, + 1,0,1,3,3,5,5,4,1,1, + 1,1,0,1,5,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,2,2,7, - 1,0,1,3,1,1,2,4,2,4, - 7,9,5,1,3,1,0,1,1,2, - 4,4,2,1,2,5,5,3,3,1, - 4,3,1,0,1,3,1,1,1,1, - 2,6,3,1,3,1,4,0,1,1, - 1,3,1,0,4,3,1,2,1,3, - 4,4,4,6,1,0,1,3,1,3, - 0,1,4,5,2,2,3,3,5,3, - 4,3,1,2,2,2,4,2,1,1, - 2,2,3,2,2,3,1,1,1,1, - 4,1,1,1,1,1,3,3,3,4, - 1,1,-65,0,0,0,-2,0,0,0, + 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,3,1,0, + 1,1,3,2,3,2,2,1,0,1, + 1,4,5,2,1,2,2,2,2,2, + 2,2,1,1,2,1,1,2,4,4, + 2,1,2,5,5,3,3,1,4,3, + 1,0,1,3,1,1,1,1,2,6, + 3,1,3,1,4,0,1,1,1,3, + 1,0,4,3,1,2,1,3,4,4, + 4,6,1,0,1,3,1,3,0,1, + 4,5,2,2,3,3,5,3,4,3, + 1,2,2,2,4,2,1,1,2,2, + 3,2,2,3,1,1,1,1,4,1, + 1,1,1,1,3,3,3,4,1,1, + -65,0,0,0,0,-56,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-194,0,0,0,0,0,0,0,0, + 0,0,0,-10,-44,0,0,0,0,0, + -266,-534,-17,-251,-407,0,0,0,0,-55, + -360,0,-493,0,0,0,0,-243,0,0, + 0,0,0,0,0,-69,-66,0,0,0, + 0,0,0,0,-255,0,0,-457,0,0, + 0,0,0,0,-218,0,0,0,0,0, + 0,0,0,0,-61,-539,0,0,0,0, + 0,0,0,-68,0,0,0,-2,0,0, + 0,0,0,-224,0,0,0,-436,0,0, + 0,0,-484,0,0,0,0,0,0,0, + 0,0,-451,-147,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-4,0, + 0,-5,0,0,0,0,0,0,0,0, + 0,0,-6,-467,0,0,0,-120,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -277,0,0,0,-10,0,0,0,0,0, - 0,0,-50,0,0,0,0,-409,-69,0, - 0,-399,-268,0,0,0,0,-436,0,0, - 0,-199,0,0,0,0,0,0,0,0, - 0,-209,0,0,-4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-60,0, - 0,0,0,-203,0,0,0,0,-194,0, - 0,-619,0,0,0,0,0,0,0,0, - 0,0,0,0,-132,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-56,-428, - 0,0,0,0,0,-491,0,0,0,0, - 0,-51,-5,0,0,0,0,0,-128,-53, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-120,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -55,0,0,-6,0,0,0,0,0,-7, - 0,0,0,0,0,0,0,0,0,0, - -16,0,0,0,0,0,0,0,0,0, - 0,0,-75,0,0,0,-8,0,0,0, - 0,0,0,0,0,0,-121,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,-208,0,0,0,0,0,0,0, - 0,0,0,-9,0,0,-11,0,0,0, - 0,0,-211,0,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,-232,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,-553,0,0, - 0,0,0,0,0,0,-349,0,0,0, - 0,-418,0,0,-207,0,0,0,0,0, - 0,0,0,-254,0,0,0,-424,0,0, - 0,0,0,0,0,0,0,0,0,-255, - 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,-68,-546,-139, - 0,0,0,0,0,0,0,0,0,0, - -61,0,0,0,0,0,-572,0,0,-45, - 0,0,-403,0,-469,-118,0,0,-162,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-134,0,0,0,0,0,0, - -357,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,0,0, - 0,0,-160,0,0,0,0,0,0,0, - 0,0,0,-241,0,0,-12,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,-152,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-140,0,0,-147,0,0,0,0, - 0,-18,0,0,0,-62,0,0,0,0, - 0,-210,-112,0,0,0,0,0,0,0, - 0,0,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,-13, - 0,0,-156,0,0,0,0,-452,0,0, - 0,-15,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-30,0,0,0,0,0, - -242,0,0,-510,0,0,-412,0,0,0, - -166,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-193, - 0,0,0,0,-251,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-159, - 0,0,0,0,0,0,0,0,0,0, - -461,0,0,0,0,-31,-294,0,0,-3, - 0,0,0,-32,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-276,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-33,0,0,0, - 0,0,-580,0,0,0,0,0,-359,0, - 0,0,-34,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-448,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-481,0, - 0,-599,0,0,0,0,0,-433,0,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,-52,0,0,0,0, - 0,0,0,0,0,0,0,-36,0,0, - -462,0,0,0,0,0,0,0,0,0, - 0,-59,0,-37,-1,0,0,0,0,-434, - 0,0,0,-38,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-285,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-247,0,0,0, - 0,0,-609,0,0,0,0,0,-522,0, - 0,0,-226,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,0,0,-39,0, - 0,0,0,0,-63,0,0,0,-41,0, - 0,0,-40,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-323,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-306,-284,0,0,0,0,-43,0,0, - 0,-463,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -324,0,0,0,0,-205,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -384,-321,-44,-113,0,0,0,-100,0,0, - 0,-148,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-351,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -610,0,0,0,0,0,-101,0,0,0, - -244,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,-319,0, - 0,0,0,0,0,0,-77,0,0,-42, - 0,0,-307,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,-355,0, - 0,0,0,0,0,0,0,-541,0,0, - 0,0,-356,0,0,-329,0,0,0,0, - 0,0,0,0,-103,0,0,0,-57,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-368,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-58,0,0,-70,0,-119, - 0,0,0,-104,0,0,0,-71,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,-73,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-105,0,0,0,-74,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-573,0,0,0,0, - -217,0,0,0,0,0,0,0,0,-218, - 0,0,-330,0,0,-161,0,-258,-582,0, - 0,-106,0,0,0,-220,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-617,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-410,0, - 0,-466,0,0,-165,0,0,-612,0,0, - -107,0,0,0,-488,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-239,0,0,0,0,0,0, - 0,0,-465,0,0,0,0,-287,0,0, - 0,0,0,-202,0,-114,0,0,0,-108, - 0,0,0,-492,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-245,0,-246,0,0,-568,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-272,0,0,-338,0,0,-109,0, - 0,0,-343,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-224,0,0,0,0,0,0,0, - -115,0,0,0,0,0,0,0,-66,0, - 0,0,0,0,-397,0,0,-110,0,0, - 0,-513,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-425,0,0,0,-250,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -213,0,0,0,0,0,-145,0,0,0, - -362,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-390, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-363,0,0,-230, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-584,-116,-117,0,0,0,0, - 0,0,0,0,0,0,-588,0,0,0, - 0,0,-158,-336,-315,-222,0,0,0,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,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-281,0,0,0,0,0,0,-391,-518, - -415,0,0,-260,0,0,0,-124,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-485,-125,-126,0, - 0,-503,0,0,0,0,0,0,0,0, - -142,0,0,-451,0,0,0,0,-468,-381, - 0,0,-497,0,0,0,-544,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-149,0,0, - 0,0,0,0,-316,0,0,0,0,0, - 0,0,0,0,0,0,-416,0,-431,0, - 0,-164,0,0,0,-150,0,0,0,0, - 0,0,0,0,-380,-370,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-151,0, - 0,-520,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-467,0, - 0,0,-167,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-168,-282,-442,0,0,0,0,0,0, - -394,0,0,0,0,0,0,0,-252,0, - 0,-111,-274,-489,0,0,-479,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 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,-490, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-169,-446,-170,0,0,-288,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-499,0,-171,-172,0,-533,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,0,0,0,0,0,0, - 0,0,0,0,-289,0,0,0,0,0, - -534,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-308,-603,0,0,0,0, - 0,0,-173,0,0,0,0,-475,0,0, - -317,0,0,-449,0,-240,-174,-332,-455,0, - -589,0,0,-309,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -175,0,0,0,0,-478,0,0,0,0, - -176,0,0,0,-54,0,0,0,0,0, - 0,0,-348,0,0,0,0,0,0,-500, - -543,-49,0,0,0,0,0,0,0,0, - 0,0,0,0,-511,0,0,0,0,0, - 0,0,-177,0,-155,0,0,0,0,-291, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-178,-366,0,0,0,0,0,0, - -179,-180,0,0,0,0,-473,0,0,0, - 0,0,0,0,0,0,0,-318,0,0, - 0,0,-181,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, - -562,0,-182,0,0,0,0,0,0,0, - -127,0,0,0,0,0,0,-64,-271,0, - -486,0,-350,0,-183,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-554,0, - 0,-184,0,0,0,0,0,0,0,-99, - 0,0,0,-185,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-540,0,-325,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-421,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-591,0,0,0,-157,0,0,-186,0, - -326,0,0,0,0,0,0,0,0,0, - -261,-187,-352,-358,0,0,0,0,0,-188, - 0,-189,-376,0,-353,0,0,0,-190,-379, - 0,0,0,0,-191,-192,-206,0,0,0, - 0,0,0,0,0,0,-195,0,0,0, - 0,-97,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-196,-197,0,0,0, - 0,0,0,-201,0,0,0,0,0,0, - -327,-392,0,0,-204,0,0,0,0,-98, - 0,0,0,-515,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-328,-214,0,-17,0,0, - 0,0,0,0,0,-443,0,0,0,0, - 0,0,0,0,0,0,0,0,-333,0, - -335,0,-216,-278,-221,0,0,0,0,0, - 0,0,-398,-422,0,-423,0,0,-367,0, - -437,0,0,-227,0,0,0,0,0,0, - 0,0,0,0,-552,0,0,0,0,0, - -262,0,0,0,0,0,-372,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,-393,0,0,-229, - 0,-231,0,0,0,0,0,0,-200,0, - 0,0,-212,0,0,0,-95,0,0,0, - -374,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-508,0,0,0,-233,0, - -470,0,0,-474,0,0,-234,0,-235,-236, - 0,0,-378,0,0,0,-238,0,0,0, - 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,-129,-253,-265,0,-131, - 0,0,0,-516,0,-453,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-266,-273,0,0, - 0,0,-427,0,0,0,0,-477,-494,-279, - -523,0,0,0,-525,0,-389,-406,0,0, - -484,0,0,0,0,0,0,0,0,0, - 0,0,0,-290,-292,-296,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -225,0,0,0,0,-346,0,0,0,0, - 0,0,0,0,-407,-532,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-578,0,0,-471,-411,0, - -298,-579,0,0,-413,0,0,-299,-550,-547, - 0,0,0,0,-344,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-382,-558,0,0,0,0,0, - 0,-537,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-304,0,0,0,0, - 0,-312,-313,-314,0,0,0,0,0,0, - 0,0,-322,0,-414,-551,0,0,0,0, - 0,0,-331,0,0,0,-310,0,0,0, - 0,0,0,0,0,0,0,0,0,-334, - -457,0,0,0,0,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,0,-555,-472,-339,0,0,0,0, - 0,-561,-341,-593,-342,0,-496,0,0,0, - 0,-360,0,0,-502,-507,-509,-361,0,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, - -519,0,0,0,-88,0,0,0,-549,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-377,-385, - -557,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,-559, - 0,0,0,0,-560,0,0,0,-90,0, - 0,0,-585,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-613,-587,-611,0,0,0,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,-400,-228,0,0,0,0,0, - 0,0,-495,0,0,0,-404,0,0,0, - 0,0,0,0,0,-405,-419,-420,-256,0, - 0,0,0,-429,-430,0,0,0,0,-521, - -596,0,-487,-535,0,-438,-440,0,0,0, - 0,-458,-604,0,0,0,0,-459,0,0, - 0,0,0,0,0,0,0,0,0,0, - -464,0,-480,-482,0,0,0,0,0,0, - 0,0,-575,0,0,0,0,0,0,0, - 0,-364,0,0,0,0,0,0,0,0, - 0,0,0,0,-498,0,0,0,0,-576, - 0,-504,-506,-512,0,-526,-527,-528,-538,-92, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-539,0,0,-545,0,-556,0,0, - -569,0,-570,0,0,0,-571,0,0,-19, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-581,-597,-598,-614,-616,-618,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,-263, 0,0,0,0,0,0,-143,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-123, - 0,0,0,-122,0,-237,0,-146,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,-60,0,0,0,0,0,0, + -7,0,0,0,0,-121,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -586,0,0,0,0,0,0,0,0,0, - 0,-293,0,0,-14,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-297,0,0, + 0,0,0,0,-81,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -642,0,0,0,0,0,0,0,0,0, + 0,-8,0,0,-160,0,0,0,0,0, + 0,0,0,-152,0,0,0,0,-9,0, + -193,0,0,0,-128,-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,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-300, - 0,0,0,0,0,0,-144,0,0,0, + 0,0,0,0,-677,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-148,0, + -328,0,0,0,0,-16,0,0,0,0, + -11,0,0,0,0,0,-12,0,0,-13, + 0,-335,0,0,0,0,0,0,-485,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,0,0,0,-456,0,0,0,0, - 0,0,0,0,0,0,0,-46,0,0, + 0,-15,-82,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-369,0,0,0,0,0,0,-365,0, + 0,0,0,0,0,0,0,0,-518,0, + 0,0,0,0,0,0,0,-53,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-284,0,0,0,0,-30,0,-411,0, + 0,0,0,-604,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,-325, + 0,0,0,0,0,-31,0,0,-32,0, + 0,0,0,0,0,-33,0,-139,-34,0, + 0,0,0,-551,0,0,0,0,-35,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,-118,-575,0,0,0,0, + 0,0,0,0,0,0,0,-36,0,0, + -434,0,-159,0,0,0,-250,0,0,0, + 0,0,0,0,0,0,0,-549,0,-509, + 0,0,0,0,-37,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,-408,0,0,0, + 0,-599,0,0,0,0,0,0,0,0, + 0,0,0,-640,0,0,0,0,0,0, + 0,-469,0,0,0,0,-313,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-371,0,0,0,0,0,0, - -383,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-336,0, + 0,0,-214,0,-546,0,0,0,0,0, + 0,0,0,0,-140,0,0,0,-550,0, + -75,0,0,0,0,0,0,0,0,0, + 0,0,0,-38,0,0,0,-3,0,0, + 0,0,-416,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-364,0,0,0,0,-252, + -258,0,0,0,0,0,0,0,0,0, + -220,0,0,0,0,0,-413,0,0,0, 0,0,0,0,0,0,0,0,0,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,0,0,0,0,0, - 0,0,0,0,0,-439,-133,0,0,0, - 0,0,-130,0,0,0,0,0,0,0, + 0,0,0,0,0,-481,0,0,-362,0, + 0,0,0,0,0,0,0,0,0,-453, + -39,0,0,0,0,-490,0,0,0,0, 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,-40,0,-256,0,0, + 0,0,0,0,0,0,0,0,0,-42, + 0,0,0,0,-365,0,0,0,0,-76, + 0,0,0,0,-57,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,0,0,0,0,0, - 0,0,0,0,0,0,0,-441,-136,-303, - 0,0,0,0,0,0,0,0,0,-531, + 0,0,0,-522,-466,0,-409,0,0,0, + 0,0,0,0,0,0,0,0,0,-221, + 0,0,0,0,0,-580,0,0,0,0, + -482,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-262,-568,0,0,-156,0,-58,0, + 0,0,0,0,0,0,0,0,-447,0, + 0,0,0,0,-41,0,0,0,0,-543, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-422,0,0,0,-166,-231,-489,0,0, + 0,-670,0,0,-526,0,0,0,0,0, + 0,-70,0,-544,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,0,0,0,0,0,0,0,-445, - -454,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-483,0,0,0,0, + -71,0,0,0,0,0,0,0,0,0, + 0,-503,0,0,0,0,0,-100,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,-527,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-257,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, - 0,0,0,0,-602,0,0,0,0,0, + 0,0,0,0,0,-529,0,0,0,-51, 0,0,0,0,0,0,0,0,0,0, - 0,-340,0,0,0,0,0,0,0,0, - 0,-548,0,-264,-401,0,0,0,0,0, + -73,0,0,0,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,0, + 0,0,0,0,-554,-74,-114,-115,-52,-253, + 0,0,0,0,0,0,0,0,0,-237, + -116,0,0,-117,0,-103,0,0,0,0, + -576,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-572,0,0,0,0,-124,-646,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-62,0,-104,0,0,0,0,-125, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-583,-198,0,0,0,0,0, - -269,0,0,0,0,0,0,0,0,0, + 0,0,-579,0,0,0,-59,-647,0,0, + 0,0,0,0,-126,0,0,0,0,0, + 0,0,0,-105,0,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,-644,-356,-142,-347,-348,0,0,0,0, + 0,0,0,0,0,0,-269,-113,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,0,0,0, + 0,0,0,0,-216,-392,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-119, + 0,-107,0,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,-228,-488, + 0,0,0,0,-229,0,0,0,0,0, + 0,-417,0,0,0,0,0,0,-149,0, + -108,0,0,0,0,-165,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-312,-610, + 0,0,-150,0,0,0,0,0,0,0, + -151,0,0,-167,-213,0,0,-233,0,-109, + 0,0,0,0,-445,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-235,0,0, + -435,-261,0,0,0,0,0,0,0,0, + 0,0,-322,-263,0,0,-315,0,-110,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,-323,0,0,-169, + -571,0,0,0,0,0,0,0,0,0, + 0,-520,-327,0,0,-330,0,-145,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,-329,-349,0,-171,-358, + 0,0,0,0,0,0,0,-357,0,0, + -438,0,0,0,-241,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,-590, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-81,0,0,0,0,0,0,0, + 0,0,0,0,-405,0,0,0,0,0, + 0,0,0,0,-634,0,0,-448,0,0, + 0,0,-265,0,0,0,-611,0,0,0, + 0,0,-472,-172,-270,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-630,0,0,0,-499,0,0, + 0,0,0,0,0,0,0,-473,0,0, + 0,-173,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, - 0,0,0,0,0,0,0,-20,0,0, + -386,-462,0,0,0,0,0,0,0,0, + 0,0,0,-174,0,0,-598,-366,0,0, + 0,0,-295,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -135,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,-137,0,0,0, + -210,-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,0,0, - 0,0,0,0,0,-337,0,0,0,0, - 0,-270,-153,0,0,0,-483,0,0,0, - -386,0,0,0,0,0,0,0,0,0, + 0,-397,0,-175,0,0,-176,0,-638,0, + 0,0,0,0,0,-177,0,0,0,0, + 0,-296,0,0,0,0,-178,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,-219, + -84,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-179,0,0,0,0,0, + -402,-180,-404,0,-406,0,0,0,-412,0, + -661,0,0,0,-367,0,0,0,0,-297, + 0,0,0,0,-181,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-222,-85,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-182,0,0,0,0,0,-430,-183, + -433,0,-446,0,0,0,-452,0,-184,0, + 0,0,-368,0,0,0,0,-298,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-243,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-403,-22,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-536,0,0,0,0,0,0,0,0, - -450,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,-479,-186,-480,0, + -494,0,0,0,-528,0,-187,0,0,0, + -369,0,0,0,0,-299,0,0,0,0, + -536,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-475,-23,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,-532,-189,-535,0,-552,0, + 0,0,-583,0,-190,0,0,0,-387,0, + 0,0,0,-300,0,0,0,0,-558,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-22,0,0,0, + 0,-506,-24,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-191,0,0,0, + 0,0,-605,-192,-609,0,-613,0,0,0, + -619,0,-195,0,0,0,-389,0,0,0, + 0,-301,0,0,0,0,-569,0,0,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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-84,0,0,0,0,0, - 0,0,0,0,0,0,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, - 0,0,0,0,0,-387,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-163,0,0,0,0,-408,0,0,0, - 0,0,-501,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,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,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,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,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,0,-28,0,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,0, - 0,0,0,0,0,0,0,0,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,-79,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,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -248,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,0,0,0,0,0,0,0, - 0,0,0,0,0,-138,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-154,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-524, - -347,0,0,0,0,-373,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -574,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-564,-606,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-605,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,0,0,0,0,0, - 0,0,0,-476,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-345,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-529,0,0,0, - 0,0,0,0,-530,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-563,0,0,0,0,0,-417,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-565,0,0,0,0,0, - 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,-566, - -444,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,0,-199,0,0,0,0,0, + -636,-637,-651,0,0,0,0,0,-654,-200, + -201,0,0,0,-421,0,0,0,0,-302, + 0,0,0,0,-573,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-593,-26,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,0,0,0,-662,-203, + -204,0,-205,0,0,-206,-207,-208,-212,0, + 0,-215,-426,0,0,0,0,-303,0,0, + 0,0,-574,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-633,-27,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,-227,-232,-238,0, + -240,-242,0,-657,0,0,0,0,0,-244, + -428,0,0,0,0,-304,0,0,0,0, + -581,0,0,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,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-245,0, + -246,-247,-249,-525,-264,-276,-277,0,-285,-314, + 0,-667,0,0,0,0,0,-320,-432,0, + 0,0,0,-305,0,0,0,0,-331,0, + 0,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,0,0,0,0,0,0,0, + 0,0,0,0,0,-547,-333,0,-631,0, + 0,-337,-602,-545,-339,0,-340,0,0,-668, + 0,0,0,0,0,-345,-443,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,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,-420,-353,0,-354,-578,0,-64, + -355,-363,-374,0,0,-601,0,-375,-626,-533, + -376,0,0,0,0,0,0,0,0,-555, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-675,0, + 0,0,0,0,0,0,-377,0,0,-410, + 0,0,-378,-460,0,0,-461,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,-379,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -380,0,0,0,0,-463,-381,-162,0,0, + 0,0,0,0,0,0,0,0,0,0, + -620,0,0,-164,0,0,0,0,-608,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,-616,-382, + -649,-671,-383,0,0,0,0,0,-384,0, + 0,-468,-470,0,0,-524,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,0,-385,0,0,0,-388,-393,-395,0, + 0,0,0,0,0,-396,0,0,-414,-415, + 0,0,-514,-530,-560,-565,-567,-537,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-567,0,0,0,0,0,0,0, + 0,-431,0,0,-439,0,0,-454,0,0, + -577,-607,0,0,-548,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-592,0,0, - 0,0,0,0,0,-320,0,0,0,0, + 0,-458,0,0,-459,-476,-477,-486,-487,0, + 0,-495,0,0,-497,0,0,-515,-516,0, + 0,-615,-617,-618,-643,-645,-591,0,0,0, + 0,0,0,0,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,-504, + -561,0,0,-538,0,0,-540,0,0,-669, + -556,0,0,-592,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -562,0,0,0,-564,-570,-584,-585,0,0, + -586,0,0,-596,0,0,-597,-603,0,0, + -614,-627,0,0,-628,-112,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-629,-639,-655,-656,-672,-674,-676,0, + 0,0,0,0,0,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,0,0,0, + 0,-350,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-146,0,0,0,0, + 0,0,0,0,0,0,0,-78,0,0, + 0,0,0,0,0,0,-127,0,0,0, + 0,0,0,0,0,0,0,0,-54,0, + 0,0,0,0,-1,-217,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-123,0,0,0,0,0,0,-444, + 0,0,0,0,0,0,0,0,0,-14, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -595,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-275, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-249,-223,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,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-519,0,0,0,0,0,0,0, + 0,0,0,0,0,-158,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,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,0,0,0,0,0,0,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,0, + 0,0,0,0,0,0,0,0,0,0, + -478,0,0,0,0,0,0,0,0,0, + 0,0,0,-531,0,0,0,0,0,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,-474,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-508,0,0,0,0,0, + -97,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-98,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,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,0,0, + 0,0,0,-500,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,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,0,0,0,0,0,0,0,0,0, + 0,-289,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-290,0, + 0,0,0,0,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,-130,0,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,0, + -95,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,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,-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,0,0,-291,0, + 0,0,0,0,0,0,0,0,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,0,0,0,0, + 0,0,0,-510,0,0,0,0,0,0, + 0,0,0,0,0,0,-542,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-589,0,0,0,0,0,0,0, + 0,0,-50,0,0,0,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,-652,0,0, + 0,0,0,0,-394,0,0,0,0,0, + -590,0,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,0,-553,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-129,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-595,0,0,0,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,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,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,0,0,0,0, + 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,0,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,0,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,-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, + -155,-77,0,0,0,0,0,0,-507,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,-511,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-239,0,0, + 0,0,0,0,0,0,0,0,0,-541, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,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,0,0,0,0,-402,0,0,0, - -375,0,-72,0,0,0,0,0,0,0, + 0,-19,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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,-286,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-280,0,0,0,0,0,0, + 0,0,0,0,0,-287,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,-311,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-388,0, 0,0,0,0,0,0,0,0,0,0, - -395,0,0,0,0,0,-396,0,0,0, - 0,-302,0,0,0,0,0,0,0,0, - 0,-460,0,0,0,0,0,0,0,0, - 0,0,0,-505,0,0,0,0,0,0, - 0,0,0,0,-542,0,0,0,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,-305,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-577,0,0, - 0,-600,0,0,0,0,0,0,0,0, - 0,0,-601,0,0,0,0,0,0,-594, + 0,0,0,0,0,0,0,0,0,-332, 0,0,0,0,0,0,0,0,0,0, - -607,-608,-615,0,0,0,0,0,0,0, + 0,0,-373,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-418,0,0,0,0,0,0, + 0,0,0,0,0,0,-278,0,0,0, + -131,0,0,0,-361,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-18,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-594,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,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,0,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,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-248,-157,0,0,0, + 0,0,0,-122,-342,0,0,0,0,0, + 0,-351,0,0,0,0,0,0,0,0, + 0,0,0,0,-370,0,0,0,0,0, + 0,0,0,0,0,0,-132,0,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, + -144,-557,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-632,0,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,-419,0,0, + 0,0,-49,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,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,-437,0,0,0,0,-211, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0, + 0,-456,0,0,0,0,-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,0,0, + 0,0,0,0,0,0,0,0,0,0, + -496,-274,-275,0,0,0,0,0,0,-133, + 0,0,0,-236,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-498,0,-306, + 0,0,0,0,0,0,-136,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,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-502,-371,0,0,0,0, + 0,0,-209,-343,0,0,0,0,0,0, + 0,0,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,0,0,0,0,0, + 0,-606,0,0,0,0,0,0,0,0, + -279,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-641,0, + 0,0,0,0,-648,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-135,0,0,0,-588,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,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-501,-280,0,0, + 0,0,0,-137,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-334,0,-523,-612,0,0, + 0,0,0,0,-441,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-559,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,-259,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,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,-21,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -138,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-154,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-283,0,0,-153,0,0, + 0,-582,0,0,0,0,0,0,0,0, + 0,0,-234,0,0,0,0,0,0,0, + 0,0,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,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-622,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 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,0,0,0,0,0,0,0, + 0,0,-310,0,0,0,0,-663,0,0, + 0,-346,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-587,0, + 0,0,0,0,-311,0,0,0,0,0, + -427,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-281,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-621, + 0,0,0,0,0,0,0,-318,0,0, + 0,0,0,0,0,-623,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,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,-624,-429,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-625,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-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,0,-650,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-653, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-282,0,0, + 0,0,0,0,0,0,0,-344,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 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,-254,0,0,0,0,0,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,0,-163,0,0,0,0, + -399,-45,0,0,0,0,0,0,0,0, + 0,0,-319,0,0,0,0,0,0,0, + 0,0,0,0,-321,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-324,0, + 0,0,0,0,0,0,0,0,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,0,0,0,0,0, + -442,0,0,0,0,0,0,0,0,0, + 0,0,-449,0,0,0,-660,0,0,0, + 0,0,0,0,-450,0,0,0,-664,-517, + 0,0,0,0,-563,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-600,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-635,0,0,0, + -400,0,0,0,-401,0,0,0,0,0, + 0,-658,0,0,0,0,-659,0,0,0, + 0,-391,0,0,0,-465,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-46,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,-48,0,0,0,0,0,0,-260,-665, + -666,-673,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -675,12 +805,7 @@ public class GPPSizeofExpressionParserprs 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,0, - 0,0,0,0,0,0,0,0,0,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; @@ -688,739 +813,890 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static short rhs[] = baseCheck; public final int rhs(int index) { return rhs[index]; }; - public interface BaseAction { - public final static char baseAction[] = { - 190,4,124,91,91,32,32,86,86,46, - 46,44,44,222,1,1,16,16,16,16, + public interface BaseAction0 { + public final static char baseAction0[] = { + 205,5,141,103,103,32,32,99,99,47, + 47,43,43,238,1,1,16,16,16,16, 16,16,16,17,17,17,15,11,11,6, - 6,6,6,6,6,2,78,78,5,5, - 12,12,53,53,149,149,150,69,69,52, + 6,6,6,6,6,2,84,84,4,4, + 12,12,53,53,166,166,167,81,81,49, 18,18,18,18,18,18,18,18,18,18, - 18,18,18,18,18,18,18,18,18,151, - 151,151,126,126,19,19,19,19,19,19, - 19,19,19,19,19,19,20,20,191,191, - 192,192,193,154,154,155,155,152,152,156, - 153,153,21,21,22,22,27,27,27,29, - 29,29,29,30,30,30,31,31,31,33, - 33,33,33,33,34,34,34,35,35,36, - 36,38,38,39,39,41,41,42,42,48, - 48,47,47,47,47,47,47,47,47,47, - 47,47,47,47,45,37,157,157,102,102, - 194,194,95,223,223,79,79,79,79,79, - 79,79,79,79,80,80,80,73,73,61, - 61,195,195,81,81,81,110,110,196,196, - 82,82,82,82,197,197,83,83,83,83, - 83,84,84,87,87,87,87,87,87,87, - 87,55,55,55,55,55,127,127,125,125, - 56,198,28,28,28,28,28,51,51,92, - 92,92,92,92,164,164,159,159,159,159, - 159,160,160,160,161,161,161,162,162,162, - 163,163,163,93,93,93,93,93,94,94, - 94,13,14,14,14,14,14,14,14,14, - 14,14,14,103,131,131,131,131,131,131, - 129,129,129,165,166,166,130,130,199,168, - 168,167,167,133,133,111,76,76,134,58, - 50,169,169,59,89,89,170,170,158,158, - 135,136,136,137,72,72,171,171,66,66, - 66,63,63,62,67,67,90,90,70,70, - 70,65,96,96,105,104,104,71,71,64, - 64,68,68,54,108,108,108,98,98,98, - 99,99,100,100,100,101,101,112,112,112, - 114,114,113,113,224,224,97,97,201,201, - 201,201,201,139,49,49,173,200,200,140, - 140,106,106,106,107,175,202,202,43,43, - 128,141,141,141,141,204,116,115,115,132, - 132,132,176,177,177,177,177,177,177,177, - 177,177,177,177,206,206,203,203,205,205, - 118,119,119,119,119,120,207,121,117,117, - 208,208,178,178,178,178,109,109,109,209, - 209,8,8,9,210,210,211,179,172,172, - 180,180,181,182,182,7,7,10,212,212, - 212,212,212,212,212,212,212,212,212,212, - 212,212,212,212,212,212,212,212,212,212, - 212,212,212,212,212,212,212,212,212,212, - 212,212,212,212,212,212,212,212,212,212, - 74,77,77,183,183,143,143,144,144,144, - 144,144,144,3,145,145,142,142,122,122, - 88,75,85,85,174,174,123,123,213,213, - 213,146,146,138,138,214,214,23,23,23, - 40,40,24,24,215,215,184,184,184,185, - 185,216,216,186,186,25,25,217,217,187, - 187,187,187,26,60,218,218,219,219,188, - 188,188,147,147,147,19,19,33,33,42, - 17,80,220,189,189,189,148,148,28,57, - 92,137,137,137,118,118,118,199,204,116, - 65,72,165,134,13,13,71,88,88,88, - 18,190,190,1563,35,2519,2486,232,4863,27, - 30,31,1220,1232,26,28,2458,261,25,23, - 50,1265,104,75,76,106,590,537,538,539, - 1336,2324,1377,1344,1464,450,1393,1494,1478,1589, - 2822,1504,1603,3076,1790,141,273,1340,1790,2332, - 156,142,3831,2197,540,537,538,539,2311,35, - 1117,32,1832,6169,27,30,31,1220,1232,339, - 28,957,3224,2372,231,1629,540,537,538,539, - 158,540,537,538,539,541,537,538,539,727, - 1926,2421,34,672,1924,234,229,230,3813,727, - 35,3387,2792,35,1117,32,274,3829,27,30, - 31,1220,1232,26,28,1364,2563,512,3573,3488, - 319,2277,321,3114,315,2241,556,1320,333,3299, - 3894,241,244,247,250,4373,727,3834,540,537, - 538,539,46,73,759,1890,778,2813,352,2845, - 1822,583,328,335,4054,893,346,1702,1166,349, - 685,498,4050,2931,3356,3360,4367,4827,2962,35, - 1117,32,2805,1172,27,30,31,1220,1232,26, - 28,887,261,25,23,50,1265,104,75,76, - 106,1367,4429,1676,256,1336,343,1377,1344,1464, - 628,1393,1494,1478,1589,86,1504,1603,100,1790, - 141,1498,35,1117,32,518,142,41,30,31, - 1220,1232,2938,2992,35,1117,32,721,5132,27, - 30,31,1220,1232,57,28,519,2962,35,1117, - 32,2805,1172,27,30,31,1220,1232,26,28, - 887,261,25,23,50,1265,104,75,76,106, - 727,35,282,2757,1336,343,1377,1344,1464,290, - 1393,1494,1478,1589,814,1504,1603,163,1790,141, - 1182,557,499,1707,518,142,541,537,538,539, - 514,2938,3105,35,1117,32,2584,5132,27,30, - 31,1220,1232,56,28,519,541,537,538,539, - 3077,2133,3434,3106,682,2962,35,1117,32,2805, - 1172,27,30,31,1220,1232,26,28,887,261, - 25,23,50,1265,104,75,76,106,727,35, - 1898,389,1336,343,1377,1344,1464,2480,1393,1494, - 1478,1589,3357,1504,1603,450,1790,141,177,514, - 6124,444,518,142,727,35,1898,389,3833,2938, - 541,537,538,539,61,541,537,538,539,3107, - 2846,453,3106,519,3190,35,1117,32,2805,1172, - 27,30,31,1220,1232,26,28,887,261,25, - 23,50,1265,104,75,76,106,49,352,3957, - 1367,1336,343,1377,1344,1464,46,1393,1494,1478, - 1589,3299,1504,1603,1971,1790,141,1693,35,397, - 46,518,142,724,2805,724,1905,514,2938,1385, - 35,1117,32,60,3829,27,30,31,1220,1232, - 59,28,519,580,263,35,279,3183,343,3273, - 3106,3265,35,1117,32,1923,1172,27,30,31, - 1220,1232,26,28,887,261,25,23,50,1265, - 104,75,76,106,2938,391,610,1980,1336,428, - 1377,1344,1464,2281,1393,1494,1478,1589,2086,1504, - 1603,461,1790,141,3434,1971,515,907,379,142, - 3041,35,1117,32,1300,1172,27,30,31,1220, - 1232,26,28,887,261,25,23,50,1265,104, - 75,76,106,263,35,279,3488,1336,3441,1377, - 1344,1464,3984,1393,1494,1478,1589,356,1504,1603, - 197,1790,141,1367,1971,533,2956,379,142,69, - 709,70,1630,35,1898,389,3299,380,1980,3399, - 335,974,450,3926,35,1117,32,6142,1172,27, - 30,31,1220,1232,26,28,887,261,25,23, - 50,1265,104,75,76,106,2437,2845,4027,3026, - 1336,386,1377,1344,1464,49,1393,1494,1478,1589, - 1000,1504,3050,1367,1888,659,380,1980,3404,35, - 1117,32,1093,1172,27,30,31,1220,1232,26, - 28,887,261,25,23,50,1265,104,75,76, - 106,2179,42,3357,460,1336,353,1377,1344,1464, - 387,1393,1494,1478,1589,3031,1504,1603,376,1790, - 141,3434,1971,2479,2949,379,142,3329,35,1117, - 32,1367,1172,27,30,31,1220,1232,26,28, - 887,261,25,23,50,1265,104,75,76,106, - 727,35,2421,3358,1336,2477,1377,1344,1464,5906, - 1393,1494,1478,1589,5441,1504,1603,196,1790,141, - 2950,35,1117,32,553,142,40,30,31,1220, - 1232,727,35,295,380,1980,259,3177,35,277, - 3669,35,1117,32,1279,1172,27,30,31,1220, - 1232,26,28,887,261,25,23,50,1265,104, - 75,76,106,727,35,5531,3446,1336,377,1377, - 1344,1464,51,1393,1494,1478,1589,70,1504,1603, - 374,1790,141,727,35,1898,389,156,142,3669, - 35,1117,32,3152,1172,27,30,31,1220,1232, - 26,28,887,261,25,23,50,1265,104,75, - 76,106,263,35,454,1868,1336,6214,1377,1344, - 1464,3858,1393,1494,1478,1589,432,1504,1603,3998, - 1790,141,727,35,1898,389,373,142,3669,35, - 1117,32,3134,1172,27,30,31,1220,1232,26, - 28,887,261,25,23,50,1265,104,75,76, - 106,709,568,551,77,1336,46,1377,1344,1464, - 847,1393,1494,1478,1589,435,1504,1603,1186,1790, - 141,2950,35,1117,32,373,142,3364,30,31, - 1220,1232,46,3625,1344,2887,925,685,91,1340, - 3669,35,1117,32,1290,1172,27,30,31,1220, - 1232,26,28,887,261,25,23,50,1265,104, - 75,76,106,727,35,2421,276,1336,372,1377, - 1344,1464,154,1393,1494,1478,1589,2845,1504,1603, - 611,1790,141,727,35,1898,389,373,142,3468, - 35,1117,32,2657,1172,27,30,31,1220,1232, - 26,28,887,261,25,23,50,1265,104,75, - 76,106,1858,35,2421,276,1336,371,1377,1344, - 1464,2179,1393,1494,1478,1589,434,1504,1603,1285, - 1790,141,447,3912,3913,3299,553,142,2761,3115, - 35,1117,32,1288,1172,27,30,31,1220,1232, - 26,28,887,261,25,23,50,1265,104,75, - 76,106,727,3817,2421,73,1336,24,1377,1344, - 1464,1320,1393,1494,1478,1589,422,1504,1603,369, - 1790,141,3434,3025,35,277,140,142,3669,35, - 1117,32,3639,1172,27,30,31,1220,1232,26, - 28,887,261,25,23,50,1265,104,75,76, - 106,1858,35,2421,3826,1336,46,1377,1344,1464, - 5960,1393,1494,1478,1589,617,1504,1603,200,1790, - 141,1446,3182,46,3299,157,142,1340,3669,35, - 1117,32,2860,1172,27,30,31,1220,1232,26, - 28,887,261,25,23,50,1265,104,75,76, - 106,1819,3255,35,280,1336,68,1377,1344,1464, - 154,1393,1494,1478,1589,552,1504,1603,1694,1790, - 141,727,35,1898,389,153,142,3669,35,1117, - 32,1496,1172,27,30,31,1220,1232,26,28, - 887,261,25,23,50,1265,104,75,76,106, - 974,727,35,295,1336,525,1377,1344,1464,3147, - 1393,1494,1478,1589,433,1504,1603,3076,1790,141, - 1728,1340,354,3434,152,142,3669,35,1117,32, - 1917,1172,27,30,31,1220,1232,26,28,887, - 261,25,23,50,1265,104,75,76,106,727, - 35,2421,278,1336,158,1377,1344,1464,1743,1393, - 1494,1478,1589,3110,1504,1603,3076,1790,141,198, - 1340,44,3357,151,142,3669,35,1117,32,1255, - 1172,27,30,31,1220,1232,26,28,887,261, - 25,23,50,1265,104,75,76,106,727,35, - 2421,3846,1336,158,1377,1344,1464,1971,1393,1494, - 1478,1589,3525,1504,1603,2707,1790,141,1474,2035, - 3299,312,150,142,3669,35,1117,32,1348,1172, - 27,30,31,1220,1232,26,28,887,261,25, - 23,50,1265,104,75,76,106,727,35,2421, - 281,1336,53,1377,1344,1464,1303,1393,1494,1478, - 1589,662,1504,1603,3804,1790,141,439,3408,610, - 1980,149,142,3669,35,1117,32,1433,1172,27, - 30,31,1220,1232,26,28,887,261,25,23, - 50,1265,104,75,76,106,1693,35,397,3553, - 1336,46,1377,1344,1464,2078,1393,1494,1478,1589, - 2845,1504,1603,3076,1790,141,3299,1340,2187,3957, - 148,142,3669,35,1117,32,1367,1172,27,30, - 31,1220,1232,26,28,887,261,25,23,50, - 1265,104,75,76,106,1693,35,397,990,1336, - 158,1377,1344,1464,2658,1393,1494,1478,1589,1921, - 1504,1603,3076,1790,141,3299,1340,3492,3957,147, - 142,3669,35,1117,32,3894,1172,27,30,31, - 1220,1232,26,28,887,261,25,23,50,1265, - 104,75,76,106,727,1642,1320,52,1336,158, - 1377,1344,1464,3775,1393,1494,1478,1589,3698,1504, - 1603,3985,1790,141,3069,3455,2877,326,146,142, - 3669,35,1117,32,79,1172,27,30,31,1220, - 1232,26,28,887,261,25,23,50,1265,104, - 75,76,106,727,3554,3638,543,1336,3768,1377, - 1344,1464,5898,1393,1494,1478,1589,355,1504,1603, - 3988,1790,141,1924,3681,533,3703,145,142,3669, - 35,1117,32,3500,1172,27,30,31,1220,1232, - 26,28,887,261,25,23,50,1265,104,75, - 76,106,3634,46,383,555,1336,4092,1377,1344, - 1464,2894,1393,1494,1478,1589,323,1504,1603,3359, - 1790,141,405,2845,533,3533,144,142,3669,35, - 1117,32,3954,1172,27,30,31,1220,1232,26, - 28,887,261,25,23,50,1265,104,75,76, - 106,2821,3833,545,3590,1336,46,1377,1344,1464, - 1779,1393,1494,1478,1589,2380,1504,1603,3804,1790, - 141,727,35,1898,389,143,142,3607,35,1117, - 32,3180,1172,27,30,31,1220,1232,26,28, - 887,261,25,23,50,1265,104,75,76,106, - 727,35,1898,389,1336,180,1377,1344,1464,382, - 1393,1494,1478,1589,273,1504,1603,3071,3185,162, - 3926,35,1117,32,2465,1172,27,30,31,1220, - 1232,26,28,887,261,25,23,50,1265,104, - 75,76,106,273,3533,2995,2997,1336,524,1377, - 1344,1464,2465,1393,1494,1478,1589,2845,1504,1603, - 558,3185,162,46,3698,450,3299,1340,327,392, - 6181,324,1996,428,275,3669,35,1117,32,570, - 1172,27,30,31,1220,1232,26,28,887,261, - 25,23,50,1265,104,75,76,106,350,1652, - 2579,2179,1336,340,1377,1344,1464,325,1393,1494, - 1478,1589,2845,1504,1603,3498,1790,141,527,3391, - 3899,2332,579,142,3669,35,1117,32,631,1172, - 27,30,31,1220,1232,26,28,887,261,25, - 23,50,1265,104,75,76,106,3833,730,823, - 390,1336,2845,1377,1344,1464,3043,1393,1494,1478, - 1589,1675,1504,1603,46,1790,141,524,1340,1367, - 3434,138,142,3669,35,1117,32,79,1172,27, - 30,31,1220,1232,26,28,887,261,25,23, - 50,1265,104,75,76,106,2179,1320,916,2877, - 1336,3646,1377,1344,1464,450,1393,1494,1478,1589, - 6187,1504,1603,376,1790,141,220,2845,2746,2921, - 187,142,1385,35,1117,32,4461,3829,27,30, - 31,1220,1232,58,28,3700,3926,35,1117,32, - 3491,1172,27,30,31,1220,1232,26,28,887, - 261,25,23,50,1265,104,75,76,106,4413, - 95,3314,1367,1336,394,1377,1344,1464,428,1393, - 1494,1478,1589,87,1504,1603,100,3185,162,3926, - 35,1117,32,349,1172,27,30,31,1220,1232, - 26,28,887,261,25,23,50,1265,104,75, - 76,106,442,46,3434,2094,1336,3055,1377,1344, - 1464,450,1393,1494,1478,1589,6202,1504,1603,3299, - 3185,162,2677,3299,3698,3566,1340,3926,35,1117, - 32,582,1172,27,30,31,1220,1232,26,28, - 887,261,25,23,50,1265,104,75,76,106, - 2673,88,381,96,1336,563,1377,1344,1464,154, - 1393,1494,1478,1589,3299,1504,1603,3042,3185,162, - 3926,35,1117,32,2522,1172,27,30,31,1220, - 1232,26,28,887,261,25,23,50,1265,104, - 75,76,106,910,3700,1003,1833,1336,46,1377, - 1344,1464,1071,1393,1494,1478,1589,1207,1504,1603, - 286,3185,162,3572,448,1096,1192,1340,3926,35, - 1117,32,424,1172,27,30,31,1220,1232,26, - 28,887,261,25,23,50,1265,104,75,76, - 106,2573,35,1898,389,1336,3029,1377,1344,1464, - 154,1393,1494,1478,1589,3299,1504,1603,160,3185, - 162,4112,35,1117,32,294,1172,27,30,31, - 1220,1232,26,28,887,261,25,23,50,1265, - 104,75,76,106,273,2780,3908,3044,1336,2495, - 1377,1344,1464,2295,1393,1494,1478,1589,2845,1504, - 1603,3038,3185,162,3360,2185,3539,2300,46,2873, - 1340,2845,658,423,1680,35,1117,32,4311,6169, - 27,30,31,1220,1232,339,28,541,537,538, - 539,2327,540,537,538,539,3496,540,537,538, - 539,2376,3405,154,3563,4267,35,1898,389,672, - 4791,1793,199,46,5116,2179,426,978,236,261, - 3434,3698,727,35,1898,389,2412,71,590,537, - 538,539,526,448,3573,3434,319,2277,321,3114, - 314,2241,403,2579,332,280,3524,1320,273,613, - 2121,35,1117,32,4249,6154,27,30,31,1220, - 1232,339,28,1373,262,49,221,3689,2805,525, - 4871,1503,1573,227,1888,1046,231,2950,35,1117, - 32,564,154,3401,30,31,1220,1232,3299,2179, - 922,178,2850,3636,202,214,4942,234,229,230, - 201,211,212,213,215,589,167,287,274,306, - 310,1691,319,2277,321,46,314,2241,166,1340, - 3193,3698,3648,4122,181,165,168,169,170,171, - 172,1323,2430,241,244,247,250,4373,2847,1921, - 352,3833,4187,46,3710,1392,759,2212,344,1702, - 1166,349,154,583,590,537,538,539,3642,3076, - 1281,361,1831,1340,4050,2931,3356,3360,4367,4827, - 3926,35,1117,32,1501,1172,27,30,31,1220, - 1232,26,28,887,261,25,23,50,1265,104, - 75,76,106,2767,4429,3299,158,1336,6258,1377, - 1344,1464,231,1393,1494,1478,1589,297,2974,1729, - 35,3874,32,4311,6169,27,30,31,1220,1232, - 339,28,3698,243,229,230,1006,67,352,2892, - 2805,3299,540,537,538,539,344,1702,1166,349, - 3805,46,2915,46,46,1340,342,3393,1075,3411, - 2194,366,1099,46,343,2093,3834,3166,393,1544, - 46,3753,428,66,2654,1739,2001,1693,35,3400, - 3184,319,2277,321,3114,314,2241,3007,154,332, - 1305,1429,3926,35,1117,32,2995,1172,27,30, - 31,1220,1232,26,28,887,261,25,23,50, - 1265,104,75,76,106,4871,3195,3030,296,1336, - 49,1377,1344,1464,535,1393,1494,1478,2945,1888, - 1363,3299,46,544,3590,2563,4216,4867,420,3873, - 3926,35,1117,32,3434,1172,27,30,31,1220, - 1232,26,28,887,261,25,23,50,1265,104, - 75,76,106,65,3179,3299,2520,1336,2601,1377, - 1344,1464,613,1393,1494,2962,1910,35,1117,32, - 4311,6154,27,30,31,1220,1232,339,28,2693, - 303,2852,641,3145,2012,1840,343,64,289,540, - 537,538,539,46,46,154,46,2073,2407,3299, - 2941,46,2179,1595,4509,3637,5143,540,537,538, - 539,3489,2938,560,2796,635,35,454,2216,1031, - 6214,46,740,3835,957,1340,1176,3299,319,2277, - 321,3201,314,2241,3926,35,1117,32,3524,1172, - 27,30,31,1220,1232,26,28,887,261,25, - 23,50,1265,104,75,76,106,2949,154,4366, - 3121,1336,3220,1377,1344,1464,3031,1393,2872,727, - 35,1898,389,727,35,1898,389,3926,35,1117, - 32,3299,1172,27,30,31,1220,1232,26,28, - 887,261,25,23,50,1265,104,75,76,106, - 2943,306,310,1691,1336,3530,1377,1344,1464,94, - 2893,46,49,4428,46,3840,49,2325,5530,2423, - 2580,1888,663,3299,2820,1888,1643,3395,541,537, - 538,539,3926,35,1117,32,3710,1172,27,30, - 31,1220,1232,26,28,887,261,25,23,50, - 1265,104,75,76,106,4490,1453,2752,3498,1336, - 2000,1377,1344,1464,3434,2923,2041,35,1117,32, - 4311,6154,27,30,31,1220,1232,339,28,590, - 537,538,539,590,537,538,539,3531,3643,540, - 537,538,539,2093,3834,451,3912,3913,46,46, - 2795,3434,4440,1019,3858,46,5143,3299,3299,5565, - 300,1935,35,3874,32,4311,6154,27,30,31, - 1220,1232,339,28,78,3396,187,231,319,2277, - 321,231,314,2241,3919,537,538,539,3524,322, - 55,727,35,1898,389,567,2324,407,246,229, - 230,3532,249,229,230,3299,1716,35,3874,32, - 4311,6154,27,30,31,1220,1232,339,28,540, - 537,538,539,319,2277,321,3591,314,2241,540, - 537,538,539,1429,49,450,957,54,1790,3299, - 6262,3373,450,1888,1337,3299,3532,6273,1745,3434, - 46,307,310,1691,1989,2568,35,1117,32,3009, - 6154,27,30,31,1220,1232,339,28,319,2277, - 321,542,314,2241,3148,3434,289,562,1429,4962, - 420,3873,2782,35,3874,32,4311,6154,27,30, - 31,1220,1232,339,28,191,1608,540,537,538, - 539,404,3676,3732,3080,3919,537,538,539,3488, - 2045,3835,3194,3196,2764,3299,46,316,3552,321, - 2304,299,3532,3259,5551,420,3873,2416,35,1117, - 32,4311,6154,27,30,31,1220,1232,339,28, - 3733,3218,334,335,319,2277,321,561,314,2241, - 3926,35,1117,32,1429,1172,27,30,31,1220, - 1232,26,28,887,261,25,23,50,1265,104, - 75,76,106,2835,46,3358,3499,1336,4081,1377, - 1344,2676,4174,3605,46,3505,4700,1923,5609,319, - 2277,321,3361,314,2241,3299,3299,3299,3507,3407, - 4962,420,3873,3926,35,1117,32,547,1172,27, - 30,31,1220,1232,26,28,887,261,25,23, - 50,1265,104,75,76,106,2745,3499,378,3624, - 1336,3299,1377,1344,2753,3926,35,1117,32,3299, - 1172,27,30,31,1220,1232,26,28,887,261, - 25,23,50,1265,104,75,76,106,3488,3770, - 3731,3299,1336,99,1377,1344,2767,3926,35,1117, - 32,4614,1172,27,30,31,1220,1232,26,28, - 887,261,25,23,50,1265,104,75,76,106, - 3299,3500,335,573,1336,3299,1377,1344,2791,3926, - 35,1117,32,3299,1172,27,30,31,1220,1232, - 26,28,887,261,25,23,50,1265,104,75, - 76,106,2317,3698,3299,3697,1336,2771,1377,1344, - 2801,3926,35,1117,32,452,1172,27,30,31, - 1220,1232,26,28,887,261,25,23,50,1265, - 104,75,76,106,3769,1,574,531,1336,613, - 1377,1344,2843,2098,35,1117,32,3606,6154,27, - 30,31,1220,1232,339,28,3832,3892,3777,727, - 35,1898,389,227,3532,3955,541,537,538,539, - 1790,46,154,3297,3571,5566,3835,3936,6225,2179, - 922,178,3893,46,202,214,4942,2038,3956,304, - 201,211,212,213,215,589,167,541,537,538, - 539,3895,49,4018,3258,319,2277,321,166,601, - 2241,1888,659,2876,182,165,168,169,170,171, - 172,179,1316,35,1117,32,6038,6154,27,30, - 31,1220,1232,339,28,1705,541,537,538,539, - 3297,3488,4079,3897,2215,6225,4145,4147,2663,2591, - 3926,35,1117,32,351,1172,27,30,31,1220, - 1232,26,28,887,261,25,23,50,1265,104, - 75,76,106,4117,330,335,3699,1336,1011,1377, - 2863,4118,2993,2688,319,2277,321,3959,314,2241, - 3802,35,1117,32,3407,1172,27,30,31,1220, - 1232,26,28,887,261,25,23,50,1265,576, - 75,76,352,3901,4119,4142,2969,3807,4146,7280, - 344,1702,1166,349,7280,7280,3926,35,1117,32, - 2326,1172,27,30,31,1220,1232,26,28,887, - 261,25,23,50,1265,104,75,76,106,2993, - 46,430,7280,1336,1340,1377,2871,3543,35,1117, - 32,7280,1172,27,30,31,1220,1232,26,28, - 887,261,25,23,50,1265,104,75,76,105, - 4372,3943,7280,7280,2694,7280,373,154,2851,3269, - 613,7280,5979,238,261,3121,7280,7280,7280,7280, - 7280,1971,7280,590,537,538,539,540,537,538, - 539,1923,7280,7280,227,7280,7280,7280,431,7280, - 351,7280,3029,154,672,4140,2805,7280,7280,2805, - 2179,922,178,7280,7280,202,214,4942,7280,7280, - 7280,201,211,212,213,215,589,167,466,3114, - 2850,231,613,343,332,7280,7280,7280,7280,166, - 7280,7280,7280,610,1980,3546,165,168,169,170, - 171,172,239,229,230,7280,227,7280,352,760, - 4615,7280,3488,7280,7280,154,344,1702,1166,349, - 7280,7280,2179,922,178,7280,2326,202,214,4942, - 7280,7280,7280,201,211,212,213,215,589,167, - 559,7280,7280,7280,613,3853,335,2694,7280,360, - 7280,166,3269,7280,7280,7280,7280,176,165,168, - 169,170,171,172,3199,3424,3425,7280,227,7280, - 540,537,538,539,7280,7280,3029,154,7280,7280, - 2805,7280,7280,7280,2179,922,178,672,46,202, - 214,4942,2805,7280,7280,201,211,212,213,215, - 589,167,652,7280,2850,7280,613,7280,7280,2694, - 7280,7280,3114,166,3269,7280,343,332,7280,174, - 165,168,169,170,171,172,7280,7280,7280,7280, - 227,7280,540,537,538,539,7280,7280,7280,154, - 7280,7280,2938,4900,7280,7280,2179,922,178,672, - 46,202,214,4942,2805,7280,2171,201,211,212, - 213,215,589,167,745,443,7280,457,613,7280, - 7280,2694,7280,360,3114,166,3269,7280,343,332, - 7280,581,165,168,169,170,171,172,3647,3424, - 3425,7280,227,7280,540,537,538,539,7280,7280, - 7280,154,7280,7280,2938,668,7280,7280,2179,922, - 178,672,46,202,214,4942,2805,7280,2305,201, - 211,212,213,215,589,167,838,2375,7280,7280, - 613,7280,7280,1450,7280,7280,3114,166,7280,7280, - 343,332,7280,175,165,168,169,170,171,172, - 590,537,538,539,227,7280,540,537,538,539, - 7280,7280,7280,154,7280,7280,2938,4971,7280,7280, - 2179,922,178,873,7280,202,214,4942,7280,7280, - 2306,201,211,212,213,215,589,167,931,2469, - 3539,7280,613,7280,613,7280,7280,7280,231,166, - 4144,7280,7280,7280,2805,185,165,168,169,170, - 171,172,590,537,538,539,227,7280,3053,252, - 229,230,7280,7280,7280,154,7280,154,2850,7280, - 7280,7280,2179,922,178,922,178,202,214,4942, - 7280,7280,7280,201,211,212,213,215,589,167, - 1024,3432,7280,7280,613,7280,7280,7280,7280,7280, - 231,166,7280,194,7280,7280,7280,3905,165,168, - 169,170,171,172,540,537,538,539,227,7280, - 7280,585,229,230,7280,4175,7280,154,7280,2805, - 7280,3305,7280,7280,2179,922,178,506,965,202, - 214,4942,2008,35,295,201,211,212,213,215, - 589,167,1117,343,46,46,613,532,1340,1340, - 7280,7280,7280,166,7280,540,537,538,539,190, - 165,168,169,170,171,172,7280,3067,7280,2938, - 227,7280,962,503,505,7280,7280,7280,7280,154, - 7280,154,154,535,7280,7280,2179,922,178,3155, - 2429,202,214,4942,7280,7280,7280,201,211,212, - 213,215,589,167,1210,2287,7280,7280,613,7280, - 3269,2200,7280,3953,7280,166,7280,6051,195,7280, - 7280,184,165,168,169,170,171,172,540,537, - 538,539,227,7280,540,537,538,539,7280,7280, - 7280,154,7280,5748,7280,672,7280,7280,2179,922, - 178,672,7280,202,214,4942,7280,7280,7280,201, - 211,212,213,215,589,167,2477,7280,7280,7280, - 3114,7280,7280,7280,7280,333,329,166,7280,7280, - 7280,7280,7280,193,165,168,169,170,171,172, - 2510,35,1117,32,4249,6154,27,30,31,1220, - 1232,339,28,3926,35,1117,32,7280,1172,27, - 30,31,1220,1232,26,28,887,261,25,23, - 50,1265,104,75,76,106,7280,7280,7280,3775, - 1336,7280,2543,7280,7280,7280,7280,7280,7280,7280, - 7280,7280,7280,7280,7280,7280,7280,7280,7280,7280, - 7280,7280,319,2277,321,7280,314,2241,3802,35, - 1117,32,528,1172,27,30,31,1220,1232,26, - 28,887,261,25,23,50,1265,575,75,76, - 352,820,35,1898,389,7280,7280,7280,344,1702, - 1166,349,7280,7280,3926,35,1117,32,529,1172, - 27,30,31,1220,1232,26,28,887,261,25, - 23,50,1265,104,75,76,106,4320,35,1898, - 389,1336,4791,2562,49,7280,7280,7280,7280,7280, - 237,261,7280,1888,3156,7280,7280,7280,7280,7280, - 590,537,538,539,7280,7280,727,35,1898,389, - 2231,7280,2200,2236,35,1898,389,3497,7280,7280, - 273,1515,35,1117,32,7280,6169,27,30,31, - 1220,1232,339,28,7280,540,537,538,539,7280, - 540,537,538,539,540,537,538,539,231,49, - 2218,7280,672,7280,7280,3269,49,3844,1888,2381, - 7280,672,7280,7280,7280,1888,1553,7280,7280,235, - 229,230,7280,540,537,538,539,2768,7280,7280, - 274,7280,2231,319,2277,321,3114,317,2241,7280, - 672,333,2384,35,1117,32,2774,6154,27,30, - 31,1220,1232,339,28,242,245,248,251,4373, - 7280,7280,3574,7280,7280,3114,7280,7280,759,7280, - 333,1515,35,1117,32,584,6169,27,30,31, - 1220,1232,339,28,7280,540,537,538,539,7280, - 352,7280,7280,7280,540,537,538,539,346,1702, - 1166,349,3883,7280,316,3552,321,3926,35,1117, - 32,3813,1172,27,30,31,1220,1232,26,28, - 887,261,25,23,50,1265,104,75,76,84, - 7280,7280,7280,319,2277,321,3114,315,2241,7280, - 7280,333,3926,35,1117,32,7280,1172,27,30, - 31,1220,1232,26,28,887,261,25,23,50, - 1265,104,75,76,106,3926,35,1117,32,2653, - 1172,27,30,31,1220,1232,26,28,887,261, - 25,23,50,1265,104,75,76,106,3926,35, - 1117,32,2655,1172,27,30,31,1220,1232,26, - 28,887,261,25,23,50,1265,104,75,76, - 106,7280,7280,2745,7280,2675,1795,35,1117,32, - 4311,6154,27,30,31,1220,1232,339,28,7280, - 7280,7280,913,35,1898,389,7280,2200,7280,541, - 537,538,539,2134,35,1117,32,4311,6154,27, - 30,31,1220,1232,339,28,7280,7280,7280,7280, - 540,537,538,539,7280,7280,541,537,538,539, - 7280,7280,7280,7280,7280,49,7280,672,319,2277, - 321,7280,314,2241,1888,1988,7280,7280,4491,7280, - 7280,7280,7280,7280,7280,7280,7280,7280,7280,7280, - 7280,2701,3311,7280,7280,319,2277,321,7280,314, - 2241,3926,1926,1117,1947,4491,1172,27,30,31, - 1220,1232,26,28,887,261,25,23,50,1265, - 104,75,76,83,3926,35,1117,32,7280,1172, - 27,30,31,1220,1232,26,28,887,261,25, - 23,50,1265,104,75,76,82,3926,35,1117, - 32,7280,1172,27,30,31,1220,1232,26,28, - 887,261,25,23,50,1265,104,75,76,81, - 3926,35,1117,32,7280,1172,27,30,31,1220, - 1232,26,28,887,261,25,23,50,1265,104, - 75,76,80,3926,35,1117,32,7280,1172,27, - 30,31,1220,1232,26,28,887,261,25,23, - 50,1265,104,75,76,79,3926,35,1117,32, - 7280,1172,27,30,31,1220,1232,26,28,887, - 261,25,23,50,1265,104,75,76,78,3926, - 35,1117,32,7280,1172,27,30,31,1220,1232, - 26,28,887,261,25,23,50,1265,104,75, - 76,77,3740,35,1117,32,7280,1172,27,30, - 31,1220,1232,26,28,887,261,25,23,50, - 1265,104,75,76,102,3926,35,1117,32,7280, - 1172,27,30,31,1220,1232,26,28,887,261, - 25,23,50,1265,104,75,76,108,3926,35, - 1117,32,7280,1172,27,30,31,1220,1232,26, - 28,887,261,25,23,50,1265,104,75,76, - 107,3926,35,1117,32,7280,1172,27,30,31, - 1220,1232,26,28,887,261,25,23,50,1265, - 104,75,76,103,3864,35,1117,32,7280,1172, - 27,30,31,1220,1232,26,28,887,261,25, - 23,50,1265,85,75,76,3988,35,1117,32, - 7280,1172,27,30,31,1220,1232,26,28,887, - 261,25,23,50,1265,586,75,76,4050,35, - 1117,32,7280,1172,27,30,31,1220,1232,26, - 28,887,261,25,23,50,1265,3204,75,76, - 1864,2228,7280,7280,2805,7280,2605,35,1117,32, - 4311,6154,27,30,31,1220,1232,339,28,7280, - 7280,3635,7280,7280,540,537,538,539,227,7280, - 7280,7280,7280,7280,7280,2146,4208,7280,7280,2805, - 2805,957,7280,7280,540,537,538,539,7280,204, - 214,4942,7280,7280,7280,203,211,212,213,215, - 589,3844,7280,227,2850,7280,7280,7280,319,2277, - 321,7280,314,2241,205,207,209,3635,3847,2240, - 7280,7280,7280,2805,204,214,4942,216,206,208, - 203,211,212,213,215,589,7280,7280,7280,7280, - 7280,7280,7280,7280,46,7280,7280,227,613,205, - 207,209,3635,7280,2334,7280,7280,3196,2805,7280, - 7280,7280,216,206,208,2921,7280,5742,204,214, - 4942,7280,343,506,203,211,212,213,215,589, - 7280,154,227,7280,7280,7280,7280,1749,7280,186, - 7280,2805,4856,205,207,209,3635,7280,5536,7280, - 3022,7280,5742,204,214,4942,216,206,208,203, - 211,212,213,215,589,227,7280,1958,7280,503, - 505,2805,7280,7280,7280,2008,3951,295,205,207, - 209,3635,7280,7280,7280,7280,2136,408,3505,7280, - 7280,521,206,208,3773,227,5742,7280,540,537, - 538,539,2052,7280,3227,7280,2805,7280,3298,3986, - 7280,409,410,411,3635,962,204,214,4942,7280, - 7280,7280,203,211,212,213,215,589,7280,7280, - 227,540,537,538,539,7280,7280,7280,7280,7280, - 7280,205,207,209,3635,2428,3626,7280,962,2805, - 7280,204,214,4942,520,206,208,203,211,212, - 213,215,589,7280,7280,7280,7280,7280,7280,7280, - 544,7280,7280,227,2805,7280,205,207,209,3635, - 2522,46,7280,7280,2805,1340,5748,7280,7280,217, - 206,208,7280,7280,204,214,4942,7280,343,7280, - 203,211,212,213,215,589,7280,7280,227,2477, - 7280,7280,7280,412,415,7280,7280,7280,154,205, - 207,209,3635,2616,3632,7280,3645,2805,7280,204, - 214,4942,609,206,208,203,211,212,213,215, - 589,7280,2758,7280,7280,7280,7280,7280,7280,7280, - 7280,227,7280,7280,205,207,209,3635,2710,7280, - 7280,7280,2805,7280,7280,7280,2694,608,206,208, - 7280,3269,204,214,4942,7280,7280,7280,203,211, - 212,213,215,589,7280,7280,227,7280,7280,540, - 537,538,539,7280,7280,7280,7280,205,207,209, - 3635,2804,7280,7280,7280,2805,672,204,214,4942, - 607,206,208,203,211,212,213,215,589,7280, - 1634,7280,7280,7280,2805,4856,7280,7280,7280,227, - 7280,3114,205,207,209,3635,6047,7280,46,2685, - 7280,7280,2805,2805,3269,305,206,208,227,7280, - 204,214,4942,7280,7280,7280,203,211,212,213, - 215,589,540,537,538,539,343,2850,7280,2136, - 408,3505,7280,7280,7280,205,207,209,3635,672, - 7280,7280,7280,3745,7280,7280,7280,7280,500,206, - 208,7280,2938,7280,409,410,411,3635,2685,7280, - 7280,7280,2805,3269,3114,7280,2888,2664,7280,332, - 7280,3830,3269,2601,7280,613,7280,613,7280,7280, - 92,540,537,538,539,7280,2850,7280,7280,3626, - 540,537,538,539,7280,4900,360,7280,672,343, - 7280,343,7280,7280,7280,2601,7280,672,154,613, - 154,2715,3424,3425,7280,7280,186,2179,1595,7280, - 7280,7280,7280,3114,7280,5536,7280,2938,332,7280, - 7280,7280,3114,343,1031,7280,7280,6047,7280,7280, - 7280,1986,154,7280,913,35,1898,389,7280,2179, - 1595,7280,7280,7280,668,360,412,414,7280,2938, - 7280,7280,820,35,1898,389,1031,7280,7280,7280, - 2715,3424,3425,2624,820,35,1898,389,7280,7280, - 7280,188,7280,2324,7280,7280,5677,49,7280,820, - 35,1898,389,7280,7280,7280,1888,47,7280,7280, - 7280,2108,35,1898,389,49,7280,913,35,1898, - 389,7280,46,1722,1888,47,613,49,7280,7280, - 7280,94,2111,35,1898,389,1888,2379,7280,7280, - 7280,870,49,7280,820,35,1898,389,7280,7280, - 343,1888,2769,2260,49,820,35,1898,389,154, - 49,7280,7280,1888,47,7280,7280,186,2260,1888, - 47,7280,7280,7280,46,49,5536,2564,613,7280, - 1331,7280,7280,7280,1888,47,1481,49,820,35, - 1898,389,820,35,1898,389,1888,47,49,7280, - 7280,1771,343,820,35,1898,389,1888,47,7280, - 4144,154,7280,948,2805,7280,7280,7280,7280,186, - 7280,46,46,46,1383,2805,2805,2805,5536,7280, - 7280,49,3281,7280,7280,49,7280,7280,2850,7280, - 1888,47,7280,7280,1888,47,49,7280,7280,343, - 343,343,7280,7280,7280,1888,47,1432,7280,7280, - 7280,1543,7280,7280,7280,7280,7280,7280,7280,7280, - 7280,7280,1741,7280,7280,2938,2938,2938,7280,7280, - 7280,7280,7280,7280,3323,7280,7280,7280,7280,510, - 508,536,7280,7280,7280,7280,7280,7280,7280,7280, - 7280,7280,7280,7280,7280,7280,7280,506,7280,7280, - 7280,7280,7280,7280,7280,7280,7280,7280,7280,7280, - 7280,7280,7280,7280,7280,7280,7280,7280,7280,7280, - 7280,7280,7280,7280,7280,7280,7280,7280,7280,7280, - 7280,7280,7280,7280,7280,7280,7280,7280,7280,7280, - 7280,7280,7280,504,505,7280,0,39,7295,0, - 39,7294,0,752,29,0,441,1466,0,455, - 1492,0,38,699,0,38,7295,0,38,7294, - 0,7343,74,0,7342,74,0,833,74,0, - 902,74,0,1787,74,0,2915,74,0,3749, - 124,0,1,445,0,459,1020,0,458,1163, - 0,7288,1,0,2323,89,0,752,388,0, - 35,33,0,32,34,0,39,699,0,1, - 645,0,1,7552,0,1,7551,0,1,7550, - 0,1,7549,0,1,7548,0,1,7547,0, - 1,7546,0,1,7545,0,1,7544,0,1, - 7543,0,1,7542,0,1,7885,0,1,7884, - 0,39,1,7295,0,39,1,7294,0,821, - 1,0,1,3960,0,7513,222,0,7512,222, - 0,2388,222,0,2408,222,0,2409,222,0, - 7886,222,0,7618,222,0,7617,222,0,7540, - 222,0,7539,222,0,7538,222,0,7537,222, - 0,7536,222,0,7535,222,0,7534,222,0, - 7533,222,0,7513,223,0,7512,223,0,2388, - 223,0,2408,223,0,2409,223,0,7886,223, - 0,7618,223,0,7617,223,0,7540,223,0, - 7539,223,0,7538,223,0,7537,223,0,7536, - 223,0,7535,223,0,7534,223,0,7533,223, - 0,7513,224,0,7512,224,0,2388,224,0, - 2408,224,0,2409,224,0,7886,224,0,7618, - 224,0,7617,224,0,7540,224,0,7539,224, - 0,7538,224,0,7537,224,0,7536,224,0, - 7535,224,0,7534,224,0,7533,224,0,2409, - 395,0,2408,395,0,2388,395,0,283,395, - 0,7513,225,0,7512,225,0,2388,225,0, - 2408,225,0,2409,225,0,7886,225,0,7618, - 225,0,7617,225,0,7540,225,0,7539,225, - 0,7538,225,0,7537,225,0,7536,225,0, - 7535,225,0,7534,225,0,7533,225,0,283, - 288,0,7513,226,0,7512,226,0,2388,226, - 0,2408,226,0,2409,226,0,7886,226,0, - 7618,226,0,7617,226,0,7540,226,0,7539, - 226,0,7538,226,0,7537,226,0,7536,226, - 0,7535,226,0,7534,226,0,7533,226,0, - 7295,48,0,7294,48,0,7513,588,0,7512, - 588,0,2388,588,0,2408,588,0,2409,588, - 0,7886,588,0,7618,588,0,7617,588,0, - 7540,588,0,7539,588,0,7538,588,0,7537, - 588,0,7536,588,0,7535,588,0,7534,588, - 0,7533,588,0,7513,240,0,7512,240,0, - 2388,240,0,2408,240,0,2409,240,0,7886, - 240,0,7618,240,0,7617,240,0,7540,240, - 0,7539,240,0,7538,240,0,7537,240,0, - 7536,240,0,7535,240,0,7534,240,0,7533, - 240,0,7552,240,0,7551,240,0,7550,240, - 0,7549,240,0,7548,240,0,7547,240,0, - 7546,240,0,7545,240,0,7544,240,0,7543, - 240,0,7542,240,0,7885,240,0,7884,240, - 0,39,7295,240,0,39,7294,240,0,7318, - 240,0,7292,384,0,7291,384,0,7286,1, - 0,7285,1,0,653,236,0,32,389,0, - 29,388,0,1,228,3262,0,7289,228,0, - 3309,228,0,1,228,1751,0,1,228,0, - 43,7316,0,43,37,0,3749,126,0,3749, - 125,0,2409,446,0,2408,446,0,2388,446, - 0,7318,446,0,331,446,0,39,446,0, - 2409,600,0,2408,600,0,2388,600,0,2409, - 598,0,2408,598,0,2388,598,0,602,598, - 0,602,597,0,1,2409,0,1,2408,0, - 1,2388,0,7318,1,0,39,1,0,47, - 37,0,576,586,0,3426,228,0,10,12, - 0,1,3577,0,1,4095,0,1,699,0, - 1,90,0,2409,331,0,2408,331,0,2388, - 331,0,502,3633,0,7318,1,228,0,39, - 1,228,0,228,417,0,7295,37,0,7294, - 37,0,7295,2,37,0,7294,2,37,0, - 7295,36,0,7294,36,0,8,10,12,0, - 3709,192,0,1,331,0,4555,98,0,7316, - 45,0,37,45,0,7290,406,0,7289,406, - 0,228,416,0,7292,587,384,0,7291,587, - 384,0,3122,318,0,1,600,0,2032,101, - 0,2539,97,0,2409,93,0,2408,93,0, - 2388,93,0,7318,93,0,331,93,0,39, - 93,0,35,72,0,7886,336,0,7618,336, - 0,7617,336,0,1836,278,0,502,5707,0, - 3946,384,0,183,4552,0,228,219,0,1, - 1037,0,1,1966,0,2409,595,0,2408,595, - 0,2388,595,0,2409,594,0,2408,594,0, - 2388,594,0,540,541,0,8,12,0,228, - 218,0,7292,1,0,2409,595,596,0,2408, - 595,596,0,2388,595,596,0,595,596,0 + 18,18,18,18,18,18,18,18,18,168, + 168,168,143,143,19,19,19,19,19,19, + 19,19,19,19,19,19,20,20,206,206, + 207,207,208,171,171,172,172,169,169,173, + 170,170,21,21,22,22,23,23,23,24, + 24,24,24,25,25,25,26,26,26,35, + 35,35,35,35,36,36,36,38,38,39, + 39,41,41,42,42,45,45,46,46,54, + 54,54,54,54,62,62,62,65,65,70, + 70,71,71,74,74,75,75,76,76,77, + 77,77,77,77,77,77,77,77,77,77, + 77,77,34,34,48,48,48,48,48,48, + 48,48,48,48,48,48,48,44,33,174, + 174,111,111,209,209,104,239,239,91,91, + 91,91,91,91,91,91,91,92,92,92, + 86,86,63,63,210,210,93,93,93,124, + 124,211,211,94,94,94,94,212,212,95, + 95,95,95,95,96,96,100,100,100,100, + 100,100,100,100,55,55,55,55,55,144, + 144,142,142,56,213,31,31,31,31,31, + 52,52,78,78,78,78,78,149,149,145, + 145,145,145,145,146,146,146,147,147,147, + 148,148,148,176,176,176,79,79,79,79, + 79,80,80,80,13,14,14,14,14,14, + 14,14,14,14,14,14,112,150,150,150, + 150,150,150,119,119,119,177,178,178,120, + 120,214,180,180,179,179,151,151,125,89, + 89,152,58,51,181,181,59,102,102,182, + 182,175,175,153,154,154,155,83,83,183, + 183,72,72,72,67,67,66,73,73,98, + 98,82,82,82,69,105,105,114,113,113, + 61,61,68,68,85,85,64,115,115,115, + 106,106,106,107,107,108,108,108,109,109, + 126,126,126,128,128,127,127,240,240,110, + 110,216,216,216,216,216,157,50,50,185, + 215,215,158,158,116,116,116,117,187,217, + 217,40,40,118,122,122,122,122,219,130, + 129,129,121,121,121,188,189,189,189,189, + 189,189,189,189,189,189,189,221,221,218, + 218,220,220,132,133,133,133,133,134,222, + 135,131,131,223,223,190,190,190,190,123, + 123,123,224,224,8,8,9,225,225,226, + 191,184,184,192,192,193,194,194,7,7, + 10,227,227,227,227,227,227,227,227,227, + 227,227,227,227,227,227,227,227,227,227, + 227,227,227,227,227,227,227,227,227,227, + 227,227,227,227,227,227,227,227,227,227, + 227,227,227,87,90,90,195,195,160,160, + 161,161,161,161,161,161,3,162,162,159, + 159,196,241,242,242,243,243,244,245,245, + 197,198,198,198,198,228,228,228,137,137, + 137,137,137,138,139,139,136,136,101,88, + 97,97,186,186,140,140,229,229,229,163, + 163,156,156,230,230,27,27,27,37,37, + 28,28,231,231,199,199,199,200,200,232, + 232,201,201,29,29,233,233,202,202,202, + 202,30,60,234,234,235,235,203,203,203, + 164,164,164,19,19,35,35,46,17,92, + 236,204,204,204,165,165,31,57,78,155, + 155,155,132,132,132,214,219,130,69,83, + 177,152,13,13,61,101,101,101,18,205, + 205,1591,35,2221,2213,6728,4801,27,30,31, + 1080,1122,26,28,2179,294,25,23,50,1177, + 104,75,76,106,1216,1226,1219,1239,648,595, + 596,597,1701,35,3297,175,1229,1305,531,1278, + 1511,306,1414,1546,366,55,1560,174,5873,189, + 1418,4279,2392,3356,3862,2676,3778,4019,671,1418, + 2150,3390,264,1896,35,1077,32,7411,3252,27, + 30,31,1080,1122,372,28,2773,1968,187,267, + 262,263,5261,260,376,3475,187,187,1309,2078, + 598,595,596,597,2159,366,747,2039,2066,7335, + 4993,232,237,247,7273,4801,3216,236,244,245, + 246,248,647,307,842,210,775,3450,1221,274, + 277,280,4683,1015,1701,35,1771,422,1212,352, + 2172,354,3149,2676,3778,348,1423,638,1983,238, + 240,242,3686,2650,2554,366,4043,4007,5008,5581, + 6434,283,579,239,241,598,595,596,597,172, + 1283,385,78,532,306,2952,641,668,2165,379, + 1059,814,382,274,1319,829,213,6070,3031,35, + 1077,32,5599,4778,27,30,31,1080,1122,26, + 28,1071,294,25,23,50,1177,104,75,76, + 106,1216,1226,1219,3070,6137,322,3681,35,1077, + 32,5599,160,27,30,31,1080,1122,26,28, + 1071,294,25,23,50,1177,104,75,76,105, + 1510,69,3055,3738,1089,3779,308,267,35,312, + 3133,6007,386,3071,1701,1881,2064,34,3141,3140, + 2159,464,3143,3146,159,576,3031,35,1077,32, + 5599,4778,27,30,31,1080,1122,26,28,1071, + 294,25,23,50,1177,104,75,76,106,1216, + 1226,1219,3070,582,322,4189,35,1077,32,5599, + 160,27,30,31,1080,1122,26,28,1071,294, + 25,23,50,1177,104,75,76,106,1216,2224, + 3055,2650,1385,3779,547,573,4687,577,3133,3447, + 5727,3071,654,668,2165,1841,3141,3140,455,2322, + 3143,3146,159,576,267,35,312,2993,6074,749, + 3147,1701,35,2064,3296,3464,3031,35,1077,32, + 5599,4778,27,30,31,1080,1122,26,28,1071, + 294,25,23,50,1177,104,75,76,106,1216, + 1226,1219,3070,603,3677,2337,35,1077,32,6141, + 160,27,30,31,1080,1122,26,28,2115,364, + 545,2261,547,573,4687,577,2347,35,1077,32, + 3055,549,41,30,31,1080,1122,844,3133,2423, + 939,3071,3915,35,310,3148,3141,3140,3147,3444, + 3143,3146,159,576,3328,35,1077,32,5599,4778, + 27,30,31,1080,1122,26,28,1071,294,25, + 23,50,1177,104,75,76,106,1216,1226,1219, + 3070,582,1034,4189,35,1077,32,5599,160,27, + 30,31,1080,1122,26,28,1071,294,25,23, + 50,1177,104,75,76,106,1216,2284,3055,1701, + 35,328,547,573,4687,577,3133,387,3213,3071, + 416,42,3295,5734,3141,3140,1712,2681,3143,3146, + 159,576,267,35,564,3217,6580,5069,3147,3397, + 35,1077,32,5599,3814,27,30,31,1080,1122, + 26,28,1071,294,25,23,50,1177,104,75, + 76,106,1216,1226,1219,1239,1701,35,7515,7511, + 3870,35,310,175,1229,1305,264,1278,1511,1739, + 1414,1546,2159,702,1560,174,67,412,2150,4798, + 548,573,4687,577,3185,35,1077,32,5599,2196, + 27,30,31,1080,1122,26,28,1071,294,25, + 23,50,1177,104,75,76,106,1216,1226,1219, + 1239,1701,35,2064,309,1453,2746,3366,175,1229, + 1305,4019,1278,1511,3085,1414,1546,2159,644,1560, + 174,4096,412,2436,35,1077,32,1701,2065,40, + 30,31,1080,1122,1617,413,2165,376,1701,3778, + 3539,35,1077,32,5599,79,27,30,31,1080, + 1122,26,28,1071,294,25,23,50,1177,104, + 75,76,106,1216,1226,1219,1239,1701,35,315, + 2991,494,1704,3373,175,1229,1305,419,1278,1511, + 389,1414,1546,2159,3814,1560,174,591,412,1011, + 413,2165,3470,35,1077,32,5599,3676,27,30, + 31,1080,1122,26,28,1071,294,25,23,50, + 1177,104,75,76,106,1216,1226,1219,1239,2642, + 35,2064,309,3676,477,3444,175,1229,1305,613, + 1278,1511,420,1414,1546,2150,2160,1560,174,150, + 611,1344,35,1077,32,7306,702,27,30,31, + 1080,1122,57,28,454,614,413,2165,3808,35, + 1077,32,5599,3577,27,30,31,1080,1122,26, + 28,1071,294,25,23,50,1177,104,75,76, + 106,1216,1226,1219,1239,1701,3772,2064,73,323, + 3252,3464,175,1229,1305,472,1278,1511,410,1414, + 1546,3323,2273,1560,174,3830,189,3808,35,1077, + 32,5599,481,27,30,31,1080,1122,26,28, + 1071,294,25,23,50,1177,104,75,76,106, + 1216,1226,1219,1239,747,3794,4158,230,493,3977, + 388,175,1229,1305,2307,1278,1511,591,1414,1546, + 3971,257,1560,174,2360,406,3808,35,1077,32, + 5599,357,27,30,31,1080,1122,26,28,1071, + 294,25,23,50,1177,104,75,76,106,1216, + 1226,1219,1239,267,35,487,72,7445,1701,3451, + 175,1229,1305,609,1278,1511,3062,1414,1546,616, + 2175,1560,174,3456,406,2642,35,2064,3775,61, + 1474,35,1077,32,7306,1406,27,30,31,1080, + 1122,56,28,2423,3694,615,415,3808,35,1077, + 32,5599,829,27,30,31,1080,1122,26,28, + 1071,294,25,23,50,1177,104,75,76,106, + 1216,1226,1219,1239,3875,2246,1357,1701,35,2064, + 311,175,1229,1305,405,1278,1511,424,1414,1546, + 366,461,1560,174,7369,406,3612,35,1077,32, + 5599,4158,27,30,31,1080,1122,26,28,1071, + 294,25,23,50,1177,104,75,76,106,1216, + 1226,1219,1239,3640,3149,44,3295,2150,5585,2187, + 175,1229,1305,404,1278,1511,1866,1414,1546,3149, + 86,1560,174,100,611,3259,35,1077,32,5599, + 4158,27,30,31,1080,1122,26,28,1071,294, + 25,23,50,1177,104,75,76,106,1216,1226, + 1219,1239,1701,35,2064,3782,2150,2150,2837,175, + 1229,1305,3814,1278,1511,1309,1414,1546,361,368, + 1560,174,556,173,4158,480,3871,3875,60,3808, + 35,1077,32,5599,402,27,30,31,1080,1122, + 26,28,1071,294,25,23,50,1177,104,75, + 76,106,1216,1226,1219,1239,1701,35,2064,314, + 6594,1129,425,175,1229,1305,461,1278,1511,1866, + 1414,1546,4096,1941,1560,174,3738,190,3808,35, + 1077,32,5599,2261,27,30,31,1080,1122,26, + 28,1071,294,25,23,50,1177,104,75,76, + 106,1216,1226,1219,1239,1701,35,2064,563,51, + 359,427,175,1229,1305,461,1278,1511,3789,1414, + 1546,2909,368,1560,174,1413,186,610,3808,35, + 1077,32,5599,3789,27,30,31,1080,1122,26, + 28,1071,294,25,23,50,1177,104,75,76, + 106,1216,1226,1219,1239,426,2246,626,70,461, + 55,91,175,1229,1305,848,1278,1511,356,1414, + 1546,1331,625,1560,174,591,185,3808,35,1077, + 32,5599,423,27,30,31,1080,1122,26,28, + 1071,294,25,23,50,1177,104,75,76,106, + 1216,1226,1219,1239,3693,2837,1461,940,1035,55, + 3252,175,1229,1305,926,1278,1511,1866,1414,1546, + 3017,1130,1560,174,1973,184,3808,35,1077,32, + 5599,4224,27,30,31,1080,1122,26,28,1071, + 294,25,23,50,1177,104,75,76,106,1216, + 1226,1219,1239,1701,35,328,3831,229,1222,3464, + 175,1229,1305,481,1278,1511,1866,1414,1546,367, + 368,1560,174,4801,183,3808,35,1077,32,5599, + 1737,27,30,31,1080,1122,26,28,1071,294, + 25,23,50,1177,104,75,76,106,1216,1226, + 1219,1239,747,2246,1283,877,2368,55,3464,175, + 1229,1305,1016,1278,1511,1862,1414,1546,2983,368, + 1560,174,585,182,3808,35,1077,32,5599,4801, + 27,30,31,1080,1122,26,28,1071,294,25, + 23,50,1177,104,75,76,106,1216,1226,1219, + 1239,747,2837,366,2176,3252,3252,7423,175,1229, + 1305,24,1278,1511,1866,1414,1546,3171,4801,1560, + 174,584,181,3808,35,1077,32,5599,3629,27, + 30,31,1080,1122,26,28,1071,294,25,23, + 50,1177,104,75,76,106,1216,1226,1219,1239, + 68,87,233,231,100,55,4565,175,1229,1305, + 7110,1278,1511,1866,1414,1546,363,368,1560,174, + 4801,180,3808,35,1077,32,5599,4801,27,30, + 31,1080,1122,26,28,1071,294,25,23,50, + 1177,104,75,76,106,1216,1226,1219,1239,55, + 3451,1283,53,438,1061,3464,175,1229,1305,721, + 1278,1511,3363,1414,1546,3139,368,1560,174,1863, + 179,3808,35,1077,32,5599,4801,27,30,31, + 1080,1122,26,28,1071,294,25,23,50,1177, + 104,75,76,106,1216,1226,1219,1239,2356,1319, + 2543,35,487,4899,7445,175,1229,1305,52,1278, + 1511,4850,1414,1546,352,3567,1560,174,4801,178, + 3808,35,1077,32,5599,4101,27,30,31,1080, + 1122,26,28,1071,294,25,23,50,1177,104, + 75,76,106,1216,1226,1219,1239,601,55,1399, + 383,3252,55,6465,175,1229,1305,731,1278,1511, + 358,1414,1546,3464,4801,1560,174,4801,177,3808, + 35,1077,32,5599,447,27,30,31,1080,1122, + 26,28,1071,294,25,23,50,1177,104,75, + 76,106,1216,1226,1219,1239,88,55,253,621, + 2353,3578,725,175,1229,1305,2675,1278,1511,1283, + 1414,1546,3912,4801,1560,174,4801,176,3746,35, + 1077,32,5599,2828,27,30,31,1080,1122,26, + 28,1071,294,25,23,50,1177,104,75,76, + 106,1216,1226,1219,1239,3510,55,1405,2679,2833, + 1586,1179,1281,1229,1305,813,1278,1511,366,1414, + 1546,462,7435,3218,195,4189,35,1077,32,5599, + 4801,27,30,31,1080,1122,26,28,1071,294, + 25,23,50,1177,104,75,76,106,1216,1226, + 1219,1239,484,3871,3875,4039,35,313,602,3677, + 1229,1305,2757,1278,1511,3782,1414,1546,366,7465, + 3218,195,7440,1701,35,1771,422,1701,35,1771, + 422,360,1717,2773,2556,3808,35,1077,32,5599, + 2919,27,30,31,1080,1122,26,28,1071,294, + 25,23,50,1177,104,75,76,106,1216,1226, + 1219,1239,583,49,2067,35,430,486,3252,175, + 1229,1305,46,1278,1511,628,1414,1546,3464,3377, + 1560,174,2652,637,3808,35,1077,32,5599,1766, + 27,30,31,1080,1122,26,28,1071,294,25, + 23,50,1177,104,75,76,106,1216,1226,1219, + 1239,55,4163,35,562,5802,1615,4274,175,1229, + 1305,2905,1278,1511,2738,1414,1546,3066,4801,1560, + 174,7507,138,3941,35,1077,32,5599,2527,27, + 30,31,1080,1122,26,28,1071,294,25,23, + 50,1177,104,75,76,106,1216,1226,1219,3070, + 67,642,4189,35,1077,32,5599,160,27,30, + 31,1080,1122,26,28,1071,294,25,23,50, + 1177,104,75,76,106,2310,345,3055,599,595, + 596,597,262,3925,3889,3133,1815,3953,3071,1701, + 35,1771,422,3141,3140,464,4015,3143,3146,159, + 171,3375,3941,35,1077,32,5599,3020,27,30, + 31,1080,1122,26,28,1071,294,25,23,50, + 1177,104,75,76,106,1216,1226,1219,3070,465, + 2668,4189,35,1077,32,5599,160,27,30,31, + 1080,1122,26,28,1071,294,25,23,50,1177, + 104,75,76,106,2333,3022,3055,599,595,596, + 597,55,2060,55,3133,55,1496,3071,1641,55, + 803,4010,3141,3140,1718,4801,3143,3146,159,170, + 3941,35,1077,32,5599,5005,27,30,31,1080, + 1122,26,28,1071,294,25,23,50,1177,104, + 75,76,106,1216,1226,1219,3070,66,1956,4189, + 35,1077,32,5599,160,27,30,31,1080,1122, + 26,28,1071,294,25,23,50,1177,104,75, + 76,106,2359,5009,3055,599,595,596,597,55, + 732,55,3133,55,4544,3071,1782,55,7064,1721, + 3141,3140,1614,4801,3143,3146,159,169,3941,35, + 1077,32,5599,2368,27,30,31,1080,1122,26, + 28,1071,294,25,23,50,1177,104,75,76, + 106,1216,1226,1219,3070,65,1117,4189,35,1077, + 32,5599,160,27,30,31,1080,1122,26,28, + 1071,294,25,23,50,1177,104,75,76,84, + 929,583,3055,599,595,596,597,55,2842,55, + 3133,55,1690,3071,1734,55,1915,2924,3141,3140, + 2013,4801,3143,3146,159,168,3941,35,1077,32, + 5599,4575,27,30,31,1080,1122,26,28,1071, + 294,25,23,50,1177,104,75,76,106,1216, + 1226,1219,3070,64,1839,4189,1881,1077,1916,5599, + 160,27,30,31,1080,1122,26,28,1071,294, + 25,23,50,1177,104,75,76,83,436,357, + 3055,599,595,596,597,55,2354,55,3133,55, + 6732,3071,4903,55,1184,2530,3141,3140,6806,4585, + 3143,3146,159,167,3941,35,1077,32,5599,3252, + 27,30,31,1080,1122,26,28,1071,294,25, + 23,50,1177,104,75,76,106,1216,1226,1219, + 3070,3642,1964,4189,35,1077,32,5599,160,27, + 30,31,1080,1122,26,28,1071,294,25,23, + 50,1177,104,75,76,82,254,2721,3055,599, + 595,596,597,55,2817,55,3133,55,1344,3071, + 981,5104,2062,2961,3141,3140,6335,3392,3143,3146, + 159,166,3941,35,1077,32,5599,3252,27,30, + 31,1080,1122,26,28,1071,294,25,23,50, + 1177,104,75,76,106,1216,1226,1219,3070,618, + 2443,4189,35,1077,32,5599,160,27,30,31, + 1080,1122,26,28,1071,294,25,23,50,1177, + 104,75,76,81,622,3505,3055,599,595,596, + 597,366,366,55,3133,7522,7527,3071,6878,55, + 4050,3067,3141,3140,7439,4801,3143,3146,159,165, + 3941,35,1077,32,5599,3252,27,30,31,1080, + 1122,26,28,1071,294,25,23,50,1177,104, + 75,76,106,1216,1226,1219,3070,2831,2534,4189, + 35,1077,32,5599,160,27,30,31,1080,1122, + 26,28,1071,294,25,23,50,1177,104,75, + 76,80,336,2829,3055,599,595,596,597,55, + 1024,739,3133,547,1722,3071,2271,1456,3114,74, + 3141,3140,1965,4801,3143,3146,159,164,3941,35, + 1077,32,5599,3252,27,30,31,1080,1122,26, + 28,1071,294,25,23,50,1177,104,75,76, + 106,1216,1226,1219,3070,6061,4574,4189,35,1077, + 32,5599,160,27,30,31,1080,1122,26,28, + 1071,294,25,23,50,1177,104,75,76,79, + 333,3306,3055,599,595,596,597,3115,2918,4948, + 3133,3085,3359,3071,1701,35,1771,422,3141,3140, + 96,4801,3143,3146,159,163,3941,35,1077,32, + 5599,3252,27,30,31,1080,1122,26,28,1071, + 294,25,23,50,1177,104,75,76,106,1216, + 1226,1219,3070,6128,468,4189,35,1077,32,5599, + 160,27,30,31,1080,1122,26,28,1071,294, + 25,23,50,1177,104,75,76,78,440,3100, + 3055,3255,3361,3362,2150,2340,3391,3459,3133,2671, + 3573,3071,1701,35,1771,422,3141,3140,2186,4801, + 3143,3146,159,162,3941,35,1077,32,5599,1638, + 27,30,31,1080,1122,26,28,1071,294,25, + 23,50,1177,104,75,76,106,1216,1226,1219, + 3070,6195,467,4189,35,1077,32,5599,160,27, + 30,31,1080,1122,26,28,1071,294,25,23, + 50,1177,104,75,76,77,2261,2995,3055,2067, + 35,430,191,150,3782,3508,3133,2451,7465,3071, + 1701,35,1771,422,3141,3140,1290,4801,3143,3146, + 159,161,4003,35,1077,32,5599,95,27,30, + 31,1080,1122,26,28,1071,294,25,23,50, + 1177,104,75,76,106,1216,1226,1219,3070,355, + 466,3877,35,1077,32,5599,160,27,30,31, + 1080,1122,26,28,1071,294,25,23,50,1177, + 104,75,76,102,2434,3649,3055,3776,2150,4019, + 3025,747,3568,4077,3133,5801,2261,3071,4112,4403, + 3464,4139,3141,3140,7154,319,3143,3146,159,158, + 3808,35,1077,32,5599,5520,27,30,31,1080, + 1122,26,28,1071,294,25,23,50,1177,104, + 75,76,106,1216,1226,1219,1239,2527,3926,2067, + 35,430,3063,2913,175,1229,1305,3221,1278,1511, + 4341,1414,1546,3509,4801,1560,174,4801,220,3109, + 35,1077,32,5599,671,27,30,31,1080,1122, + 26,28,1071,294,25,23,50,1177,104,75, + 76,106,1216,1226,1219,3070,55,3678,385,54, + 376,96,187,2159,394,320,377,1059,814,382, + 414,1214,747,2039,463,375,3534,3254,2155,35, + 1077,32,6141,3299,27,30,31,1080,1122,59, + 28,2261,775,3450,2155,35,1077,32,6141,3252, + 27,30,31,1080,1122,58,28,3887,141,4189, + 35,1077,32,5599,1983,27,30,31,1080,1122, + 26,28,1071,294,25,23,50,1177,104,75, + 76,106,1216,1226,1219,1239,668,2165,3929,3252, + 1603,2261,2261,3777,1229,1305,224,1278,1511,1972, + 1414,1546,4801,4801,3218,195,4189,35,1077,32, + 5599,4801,27,30,31,1080,1122,26,28,1071, + 294,25,23,50,1177,104,75,76,106,1216, + 1226,1219,1239,3222,600,620,332,3778,3910,3182, + 330,1229,1305,619,1278,1511,3674,1414,1546,1399, + 2282,3218,195,4584,4620,4801,4801,4801,4189,35, + 1077,32,5599,640,27,30,31,1080,1122,26, + 28,1071,294,25,23,50,1177,104,75,76, + 106,1216,1226,1219,1239,3007,605,3589,411,2987, + 329,337,3908,1229,1305,3174,1278,1511,3604,1414, + 1546,4801,4801,3218,195,4189,35,1077,32,5599, + 3448,27,30,31,1080,1122,26,28,1071,294, + 25,23,50,1177,104,75,76,106,1216,1226, + 1219,1239,3593,99,6329,3780,3666,3679,2548,3535, + 1229,1305,4032,1278,1511,2645,1414,1546,4094,3712, + 3218,195,4801,4801,4801,4801,4801,4189,35,1077, + 32,5599,457,27,30,31,1080,1122,26,28, + 1071,294,25,23,50,1177,104,75,76,106, + 1216,1226,1219,1239,631,1969,2018,485,632,4156, + 3464,3464,1229,1305,4220,1278,1511,559,1414,1546, + 5103,1355,3218,195,4499,35,1077,32,5599,327, + 27,30,31,1080,1122,26,28,1071,294,25, + 23,50,1177,104,75,76,106,1216,1226,1219, + 1239,3970,589,747,747,4218,3059,3793,4226,1229, + 1305,1502,1278,1511,2983,1414,1546,4287,2352,3218, + 195,936,3735,409,409,3460,4189,35,1077,32, + 5599,456,27,30,31,1080,1122,26,28,1071, + 294,25,23,50,1177,104,75,76,106,1216, + 1226,1219,1239,3914,4225,4201,4263,4491,3295,4325, + 8653,1229,1305,8653,1278,1511,8653,1414,2899,8653, + 8653,8653,8653,4437,35,1077,32,5599,459,27, + 30,31,1080,1122,26,28,1071,294,25,23, + 50,1177,104,75,76,106,1216,1226,1219,3070, + 8653,8653,1994,35,1077,32,7411,5935,27,30, + 31,1080,1122,372,28,8653,3104,8653,8653,8653, + 8653,6743,8653,8653,8653,8653,8653,3055,55,598, + 595,596,597,1418,8653,3133,8653,1351,3071,6475, + 8653,8653,8653,3141,3140,407,2985,3639,384,4650, + 35,1771,422,6364,8653,2955,2067,35,3308,7323, + 1418,187,269,294,648,595,596,597,352,2172, + 354,3149,1716,1728,347,1423,648,595,596,597, + 1701,35,1771,422,365,798,271,294,187,306, + 4527,8653,8653,8653,8653,4019,49,8653,264,669, + 648,595,596,597,8653,1732,8653,4105,8653,1206, + 264,8653,8653,8653,385,276,262,263,8653,8653, + 306,376,377,1059,814,382,8653,267,262,263, + 8653,2228,8653,8653,264,1416,35,1077,32,7411, + 8653,27,30,31,1080,1122,372,28,8653,8653, + 8653,272,262,263,1158,339,343,2371,8653,8653, + 8653,307,598,595,596,597,8653,274,277,280, + 4683,1015,2561,2436,35,1077,32,2261,8653,3163, + 30,31,1080,1122,3735,7008,55,8653,8653,8653, + 8653,1418,373,8653,4043,4007,5008,5581,6434,283, + 8653,352,2172,354,3149,8653,8653,350,1423,8653, + 8653,8653,8653,8653,641,8653,8653,366,8653,2274, + 4189,35,1077,32,5599,6070,27,30,31,1080, + 1122,26,28,1071,294,25,23,50,1177,104, + 75,76,106,1216,1226,1219,1239,8653,8653,8653, + 8653,8653,8653,6137,8653,1229,1305,8653,1278,1511, + 788,2820,4375,35,1077,32,5599,8653,27,30, + 31,1080,1122,26,28,1071,294,25,23,50, + 1177,104,75,76,106,1216,1226,1219,3070,8653, + 8653,1769,35,3837,32,7411,5935,27,30,31, + 1080,1122,372,28,2436,35,1077,32,8653,8653, + 3241,30,31,1080,1122,476,3055,490,598,595, + 596,597,8653,8653,3133,8653,8653,3071,4877,8653, + 8653,8653,3141,3630,4189,35,1077,32,5599,1307, + 27,30,31,1080,1122,26,28,1071,294,25, + 23,50,1177,104,75,76,108,352,2172,354, + 3149,8653,8653,347,1423,8653,598,595,596,597, + 8653,8653,8653,365,776,8653,2874,8653,8653,8653, + 8653,8653,8653,8653,8653,55,8653,8653,8653,8653, + 1418,4189,35,1077,32,5599,4105,27,30,31, + 1080,1122,26,28,1071,294,25,23,50,1177, + 104,75,76,106,1216,1226,1219,1239,3696,8653, + 8653,8653,8653,5340,453,3834,1229,1305,8653,1278, + 2750,4375,35,1077,32,5599,8653,27,30,31, + 1080,1122,26,28,1071,294,25,23,50,1177, + 104,75,76,106,1216,1226,1219,3070,4189,35, + 1077,32,5599,8653,27,30,31,1080,1122,26, + 28,1071,294,25,23,50,1177,104,75,76, + 106,1216,1226,1219,2434,3055,8653,8653,8653,8653, + 8653,3460,8653,3133,8653,8653,3071,8653,8653,8653, + 8653,3561,8653,8653,8653,8653,4189,35,1077,32, + 5599,2851,27,30,31,1080,1122,26,28,1071, + 294,25,23,50,1177,104,75,76,106,1216, + 1226,1219,1239,8653,8653,8653,8653,8653,8653,8653, + 8653,1229,1305,8653,2759,4375,35,1077,32,5599, + 8653,27,30,31,1080,1122,26,28,1071,294, + 25,23,50,1177,104,75,76,106,1216,1226, + 1219,3070,8653,8653,3836,35,1077,32,7380,5935, + 27,30,31,1080,1122,372,28,8653,8653,8653, + 8653,8653,8653,8653,8653,8653,8653,8653,8653,3055, + 8653,598,595,596,597,8653,8653,3133,8653,8653, + 3567,6559,8653,4189,35,1077,32,5599,8653,27, + 30,31,1080,1122,26,28,1071,294,25,23, + 50,1177,104,75,76,106,1216,1226,1219,1239, + 352,2172,354,8653,8653,8653,347,1423,1229,2672, + 8653,8653,4375,35,1077,32,5599,798,27,30, + 31,1080,1122,26,28,1071,294,25,23,50, + 1177,104,75,76,106,1216,1226,1219,3070,4375, + 35,1077,32,5599,8653,27,30,31,1080,1122, + 26,28,1071,294,25,23,50,1177,104,75, + 76,106,1216,1226,1219,3070,3055,8653,8653,832, + 8653,8653,8653,2572,3507,8653,8653,2195,8653,8653, + 8653,8653,5801,8653,8653,8653,8653,339,343,2371, + 8653,8653,8653,3513,8653,8653,598,595,596,597, + 598,595,596,597,8653,8653,2561,8653,8653,2929, + 2640,4189,35,1077,32,5599,3735,27,30,31, + 1080,1122,26,28,1071,294,25,23,50,1177, + 104,75,76,106,1216,1226,1219,1239,3673,8653, + 8653,4189,35,1077,32,5599,2695,27,30,31, + 1080,1122,26,28,1071,294,25,23,50,1177, + 104,75,76,106,1216,1226,1219,1239,4756,35, + 551,8653,8653,8653,8653,385,2743,8653,8653,8653, + 8653,269,294,377,1059,814,382,8653,8653,8653, + 8653,8653,575,8653,8653,648,595,596,597,4375, + 35,1077,32,5599,8653,27,30,31,1080,1122, + 26,28,1071,294,25,23,50,1177,104,75, + 76,106,1216,1226,1219,3070,8653,8653,8653,264, + 8653,8653,8653,2913,35,1077,32,7380,4261,27, + 30,31,1080,1122,372,28,267,262,263,8653, + 765,8653,8653,3547,1546,35,1077,32,7380,5935, + 27,30,31,1080,1122,372,28,2943,35,3837, + 32,7380,5935,27,30,31,1080,1122,372,28, + 437,598,595,596,597,8653,274,277,280,4683, + 1015,6559,4026,3313,3884,595,596,597,4019,349, + 3445,354,8653,4583,5045,8653,8653,8653,1418,742, + 35,1771,422,5577,6271,6428,6983,6725,8653,8653, + 352,2172,354,8653,5520,8653,347,1423,8653,8653, + 8653,8653,8653,352,2172,354,191,798,3313,347, + 1423,8653,8653,4019,8653,2243,35,328,8653,306, + 776,1983,35,3837,32,7380,5935,27,30,31, + 1080,1122,372,28,560,561,565,8653,8653,5520, + 8653,1224,598,595,596,597,1418,8653,598,595, + 596,597,2874,2367,35,1077,32,7380,5045,27, + 30,31,1080,1122,372,28,7208,8653,1481,5616, + 453,3834,8653,539,187,8653,8653,340,343,2371, + 599,595,596,597,2130,2837,2357,352,2172,354, + 8653,3452,8653,347,1423,648,595,596,597,8653, + 8653,8653,8653,8653,776,2092,35,3837,32,7380, + 5935,27,30,31,1080,1122,372,28,539,352, + 2172,354,71,536,538,659,1423,8653,8653,264, + 8653,55,3884,595,596,597,1418,8653,8653,8653, + 4309,8653,5045,8653,8653,8653,279,262,263,8653, + 8653,8653,8653,5834,453,3834,8653,8653,3895,8653, + 8653,8653,8653,8653,187,8653,8653,2478,537,538, + 8653,352,2172,354,8653,2528,8653,347,1423,8653, + 8653,8653,2828,4189,35,1077,32,5599,776,27, + 30,31,1080,1122,26,28,1071,294,25,23, + 50,1177,104,75,76,106,1216,1226,1219,2482, + 4189,35,1077,32,5599,8653,27,30,31,1080, + 1122,26,28,1071,294,25,23,50,1177,104, + 75,76,106,1216,1226,1219,2524,5616,453,3834, + 4189,35,1077,32,5599,8653,27,30,31,1080, + 1122,26,28,1071,294,25,23,50,1177,104, + 75,76,106,1216,1226,1219,2594,4189,35,1077, + 32,5599,8653,27,30,31,1080,1122,26,28, + 1071,294,25,23,50,1177,104,75,76,106, + 1216,1226,1219,2597,4189,35,1077,32,5599,8653, + 27,30,31,1080,1122,26,28,1071,294,25, + 23,50,1177,104,75,76,106,1216,1226,1219, + 2606,286,4583,8653,8653,8653,671,1418,8653,1416, + 35,1077,32,7411,8653,27,30,31,1080,1122, + 372,28,55,8653,8653,8653,8653,1418,8653,8653, + 8653,8653,260,8653,187,191,598,595,596,597, + 8653,8653,2059,8653,747,738,4993,8653,211,8653, + 8653,235,247,7273,8653,187,234,244,245,246, + 248,647,8653,8653,200,8653,2685,8653,1,598, + 595,596,597,671,8653,352,2172,354,3149,3030, + 2172,348,1423,8653,8653,8653,8653,199,8653,8653, + 8653,366,214,198,201,202,203,204,205,260, + 8653,187,8653,8653,8653,8653,8653,598,595,596, + 597,747,738,2186,8653,211,8653,3108,235,247, + 7273,8653,8653,234,244,245,246,248,647,8653, + 8653,200,4065,35,1077,32,5599,8653,27,30, + 31,1080,1122,26,28,1071,294,25,23,50, + 1177,634,75,76,199,8653,8653,8653,8653,215, + 198,201,202,203,204,205,8653,212,4189,35, + 1077,32,5599,8653,27,30,31,1080,1122,26, + 28,1071,294,25,23,50,1177,104,75,76, + 106,1216,1226,1219,3453,8653,8653,8653,8653,8653, + 8653,8653,8653,8653,8653,8653,4189,35,1077,32, + 5599,5328,27,30,31,1080,1122,26,28,1071, + 294,25,23,50,1177,104,75,76,106,1216, + 1226,1219,3458,4189,35,1077,32,5599,8653,27, + 30,31,1080,1122,26,28,1071,294,25,23, + 50,1177,104,75,76,106,1216,1226,1219,3461, + 2180,35,1077,32,7380,5868,27,30,31,1080, + 1122,372,28,4189,35,1077,32,5599,8653,27, + 30,31,1080,1122,26,28,1071,294,25,23, + 50,1177,104,75,76,106,1216,1226,1219,3566, + 8653,8653,8653,8653,3498,35,1077,32,7380,7263, + 27,30,31,1080,1122,372,28,1854,8653,8653, + 8653,2051,8653,8653,8653,1705,352,2172,354,5940, + 271,294,347,1423,8653,8653,384,8653,8653,1583, + 35,1771,422,3690,648,595,596,597,648,595, + 596,597,598,595,596,597,2630,8653,385,8653, + 8653,8653,2561,8653,8653,8653,377,1059,814,382, + 352,2172,354,8653,8653,3689,347,1423,264,49, + 8653,8653,264,598,595,596,597,3387,1732,8653, + 8653,8653,746,3186,3149,272,262,263,8653,282, + 262,263,385,8653,8653,8653,8653,6002,8653,8653, + 377,1059,814,382,4189,35,1077,32,5599,2228, + 27,30,31,1080,1122,26,28,1071,294,25, + 23,50,1177,104,75,76,106,1216,1226,2617, + 4189,35,1077,32,5599,8653,27,30,31,1080, + 1122,26,28,1071,294,25,23,50,1177,104, + 75,76,106,1216,1226,2665,381,2191,8653,8653, + 8653,671,4019,8653,1705,55,399,8653,5940,8653, + 671,8653,1522,35,1077,32,7380,5935,27,30, + 31,1080,1122,372,28,4583,92,260,376,187, + 1418,598,595,596,597,8653,376,1830,187,747, + 738,2561,8653,211,8653,8653,235,247,7273,219, + 8653,234,244,245,246,248,647,8653,191,200, + 8653,1663,8653,476,598,595,596,597,671,6951, + 8653,1705,4913,3149,2718,5940,8653,1418,352,2172, + 354,8653,199,8653,347,1423,365,3386,198,201, + 202,203,204,205,260,3387,187,8653,598,595, + 596,597,8653,8653,2726,187,747,738,2561,6203, + 211,8653,8653,235,247,7273,193,8653,234,244, + 245,246,248,647,8653,8653,200,8653,8653,3153, + 571,598,595,596,597,671,3514,8653,1705,8653, + 3149,3108,5940,1701,35,1771,422,8653,8653,199, + 8653,8653,8653,365,209,198,201,202,203,204, + 205,260,8653,187,8653,598,595,596,597,8653, + 8653,8653,8653,747,738,2561,7297,211,8653,8653, + 235,247,7273,49,8653,234,244,245,246,248, + 647,8653,1732,200,8653,8653,1265,666,8653,8653, + 8653,8653,671,8653,2262,1705,8653,3149,8653,5940, + 1701,35,1771,422,1630,8653,199,8653,8653,8653, + 365,207,198,201,202,203,204,205,260,8653, + 187,8653,598,595,596,597,8653,8653,8653,8653, + 747,738,2561,733,211,8653,8653,235,247,7273, + 49,1461,234,244,245,246,248,647,8653,1732, + 200,8653,8653,4679,761,8653,8653,8653,8653,671, + 8653,8653,3709,8653,3149,8653,5940,1701,35,1771, + 422,3742,8653,199,8653,8653,8653,365,639,198, + 201,202,203,204,205,260,8653,187,8653,598, + 595,596,597,8653,8653,8653,8653,747,738,2561, + 5269,211,8653,8653,235,247,7273,49,8653,234, + 244,245,246,248,647,8653,1732,200,8653,8653, + 1210,856,55,55,8653,8653,671,1418,1418,8653, + 2435,3149,8653,8653,1701,35,1771,422,8653,8653, + 199,8653,8653,8653,6002,208,198,201,202,203, + 204,205,260,8653,187,187,187,648,595,596, + 597,8653,8653,8653,747,738,2763,2841,211,8653, + 8653,235,247,7273,49,8653,234,244,245,246, + 248,647,8653,1732,200,8653,8653,1082,951,8653, + 55,264,8653,671,8653,1418,8653,2531,8653,8653, + 8653,1701,35,1771,422,8653,8653,199,285,262, + 263,8653,218,198,201,202,203,204,205,260, + 8653,187,8653,187,648,595,596,597,8653,8653, + 8653,747,738,94,3633,211,8653,8653,235,247, + 7273,49,8653,234,244,245,246,248,647,8653, + 1732,200,8653,8653,746,1046,4583,8653,264,8653, + 671,1418,8653,3425,55,8653,8653,5940,8653,671, + 8653,8653,8653,8653,199,643,262,263,8653,3841, + 198,201,202,203,204,205,260,8653,187,191, + 598,595,596,597,8653,376,55,187,747,738, + 2561,1418,211,8653,8653,235,247,7273,219,8653, + 234,244,245,246,248,647,8653,8653,200,8653, + 8653,8653,1141,8653,8653,8653,8653,671,6951,187, + 8653,2627,3149,8653,8653,8653,8653,8653,8653,8653, + 3294,199,8653,8653,8653,366,223,198,201,202, + 203,204,205,260,8653,187,8653,8653,648,595, + 596,597,8653,8653,8653,747,738,3517,8653,211, + 8653,8653,235,247,7273,8653,8653,234,244,245, + 246,248,647,8653,8653,200,8653,8653,3231,1236, + 8653,8653,264,8653,671,2860,35,1077,32,7380, + 5868,27,30,31,1080,1122,372,28,199,276, + 262,263,8653,217,198,201,202,203,204,205, + 260,8653,187,8653,1953,35,1771,422,2243,3892, + 328,8653,747,738,8653,8653,211,8653,8653,235, + 247,7273,2764,8653,234,244,245,246,248,647, + 8653,8653,200,8653,8653,598,595,596,597,8653, + 8653,352,2172,354,49,2874,8653,347,1423,598, + 595,596,597,1732,8653,199,8653,3211,586,2561, + 226,198,201,202,203,204,205,55,2723,8653, + 8653,8653,1418,385,4703,35,1771,422,6364,8653, + 8653,377,1059,814,382,794,8653,270,294,8653, + 587,3673,8653,8653,8653,648,595,596,597,8653, + 187,648,595,596,597,4800,1283,4583,4583,8653, + 4019,3695,1418,1418,306,3137,35,1077,32,7380, + 5935,27,30,31,1080,1122,372,28,8653,264, + 8653,8653,8653,4309,8653,264,5520,8653,8653,8653, + 191,191,599,595,596,597,279,262,263,8653, + 8653,8653,268,262,263,4189,35,1077,32,5599, + 2478,27,30,31,1080,1122,26,28,1071,294, + 25,23,50,1177,104,75,76,107,8653,8653, + 8653,352,2172,354,8653,8653,307,347,1423,8653, + 8653,8653,275,278,281,4683,1015,8653,5302,2476, + 35,1077,32,7380,5935,27,30,31,1080,1122, + 372,28,8653,8653,8653,393,8653,8653,3741,3795, + 1701,35,1771,422,284,8653,599,595,596,597, + 8653,3075,3319,3367,4189,35,1077,32,5599,642, + 27,30,31,1080,1122,26,28,1071,294,25, + 23,50,1177,104,75,76,103,8653,8653,8653, + 49,8653,8653,8653,8653,352,2172,354,8653,1732, + 8653,347,1423,2512,8653,8653,8653,4065,35,1077, + 32,5599,5302,27,30,31,1080,1122,26,28, + 1071,294,25,23,50,1177,633,75,76,4127, + 35,1077,32,5599,8653,27,30,31,1080,1122, + 26,28,1071,294,25,23,50,1177,85,75, + 76,4251,35,1077,32,5599,8653,27,30,31, + 1080,1122,26,28,1071,294,25,23,50,1177, + 644,75,76,4313,35,1077,32,5599,8653,27, + 30,31,1080,1122,26,28,1071,294,25,23, + 50,1177,3219,75,76,4809,35,551,3176,35, + 1771,422,1912,8653,8653,8653,8653,4019,270,294, + 8653,8653,8653,5051,8653,8653,8653,5940,4019,8653, + 8653,8653,648,595,596,597,8653,8653,8653,8653, + 8653,8653,8653,260,3356,8653,8653,8653,49,671, + 598,595,596,597,5520,8653,8653,1732,8653,8653, + 2561,1930,237,247,7273,8653,264,236,244,245, + 246,248,647,8653,8653,376,8653,187,8653,8653, + 8653,8653,8653,268,262,263,2200,747,2039,794, + 8653,4019,3149,8653,8653,8653,8653,8653,8653,238, + 240,242,3686,8653,8653,365,8653,775,3450,8653, + 8653,8653,249,239,241,8653,8653,260,8653,8653, + 8653,8653,8653,275,278,281,4683,1015,7297,2137, + 8653,8653,8653,393,8653,3356,237,247,7273,8653, + 671,236,244,245,246,248,647,8653,8653,2326, + 3319,3367,8653,927,3581,8653,7000,8653,2296,8653, + 8653,8653,55,4019,8653,8653,376,671,187,8653, + 8653,8653,8653,238,240,242,3686,8653,747,2039, + 598,595,596,597,8653,8653,249,239,241,260, + 2561,8653,8653,376,8653,187,8653,8653,775,3450, + 8653,560,561,566,8653,8653,219,8653,237,247, + 7273,8653,8653,236,244,245,246,248,647,2008, + 2323,8653,362,8653,4019,927,6951,8653,3631,8653, + 7000,2145,35,1077,32,7380,5935,27,30,31, + 1080,1122,372,28,8653,238,240,242,3686,8653, + 260,8653,598,595,596,597,8653,8653,249,239, + 241,8653,2561,2819,8653,8653,8653,8653,8653,237, + 247,7273,8653,8653,236,244,245,246,248,647, + 2104,8653,8653,8653,8653,4019,3309,8653,1022,8653, + 648,595,596,597,2511,8653,2488,352,2172,354, + 3632,4019,7000,347,1423,8653,238,240,242,3686, + 8653,260,8653,8653,3785,598,595,596,597,578, + 239,241,8653,8653,264,2796,8653,260,8653,8653, + 237,247,7273,8653,8653,236,244,245,246,248, + 647,282,262,263,4800,8653,237,247,7273,4019, + 8653,236,244,245,246,248,647,2584,4566,8653, + 8653,8653,4019,671,8653,8653,8653,238,240,242, + 3686,8653,8653,2680,8653,5520,8653,8653,4019,8653, + 250,239,241,238,240,242,3686,8653,260,376, + 1660,187,8653,8653,7532,4019,667,239,241,8653, + 8653,8653,219,8653,260,8653,8653,237,247,7273, + 8653,8653,236,244,245,246,248,647,2671,8653, + 8653,260,6951,237,247,7273,8653,8653,236,244, + 245,246,248,647,2776,8653,8653,8653,8653,4019, + 2116,441,4843,8653,238,240,242,3686,8653,8653, + 2872,8653,8653,8653,393,4019,8653,666,239,241, + 238,240,242,3686,8653,260,8653,8653,8653,8653, + 3697,3319,3367,665,239,241,8653,442,443,444, + 3686,260,221,8653,237,247,7273,8653,5060,236, + 244,245,246,248,647,8653,8653,8653,3862,8653, + 237,247,7273,671,8653,236,244,245,246,248, + 647,8653,8653,3678,8653,648,595,596,597,8653, + 8653,238,240,242,3686,8653,8653,8653,8653,2749, + 8653,187,8653,8653,338,239,241,238,240,242, + 3686,8653,738,5051,8653,211,8653,5940,4019,264, + 533,239,241,1392,35,1077,32,7380,3972,27, + 30,31,1080,1122,372,28,567,262,263,2468, + 598,595,596,597,5520,8653,8653,3287,445,447, + 2561,5940,8653,8653,227,8653,2052,35,1771,422, + 8653,1786,55,8653,8653,7532,4019,4019,8653,8653, + 8653,8653,8653,1713,598,595,596,597,1793,8653, + 8653,7311,3149,8653,2561,2052,35,1771,422,349, + 3445,354,260,376,8653,365,49,8653,8653,8653, + 598,595,596,597,8653,1732,8653,8653,8653,2077, + 2796,2116,441,4843,8653,8653,3149,8653,733,1953, + 35,1771,422,393,8653,49,3450,8653,8653,366, + 1953,35,1771,422,1732,8653,8653,4919,47,2326, + 3319,3367,8653,8653,8653,385,8653,1917,442,443, + 444,3686,8653,379,1059,814,382,8653,8653,49, + 8653,1953,35,1771,422,8653,2405,8653,1732,8653, + 49,8653,47,2739,35,1771,422,5107,8653,1732, + 7078,228,4019,2235,3678,2052,35,1771,422,4563, + 2834,35,1771,422,4019,1953,35,1771,422,8653, + 1327,49,8653,2673,8653,8653,2357,8653,376,590, + 1732,4050,8653,49,6382,1953,35,1771,422,8653, + 5520,8653,1732,8653,8653,49,47,8653,8653,8653, + 49,8653,8653,8653,1732,49,8653,8653,47,1732, + 8653,3450,4050,47,1732,8653,8653,8653,47,445, + 448,8653,8653,8653,1149,49,8653,1953,35,1771, + 422,1022,593,8653,1732,2575,4143,8653,47,8653, + 8653,1963,1953,35,1771,422,2427,1953,35,1771, + 422,8653,1701,35,1771,422,927,8653,598,595, + 596,597,598,595,596,597,2599,49,2796,539, + 8653,8653,2796,55,8653,8653,1732,8653,4019,8653, + 47,8653,49,598,595,596,597,49,8653,8653, + 8653,1732,49,2561,8653,47,1732,8653,55,8653, + 47,1732,55,4019,376,2433,8653,4019,3224,55, + 55,55,55,8653,4019,4019,4019,4019,8653,536, + 538,8653,8653,3302,8653,2835,8653,8653,3380,376, + 8653,8653,8653,376,8653,8653,8653,3450,8653,8653, + 376,376,376,376,8653,8653,8653,8653,8653,8653, + 8653,8653,8653,8653,3927,8653,8653,8653,1918,8653, + 8653,2827,3450,8653,8653,2829,3450,8653,8653,8653, + 8653,8653,8653,3450,3450,3450,3450,3840,8653,8653, + 8653,8653,8653,1931,8653,8653,8653,1934,8653,8653, + 8653,8653,8653,8653,2380,543,541,594,8653,0, + 39,8668,0,39,8667,0,1870,29,0,474, + 1919,0,488,2017,0,38,914,0,38,8668, + 0,38,8667,0,8716,74,0,8715,74,0, + 1401,74,0,1570,74,0,5262,74,0,3998, + 74,0,5207,124,0,1,478,0,492,1228, + 0,491,1395,0,8661,1,0,4156,89,0, + 1870,421,0,35,33,0,32,34,0,39, + 914,0,1,714,0,1,8958,0,1,8957, + 0,1,8956,0,1,8955,0,1,8954,0, + 1,8953,0,1,8952,0,1,8951,0,1, + 8950,0,1,8949,0,1,8948,0,1,9316, + 0,1,9315,0,39,1,8668,0,39,1, + 8667,0,8919,255,0,8918,255,0,1968,255, + 0,1990,255,0,2025,255,0,9317,255,0, + 9024,255,0,9023,255,0,8946,255,0,8945, + 255,0,8944,255,0,8943,255,0,8942,255, + 0,8941,255,0,8940,255,0,8939,255,0, + 8919,256,0,8918,256,0,1968,256,0,1990, + 256,0,2025,256,0,9317,256,0,9024,256, + 0,9023,256,0,8946,256,0,8945,256,0, + 8944,256,0,8943,256,0,8942,256,0,8941, + 256,0,8940,256,0,8939,256,0,8919,257, + 0,8918,257,0,1968,257,0,1990,257,0, + 2025,257,0,9317,257,0,9024,257,0,9023, + 257,0,8946,257,0,8945,257,0,8944,257, + 0,8943,257,0,8942,257,0,8941,257,0, + 8940,257,0,8939,257,0,2025,428,0,1990, + 428,0,1968,428,0,316,428,0,8919,258, + 0,8918,258,0,1968,258,0,1990,258,0, + 2025,258,0,9317,258,0,9024,258,0,9023, + 258,0,8946,258,0,8945,258,0,8944,258, + 0,8943,258,0,8942,258,0,8941,258,0, + 8940,258,0,8939,258,0,316,321,0,8919, + 259,0,8918,259,0,1968,259,0,1990,259, + 0,2025,259,0,9317,259,0,9024,259,0, + 9023,259,0,8946,259,0,8945,259,0,8944, + 259,0,8943,259,0,8942,259,0,8941,259, + 0,8940,259,0,8939,259,0,8668,48,0, + 8667,48,0,8919,646,0,8918,646,0,1968, + 646,0,1990,646,0,2025,646,0,9317,646, + 0,9024,646,0,9023,646,0,8946,646,0, + 8945,646,0,8944,646,0,8943,646,0,8942, + 646,0,8941,646,0,8940,646,0,8939,646, + 0,8919,273,0,8918,273,0,1968,273,0, + 1990,273,0,2025,273,0,9317,273,0,9024, + 273,0,9023,273,0,8946,273,0,8945,273, + 0,8944,273,0,8943,273,0,8942,273,0, + 8941,273,0,8940,273,0,8939,273,0,8958, + 273,0,8957,273,0,8956,273,0,8955,273, + 0,8954,273,0,8953,273,0,8952,273,0, + 8951,273,0,8950,273,0,8949,273,0,8948, + 273,0 }; }; - public final static char baseAction[] = BaseAction.baseAction; + + public interface BaseAction1 { + public final static char baseAction1[] = { + 9316,273,0,9315,273,0,39,8668,273,0, + 39,8667,273,0,8691,273,0,8665,417,0, + 8664,417,0,8659,1,0,8658,1,0,4913, + 269,0,32,422,0,29,421,0,1,261, + 3222,0,8662,261,0,3230,261,0,1,261, + 755,0,1,261,0,43,8689,0,43,37, + 0,5207,126,0,5207,125,0,1,5392,0, + 1,6637,0,1,6659,0,1,2797,0,1, + 2953,0,1,3031,0,1,3109,0,1,3187, + 0,1,3265,0,1,3343,0,1066,1,0, + 1,4060,0,1,2875,0,1,8675,0,1, + 8674,0,1,8673,0,1,8672,0,1,8671, + 0,1,8670,0,1,8669,0,1,832,0, + 1,843,0,1,921,0,1,992,0,1, + 1009,0,1,3519,0,39,1,0,2025,479, + 0,1990,479,0,1968,479,0,8691,479,0, + 364,479,0,39,479,0,2025,658,0,1990, + 658,0,1968,658,0,2025,656,0,1990,656, + 0,1968,656,0,660,656,0,660,655,0, + 1,2025,0,1,1990,0,1,1968,0,8691, + 1,0,47,37,0,634,644,0,3372,261, + 0,10,12,0,1,5742,0,1,914,0, + 1,90,0,1968,568,0,1990,568,0,2025, + 568,0,1968,569,0,1990,569,0,2025,569, + 0,1968,570,0,1990,570,0,2025,570,0, + 1968,571,0,1990,571,0,2025,571,0,1968, + 572,0,1990,572,0,2025,572,0,8668,273, + 0,8667,273,0,2025,364,0,1990,364,0, + 1968,364,0,535,3679,0,8691,1,261,0, + 39,1,261,0,261,450,0,8668,37,0, + 8667,37,0,8668,2,37,0,8667,2,37, + 0,8668,36,0,8667,36,0,8,10,12, + 0,3732,225,0,1,364,0,6236,98,0, + 8689,45,0,37,45,0,8663,439,0,8662, + 439,0,261,449,0,8665,645,417,0,8664, + 645,417,0,2753,351,0,1,658,0,6467, + 101,0,3646,97,0,2025,93,0,1990,93, + 0,1968,93,0,8691,93,0,364,93,0, + 39,93,0,35,72,0,9317,369,0,9024, + 369,0,9023,369,0,5755,311,0,535,6939, + 0,3888,417,0,216,6262,0,261,252,0, + 1,2464,0,1,3369,0,2025,653,0,1990, + 653,0,1968,653,0,2025,652,0,1990,652, + 0,1968,652,0,598,599,0,8,12,0, + 261,251,0,8665,1,0,2025,653,654,0, + 1990,653,654,0,1968,653,654,0,653,654, + 0 + }; + }; + + public final static char baseAction[] = new char[BaseAction0.baseAction0.length + BaseAction1.baseAction1.length]; + { + int index = 0; + System.arraycopy(BaseAction0.baseAction0, 0, baseAction, index, BaseAction0.baseAction0.length); + index += BaseAction0.baseAction0.length; + System.arraycopy(BaseAction1.baseAction1, 0, baseAction, index, BaseAction1.baseAction1.length); + }; public final int baseAction(int index) { return baseAction[index]; } public final static char lhs[] = baseAction; public final int lhs(int index) { return lhs[index]; }; @@ -1431,466 +1707,526 @@ public class GPPSizeofExpressionParserprs 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,0,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 60,61,62,63,64,65,66,67,68,0, - 70,71,0,73,74,3,0,0,0,79, - 11,81,82,83,84,85,86,87,88,89, - 90,91,92,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,0,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,60,61,62,63,64,65,66, - 67,68,0,70,71,3,73,74,99,100, - 94,95,79,96,81,82,83,84,85,86, - 87,88,89,90,91,92,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,0,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,61,62,63, - 64,65,66,67,68,0,70,71,0,73, - 74,0,0,1,2,79,4,81,82,83, - 84,85,86,87,88,89,90,91,92,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,69,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,60, - 61,62,63,64,65,66,67,68,0,70, - 71,0,73,74,3,97,98,96,79,11, - 129,82,83,84,85,86,87,88,89,90, - 91,92,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,0,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,60,61,62,63,64,65,66,67, - 68,0,70,71,0,73,74,99,100,0, - 0,79,11,4,82,83,84,85,86,87, - 88,89,90,91,92,0,1,2,3,4, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,55,56,57,58,59, + 60,61,62,63,64,65,0,67,68,69, + 70,0,72,0,74,75,10,0,0,79, + 3,81,82,10,11,85,86,87,88,89, + 90,91,92,93,94,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, - 0,46,47,48,49,50,51,52,53,54, + 45,46,47,48,49,50,51,52,53,0, 55,56,57,58,59,60,61,62,63,64, - 65,66,67,68,0,70,71,0,73,74, - 99,100,0,0,79,11,12,82,83,84, - 85,86,87,88,89,90,91,92,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,0,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,60,61, - 62,63,64,65,66,67,68,0,70,71, - 0,73,74,3,0,1,2,79,4,96, - 82,83,84,85,86,87,88,89,90,91, - 92,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,69,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 59,60,61,62,63,64,65,66,67,68, - 0,70,71,0,73,74,0,1,2,0, - 79,8,3,82,83,84,85,86,87,88, - 89,90,91,92,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,69, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,61,62,63,64,65, - 66,67,68,0,70,71,0,73,74,0, - 1,2,0,79,0,3,82,83,84,85, - 86,87,88,89,90,91,92,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,69,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,60,61,62, - 63,64,65,66,67,68,0,70,71,0, - 73,74,0,1,2,0,79,0,3,82, - 83,84,85,86,87,88,89,90,91,92, + 65,0,67,68,69,70,0,72,0,74, + 75,0,106,107,79,104,81,82,100,101, + 85,86,87,88,89,90,91,92,93,94, 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,69,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 60,61,62,63,64,65,66,67,68,0, - 70,71,0,73,74,0,97,98,3,79, - 0,1,82,83,84,85,86,87,88,89, - 90,91,92,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,69,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,60,61,62,63,64,65,66, - 67,68,0,70,71,0,73,74,0,97, - 98,3,79,0,0,82,83,84,85,86, - 87,88,89,90,91,92,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,69,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,61,62,63, - 64,65,66,67,68,0,70,71,0,73, - 74,0,97,98,0,79,0,12,82,83, - 84,85,86,87,88,89,90,91,92,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,0,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,60, - 61,62,63,64,65,66,67,68,0,70, - 71,0,73,74,0,94,95,0,79,0, - 0,82,83,84,85,86,87,88,89,90, - 91,92,0,1,2,3,4,5,6,7, - 8,9,10,11,12,0,1,2,3,4, - 42,43,0,8,9,10,72,5,6,7, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,0,42,43,44,0,46,47, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,0,1,2,0,4,5,6, - 7,69,0,71,72,0,10,75,76,77, - 78,79,80,81,0,1,2,72,4,105, - 75,0,8,9,107,106,94,95,96,97, - 98,99,100,101,102,103,104,105,106,107, - 108,109,110,0,42,43,69,115,116,117, - 118,119,120,121,122,123,124,125,126,127, - 128,129,0,1,2,3,4,5,6,7, - 8,9,10,11,12,0,103,104,3,0, - 1,2,0,4,5,6,7,5,6,7, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,0,42,43,44,4,46,47, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,127,45,0,105,0,1,2, - 0,69,0,71,72,8,9,75,76,77, - 78,79,80,81,0,1,2,3,4,5, - 6,7,8,9,29,80,94,95,96,97, - 98,99,100,101,102,103,104,105,106,107, - 108,109,110,0,42,43,3,115,116,117, - 118,119,120,121,122,123,124,125,126,127, - 128,129,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,106,0,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,60,61,62,63,64,65,0,0, - 1,2,70,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,103,104,44,45,0, - 1,2,3,4,5,6,7,8,9,82, - 11,12,0,1,2,62,63,64,65,66, - 67,68,73,74,0,77,0,1,2,76, - 4,5,6,7,81,0,1,2,3,4, - 5,6,7,8,9,0,93,0,0,1, - 2,3,4,5,6,7,8,9,0,11, - 12,3,0,69,0,112,113,114,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, - 0,76,44,45,0,1,2,3,4,5, - 6,7,8,9,76,11,12,80,0,0, - 62,63,64,65,66,67,68,28,29,30, - 76,0,1,2,76,4,5,6,7,81, - 0,0,11,12,130,108,5,6,7,0, - 96,93,12,116,117,118,119,120,121,122, - 123,124,125,126,112,113,114,0,1,2, - 112,113,114,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,44,45,0, - 1,2,3,4,5,6,7,8,9,10, - 0,1,0,0,1,62,63,64,65,66, - 67,68,0,10,0,1,2,3,4,5, - 6,7,8,9,81,11,12,108,28,45, - 28,29,30,44,0,116,93,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,75,0, - 0,44,45,3,5,6,7,0,1,2, - 76,0,5,6,7,4,5,6,7,62, - 63,64,65,66,67,68,69,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 0,1,2,3,4,5,6,7,8,9, - 93,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,44,45,0,1,2, - 3,4,5,6,7,8,9,0,1,2, - 0,1,2,62,63,64,65,66,67,68, - 0,1,2,3,4,0,1,2,8,9, - 10,0,81,0,1,2,3,4,5,6, - 7,8,9,0,93,0,1,2,3,4, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,73,55,56,57,58,59, + 60,61,62,63,64,65,0,67,68,69, + 70,0,72,0,74,75,0,1,2,79, + 4,81,82,0,13,85,86,87,88,89, + 90,91,92,93,94,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,44, - 45,0,72,0,8,75,0,77,78,0, - 80,5,6,7,5,6,7,62,63,64, - 65,66,67,68,0,1,96,0,1,2, - 3,4,5,6,7,11,81,0,11,12, - 0,45,5,6,7,0,1,2,93,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,44,45,0,0,1,2,72, - 4,5,6,7,0,0,69,11,12,0, - 107,62,63,64,65,66,67,68,73,74, + 35,36,37,38,39,40,41,42,43,44, + 45,46,47,48,49,50,51,52,53,66, + 55,56,57,58,59,60,61,62,63,64, + 65,0,67,68,69,70,0,72,102,74, + 75,10,99,0,79,0,3,82,105,4, + 85,86,87,88,89,90,91,92,93,94, 0,1,2,3,4,5,6,7,8,9, - 81,11,12,0,0,45,0,3,5,6, - 7,0,93,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,0,45,44,45,5, - 6,7,72,0,1,2,3,4,94,95, - 0,8,9,94,95,62,63,64,65,66, - 67,68,28,29,30,31,32,33,34,35, - 36,37,38,39,40,0,1,2,3,4, - 94,95,0,8,9,3,93,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,94, - 95,44,45,5,6,7,0,1,2,0, - 4,5,6,7,5,6,7,11,12,62, - 63,64,65,66,67,68,28,29,30,31, - 32,33,34,35,36,37,38,39,40,0, - 1,2,3,4,0,0,0,8,9,0, - 93,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,0,45,44,45,0,1,2, - 3,4,0,1,2,8,9,10,0,0, - 8,72,3,62,63,64,65,66,67,68, - 0,1,2,3,4,5,6,7,8,9, - 0,11,12,41,0,1,2,3,4,0, - 10,44,8,9,93,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,44, - 45,0,0,0,1,2,76,4,5,6, - 7,71,94,95,11,12,0,62,63,64, - 65,66,67,68,0,1,2,0,4,5, - 6,7,0,0,10,11,12,4,5,6, - 7,45,10,41,11,12,0,45,93,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,0,76,44,45,4,0,1,2,75, - 4,5,6,7,77,78,0,75,0,77, - 4,62,63,64,65,66,67,68,72,0, - 96,0,1,2,3,4,5,6,7,8, - 9,0,1,2,0,4,0,31,4,8, - 9,45,93,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,0,0,44,45,3, - 0,0,1,3,10,10,10,76,79,0, - 10,10,3,69,0,62,63,64,65,66, - 67,68,0,1,2,0,0,5,6,7, - 5,6,7,11,0,10,0,1,2,3, - 4,0,41,0,8,9,93,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,71,71,45,72,44, - 0,75,72,77,78,75,75,41,42,43, - 10,72,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,61,0,0, - 1,2,77,67,78,0,70,8,9,73, - 74,0,1,2,3,4,0,76,0,8, - 9,78,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,41, - 76,0,1,2,0,4,0,77,0,8, - 9,81,41,42,43,0,0,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 59,60,61,0,0,1,2,72,0,0, - 0,70,0,3,73,74,45,0,10,78, - 0,1,2,3,4,77,78,0,8,9, 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,45, - 0,3,78,3,78,0,46,47,10,0, - 0,41,42,43,78,10,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 60,61,72,75,0,1,2,78,4,0, - 70,71,8,9,0,1,2,3,4,10, - 0,81,8,9,96,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,72,75,0,115,0,0,111,45, - 75,0,5,6,7,41,42,43,128,80, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,61,0,1,2,0, - 71,0,1,2,70,0,0,73,74,0, - 1,2,3,4,0,0,76,8,9,4, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,0,72,0, - 69,45,78,0,1,2,45,10,0,78, - 41,42,43,10,0,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,60, - 61,72,101,102,0,1,2,0,0,70, - 109,110,73,74,0,1,2,3,4,11, - 0,77,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,75,76,71,76,0,0,0,45, - 4,0,5,6,7,41,42,43,10,0, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,61,69,31,0,1, - 2,3,4,76,70,71,8,9,0,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,0,0,0, - 0,5,6,7,5,6,7,10,10,41, - 42,43,0,75,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,60,61, - 0,1,2,0,0,0,0,3,70,0, - 4,73,74,0,1,2,3,4,112,113, - 114,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,0,75,0,77,45,5,6,7,81, - 80,0,0,10,41,42,43,0,76,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,60,61,69,0,0,1,2, - 3,4,77,70,71,8,9,44,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,0,0,0,0, - 3,5,6,7,0,10,0,41,41,42, - 43,45,13,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,60,61,0, - 0,0,0,3,5,6,7,70,0,44, - 73,74,0,1,2,3,4,0,10,45, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,0,77,0,76,5,6,7,5,6, - 7,10,44,41,42,43,80,0,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,60,61,0,0,0,1,2,3, - 4,80,0,71,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,0,0,0,0,5, - 6,7,0,111,0,3,75,41,42,43, - 13,0,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,61,0,1, - 2,3,4,69,69,0,8,9,3,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,0,0,0, - 0,0,0,66,69,4,10,10,10,41, - 42,43,10,78,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,60,61, - 0,0,0,127,3,3,101,102,70,0, - 1,2,3,4,109,110,44,8,9,111, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,0,0,0, - 69,75,3,77,0,76,0,10,81,81, - 41,42,43,0,0,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,60, - 61,0,1,2,3,4,0,77,0,8, - 9,72,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,0, - 0,0,0,3,0,4,0,3,71,10, - 72,0,41,42,43,69,72,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 59,60,61,0,1,2,3,4,62,0, - 0,8,9,44,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,0,0,0,0,3,0,3,0,3, - 0,3,0,3,41,42,43,0,76,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,60,61,0,1,2,3,4, - 0,0,0,8,9,0,11,12,13,14, + 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,71,55,56,57,58,59, + 60,61,62,63,64,65,0,67,68,69, + 70,0,72,0,74,75,10,106,107,79, + 104,0,82,0,3,85,86,87,88,89, + 90,91,92,93,94,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,41,42,43,78, - 77,46,47,48,49,50,51,52,53,54, - 55,56,57,58,59,60,61,0,1,2, - 3,4,0,0,41,8,9,0,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,80,0,0,111,0, - 0,0,0,0,0,0,70,69,41,42, - 43,77,77,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,60,61,0, - 1,2,3,4,0,0,0,8,9,0, + 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,66, + 55,56,57,58,59,60,61,62,63,64, + 65,80,67,68,69,70,0,72,0,74, + 75,3,106,107,79,0,103,82,0,4, + 85,86,87,88,89,90,91,92,93,94, + 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,66,55,56,57,58,59, + 60,61,62,63,64,65,78,67,68,69, + 70,0,72,0,74,75,5,6,7,79, + 104,0,82,0,11,85,86,87,88,89, + 90,91,92,93,94,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,66, + 55,56,57,58,59,60,61,62,63,64, + 65,0,67,68,69,70,0,72,0,74, + 75,0,1,2,79,0,0,82,0,8, + 85,86,87,88,89,90,91,92,93,94, + 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,66,55,56,57,58,59, + 60,61,62,63,64,65,80,67,68,69, + 70,0,72,102,74,75,5,6,7,79, + 102,0,82,0,3,85,86,87,88,89, + 90,91,92,93,94,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,66, + 55,56,57,58,59,60,61,62,63,64, + 65,0,67,68,69,70,0,72,0,74, + 75,5,6,7,79,0,1,82,0,0, + 85,86,87,88,89,90,91,92,93,94, + 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,66,55,56,57,58,59, + 60,61,62,63,64,65,77,67,68,69, + 70,0,72,0,74,75,5,6,7,79, + 0,103,82,0,0,85,86,87,88,89, + 90,91,92,93,94,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,66, + 55,56,57,58,59,60,61,62,63,64, + 65,77,67,68,69,70,0,72,0,74, + 75,5,6,7,79,0,103,82,0,0, + 85,86,87,88,89,90,91,92,93,94, + 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,66,55,56,57,58,59, + 60,61,62,63,64,65,77,67,68,69, + 70,0,72,0,74,75,5,6,7,79, + 0,0,82,0,3,85,86,87,88,89, + 90,91,92,93,94,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,0, + 55,56,57,58,59,60,61,62,63,64, + 65,78,67,68,69,70,0,72,0,74, + 75,5,6,7,79,102,8,82,0,1, + 85,86,87,88,89,90,91,92,93,94, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,0,1,2,28,4,0,129, + 0,8,9,0,0,5,6,7,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,82,42,43,44,45,0,47,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,0,1,2,3,4,66,54,0,8, + 9,71,72,73,0,0,76,77,78,79, + 80,81,0,83,84,0,1,2,3,4, + 5,6,7,8,9,13,96,97,98,99, + 100,101,102,103,104,105,106,107,108,109, + 110,111,112,113,114,115,116,117,118,119, + 120,121,0,1,2,0,126,127,128,129, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,0,1,2,71,4,80,67, + 0,8,9,79,130,5,6,7,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,0,42,43,44,45,54,47,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,0,1,2,3,4,66,54,73,8, + 9,71,72,73,0,0,76,77,78,79, + 80,81,41,83,84,0,1,2,3,4, + 5,6,7,8,9,54,96,97,98,99, + 100,101,102,103,104,105,106,107,108,109, + 110,111,112,113,114,115,116,117,118,119, + 120,121,0,1,2,0,126,127,128,129, + 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,45,46,0,48,49, + 50,51,52,53,0,55,56,57,58,59, + 60,61,62,63,64,65,74,75,68,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,80,0,0, - 0,0,0,0,0,69,0,0,0,0, - 41,42,43,76,0,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,60, - 61,0,1,2,3,4,0,0,0,8, - 9,0,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,0, - 0,0,3,0,0,0,0,8,0,0, - 11,12,41,42,43,77,13,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 59,60,61,0,0,0,0,0,0,0, - 0,42,43,10,10,46,47,48,45,45, - 69,45,0,77,45,0,0,80,80,78, - 0,0,0,0,0,62,0,0,69,0, - 0,72,73,74,0,0,77,78,0,80, - 13,80,101,102,45,80,0,0,0,0, - 109,110,0,94,95,0,97,0,99,100, - 101,102,103,104,105,106,107,108,75,75, - 0,0,45,0,115,0,117,118,119,120, - 121,122,123,124,125,126,0,1,2,62, - 4,5,6,7,0,0,0,0,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,0,0, - 0,0,0,0,0,0,0,0,0,0, - 1,2,0,4,5,6,7,0,62,63, - 64,65,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,5,6,7,0, - 0,62,63,64,65,14,15,16,17,18, - 19,20,21,22,23,24,25,26,0,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,12,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,0,0,0,44,0,0,0, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,0,0,0,0,0,0,0, - 0,69,0,0,72,0,0,75,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,0,0,0,44,0,0,0,0,1, + 0,1,2,0,0,103,47,122,4,5, + 6,7,0,54,10,11,4,5,6,7, + 0,62,63,64,65,0,67,0,69,70, + 0,11,5,6,7,98,0,78,0,3, + 81,14,15,16,17,18,19,20,21,22, + 23,24,25,26,95,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, - 12,0,0,0,0,0,0,0,0,0, - 0,0,72,0,0,75,28,29,30,31, + 42,43,123,124,125,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,123,124,125,0, + 1,2,47,4,5,6,7,0,0,54, + 0,1,2,5,6,7,78,62,63,64, + 65,0,67,0,69,70,0,0,5,6, + 7,0,0,78,3,3,81,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 95,28,29,30,31,32,33,34,35,36, + 37,38,39,40,54,0,1,2,3,4, + 5,6,7,8,9,10,11,0,123,124, + 125,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,0,1,2,47,4, + 5,6,7,0,0,54,71,0,5,6, + 7,0,0,62,63,64,65,0,67,12, + 69,70,0,1,2,3,4,5,6,7, + 8,9,81,0,1,2,3,4,5,6, + 7,8,9,10,11,41,95,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,81,77, + 0,0,1,2,47,5,6,7,0,0, + 78,54,0,5,6,7,0,1,2,62, + 63,64,65,66,67,104,69,70,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,0,1,2,3,4,5,6,7,8, + 9,0,95,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,0, + 47,0,8,9,0,1,2,54,4,100, + 101,12,8,9,0,62,63,64,65,78, + 67,0,69,70,0,0,5,6,7,0, + 1,2,3,4,81,0,0,8,9,4, + 0,12,0,3,0,0,4,3,95,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,66,0,1,2,0,47,5,6,7, + 71,66,73,54,80,76,77,71,66,80, + 0,62,63,64,65,71,67,73,69,70, + 0,77,12,28,29,30,127,98,83,84, + 81,0,108,109,110,111,112,113,114,115, + 116,117,118,119,95,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,0, + 4,81,47,4,8,9,0,1,2,54, + 80,0,0,0,8,9,3,62,63,64, + 65,80,67,12,69,70,0,1,2,3, + 4,5,6,7,8,9,81,0,108,109, + 110,111,112,113,114,115,116,117,118,119, + 95,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,81,0,0,0,1,2,47,5, + 6,7,0,8,9,54,0,5,6,7, + 0,99,0,62,63,64,65,105,67,0, + 69,70,28,29,30,31,32,33,34,35, + 36,37,38,39,40,0,1,2,3,4, + 5,6,7,8,9,0,95,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,78,0, + 0,98,3,0,47,5,6,7,5,6, + 7,54,0,1,2,0,4,0,98,62, + 63,64,65,0,67,0,69,70,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,0,1,2,0,4,5,6,7,5, + 6,7,95,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,71,54,0,80,0,0, + 47,5,6,7,5,6,7,54,83,84, + 66,0,1,2,0,62,63,64,65,0, + 67,0,69,70,28,29,30,31,32,33, + 34,35,36,37,38,39,40,0,1,2, + 0,4,5,6,7,0,1,2,95,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,54,0,3,80,0,47,5,6,7, + 5,6,7,54,83,84,66,0,0,1, + 2,62,63,64,65,0,67,77,69,70, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,0,1,2,96,97,5,6, + 7,122,0,10,95,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,54,0,3, + 83,84,47,5,6,7,54,0,0,54, + 0,0,0,0,1,2,0,62,63,64, + 65,0,67,98,69,70,28,29,30,31, 32,33,34,35,36,37,38,39,40,0, - 0,0,44,0,0,0,0,0,0,0, + 1,2,3,4,28,29,30,8,9,0, + 95,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,0,47,78, + 8,9,0,0,12,54,99,0,100,101, + 71,99,105,62,63,64,65,105,67,0, + 69,70,0,1,2,3,4,5,6,7, + 8,9,10,11,0,1,2,3,4,47, + 0,0,8,9,10,11,95,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,1,2,3,4,5,6,7, + 8,9,10,11,0,41,42,43,44,45, + 46,78,48,49,50,51,52,53,0,55, + 56,57,58,59,60,61,0,1,2,0, + 78,0,68,69,0,108,109,3,74,75, + 0,1,2,3,4,0,12,77,8,9, + 10,11,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,1, + 78,42,43,42,43,0,0,73,10,4, + 54,41,42,43,44,45,46,11,48,49, + 50,51,52,53,0,55,56,57,58,59, + 60,61,0,1,2,71,31,73,68,0, + 76,77,3,0,74,75,3,77,0,1, + 2,3,4,0,0,12,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,0,1,2,3, + 4,5,6,7,8,9,10,11,0,41, + 42,43,44,45,46,0,48,49,50,51, + 52,53,78,55,56,57,58,59,60,61, + 0,1,2,0,71,0,1,2,8,76, + 72,0,74,75,0,1,2,3,4,41, + 77,77,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,1,2,0,4,5,6,7, + 0,0,10,11,54,41,42,43,44,45, + 46,10,48,49,50,51,52,53,0,55, + 56,57,58,59,60,61,73,66,0,74, + 75,0,68,0,0,0,72,3,0,1, + 2,3,4,12,11,81,8,9,10,11, + 0,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,0,1,2,3, + 4,5,6,7,0,80,10,11,47,41, + 42,43,44,45,46,0,48,49,50,51, + 52,53,0,55,56,57,58,59,60,61, + 100,101,0,1,2,13,68,0,1,2, + 3,4,74,75,12,8,9,10,11,0, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,0,62,71,0,54, + 0,0,0,3,3,3,54,12,41,42, + 43,44,45,46,62,48,49,50,51,52, + 53,0,55,56,57,58,59,60,61,0, + 0,0,1,3,72,68,0,1,2,3, + 4,74,75,12,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,0,1,2,72,4,5, + 6,7,41,71,10,11,78,41,42,43, + 44,45,46,0,48,49,50,51,52,53, + 0,55,56,57,58,59,60,61,0,0, + 71,3,12,0,68,0,0,76,72,0, + 1,2,3,4,0,12,0,8,9,10, + 11,0,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,0,1,2, + 3,4,0,29,0,8,9,0,0,12, + 41,42,43,44,45,46,73,48,49,50, + 51,52,53,73,55,56,57,58,59,60, + 61,81,73,0,0,72,77,68,0,1, + 2,3,4,74,75,12,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,0,0,71,3, + 66,4,0,76,66,3,0,0,12,41, + 42,43,44,45,46,78,48,49,50,51, + 52,53,0,55,56,57,58,59,60,61, + 96,97,0,0,96,97,68,73,0,76, + 72,0,1,2,3,4,83,84,41,8, + 9,10,11,0,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,0, + 1,2,76,4,5,6,7,71,0,10, + 11,3,41,42,43,44,45,46,66,48, + 49,50,51,52,53,0,55,56,57,58, + 59,60,61,0,71,0,1,0,0,68, + 0,1,2,3,4,74,75,12,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,1, + 2,0,4,5,6,7,0,0,10,11, + 4,41,42,43,44,45,46,54,48,49, + 50,51,52,53,0,55,56,57,58,59, + 60,61,77,66,66,0,1,2,3,4, + 0,76,72,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,96,97,0,0,0,3,0, + 3,0,66,4,73,4,41,42,43,44, + 45,46,0,48,49,50,51,52,53,0, + 55,56,57,58,59,60,61,0,1,2, + 3,4,31,0,80,8,9,10,11,0, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,0,1,2,3,4, + 5,6,7,8,9,0,54,12,41,42, + 43,44,45,46,78,48,49,50,51,52, + 53,0,55,56,57,58,59,60,61,0, + 1,2,127,12,0,68,0,1,2,3, + 4,68,47,0,8,9,10,11,0,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,123,124,125,0,47,0, + 3,0,0,0,0,1,2,41,42,43, + 44,45,46,54,48,49,50,51,52,53, + 0,55,56,57,58,59,60,61,0,0, + 0,1,2,3,4,71,0,71,8,9, + 10,11,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,54,0, + 0,83,84,3,0,0,0,1,2,66, + 0,41,42,43,44,45,46,78,48,49, + 50,51,52,53,0,55,56,57,58,59, + 60,61,0,1,2,3,4,0,68,0, + 8,9,10,11,0,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 54,0,0,122,3,83,84,0,0,1, + 2,66,73,41,42,43,44,45,46,0, + 48,49,50,51,52,53,0,55,56,57, + 58,59,60,61,0,1,2,3,4,0, + 68,0,8,9,10,11,0,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,54,0,0,0,3,83,84,0, + 0,1,2,0,0,41,42,43,44,45, + 46,0,48,49,50,51,52,53,0,55, + 56,57,58,59,60,61,0,1,2,3, + 4,122,83,84,8,9,10,11,0,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,54,0,0,0,3,83, + 84,0,0,1,2,0,0,41,42,43, + 44,45,46,78,48,49,50,51,52,53, + 0,55,56,57,58,59,60,61,0,1, + 2,3,4,0,83,84,8,9,10,11, + 0,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,54,0,0,0, + 3,83,84,0,0,0,3,3,0,41, + 42,43,44,45,46,78,48,49,50,51, + 52,53,0,55,56,57,58,59,60,61, + 0,1,2,3,4,0,0,0,8,9, + 10,11,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,54, + 80,0,54,0,0,0,0,0,0,0, + 12,41,42,43,44,45,46,78,48,49, + 50,51,52,53,0,55,56,57,58,59, + 60,61,0,1,2,3,4,0,0,0, + 8,9,10,11,0,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 0,54,80,0,0,0,0,0,0,0, + 72,0,12,41,42,43,44,45,46,73, + 48,49,50,51,52,53,0,55,56,57, + 58,59,60,61,0,1,2,3,4,0, + 0,0,8,9,10,11,0,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,0,80,0,0,0,0,0, + 0,0,72,0,12,41,42,43,44,45, + 46,0,48,49,50,51,52,53,0,55, + 56,57,58,59,60,61,0,1,2,3, + 4,0,0,0,8,9,10,11,0,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,0,0,0,0,0,0, + 0,0,0,0,72,0,0,41,42,43, + 44,45,46,0,48,49,50,51,52,53, + 0,55,56,57,58,59,60,61,0,1, + 2,3,4,0,0,0,8,9,10,11, + 0,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,0,0,0,3, + 0,0,0,0,8,0,10,11,0,41, + 42,43,44,45,46,0,48,49,50,51, + 52,53,0,55,56,57,58,59,60,61, + 0,0,0,73,0,0,0,77,42,43, + 44,45,46,0,0,13,12,12,5,6, + 7,0,0,0,0,12,12,0,0,0, + 0,0,66,0,12,12,12,71,0,73, + 74,75,41,77,0,0,80,0,0,83, + 84,47,47,0,0,54,54,0,0,0, + 47,47,96,97,62,99,100,101,102,103, + 104,12,106,107,108,0,110,111,112,113, + 114,115,116,117,118,119,73,73,0,0, + 1,2,126,4,5,6,7,73,76,76, + 76,78,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,73,0,0,76,0,0,0,0, + 0,0,0,1,2,0,4,5,6,7, + 0,62,63,64,65,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,0,0,0,0, + 0,0,0,0,0,0,1,2,0,0, + 5,6,7,0,62,63,64,65,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,0,28,29,30,31,32,33,34, + 35,36,37,38,39,40,0,0,0,0, + 0,0,0,0,0,0,0,0,0,1, + 2,12,12,5,6,7,0,62,63,64, + 65,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,0,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,12,0,66,0,0,0,0,0,0, + 62,63,64,65,77,76,76,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 0,0,0,96,97,0,47,98,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,0,0,0,0,66,0,120,121,0, + 71,0,0,0,12,76,28,29,30,31, + 32,33,34,35,36,37,38,39,40,0, + 0,0,0,0,0,47,0,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 0,0,0,0,0,0,0,0,0,71, + 0,0,0,0,76,28,29,30,31,32, + 33,34,35,36,37,38,39,40,76,0, + 0,0,0,0,47,0,0,1,2,3, + 4,5,6,7,0,0,10,11,0,0, + 1,2,3,4,5,6,7,0,71,10, + 11,0,0,76,28,29,30,31,32,33, + 34,35,36,37,38,39,40,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 0,1,2,0,4,5,6,7,0,0, + 10,11,12,0,5,6,7,71,0,73, + 66,3,0,77,66,0,0,0,0,0, + 71,77,73,0,0,77,77,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 96,97,0,0,96,97,0,0,0,0, + 0,0,44,45,12,12,0,0,12,0, + 0,0,0,0,120,121,76,0,120,121, + 0,0,0,0,0,0,0,0,0,71, + 0,0,0,0,0,0,0,0,98,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 72,0,0,75,0,0,0,0,0,0, + 0,0,0,0,0,73,0,0,76,76, + 0,0,76,0,0,0,0,0,0,0, + 0,0,0,0,126,0,128,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,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 char termCheck[] = TermCheck.termCheck; @@ -1898,465 +2234,526 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 7280,6983,6997,6997,6997,6993,6997,6997,6997,6997, - 7075,6997,6997,1,1,1,1,1,1,1, + 8653,8230,8244,8244,8244,8240,8244,8244,8244,8244, + 8244,8244,8400,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,6987,1,1,1,1,1, + 1,1,1,1,1,1,1,8234,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,2113,7453,2115,113, - 1,7291,7280,1,1,1693,119,358,385,1537, - 5088,7287,3327,1271,2280,1114,3260,4056,3320,2064, - 3319,2766,3317,10,7078,7078,7078,7078,7078,7078, - 7078,7078,7078,7078,7078,7078,7078,7078,7078,7078, - 7078,7078,7078,7078,7078,7078,7078,7078,7078,7078, - 7078,7078,7078,7078,7078,7078,7078,7078,7078,7078, - 7078,7078,7078,7078,7078,7078,7078,7078,7280,7078, - 7078,7078,7078,7078,7078,7078,7078,7078,7078,7078, - 7078,7078,7078,7078,7078,7078,7078,7078,7078,7078, - 7078,7078,7280,7078,7078,653,7078,7078,5065,5042, - 3920,3996,7078,7637,7078,7078,7078,7078,7078,7078, - 7078,7078,7078,7078,7078,7078,8,7136,7136,7136, - 7136,7136,7136,7136,7136,7136,7136,7136,7136,7136, - 7136,7136,7136,7136,7136,7136,7136,7136,7136,7136, - 7136,7136,7136,7136,7136,7136,7136,7136,7136,7136, - 7136,7136,7136,7136,7136,7136,7136,7136,7136,7136, - 7136,7280,7136,7136,7136,7136,7136,7136,7136,7136, - 7136,7136,7136,7136,7136,7136,7136,7136,7136,7136, - 7136,7136,7136,7136,7136,7280,7136,7136,109,7136, - 7136,1,7280,6430,6427,7136,7318,7136,7136,7136, - 7136,7136,7136,7136,7136,7136,7136,7136,7136,7280, - 6983,6997,6997,6997,6993,6997,6997,6997,6997,6990, - 6997,6997,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,6987,1040,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2113,7453,2115,115,1, - 7291,89,1,1,6484,5395,5418,7639,1537,5088, - 6426,3327,1271,2280,1114,3260,4056,3320,2064,3319, - 2766,3317,7280,6983,6997,6997,6997,6993,6997,6997, - 6997,6997,6990,6997,6997,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,6987,7280,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2113,7453, - 2115,114,1,7291,7280,1,1,5065,5042,39, - 7280,1537,5088,7318,3327,1271,2280,1114,3260,4056, - 3320,2064,3319,2766,3317,7280,6983,6997,6997,6997, - 6993,6997,6997,6997,6997,6990,6997,6997,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,6987, - 7280,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,2113,7453,2115,7280,1,7291,7280,1,1, - 5065,5042,7280,1,1537,4862,4621,3327,1271,2280, - 1114,3260,4056,3320,2064,3319,2766,3317,7280,6983, - 6997,6997,6997,6993,6997,6997,6997,6997,6990,6997, - 6997,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,6987,7280,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2113,7453,2115,7280,1,7291, - 7280,1,1,2084,7280,6430,6427,1537,7318,3740, - 3327,1271,2280,1114,3260,4056,3320,2064,3319,2766, - 3317,7280,6983,6997,6997,6997,6993,6997,6997,6997, - 6997,6990,6997,6997,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,6987,4228,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,2113,7453,2115, - 7280,1,7291,7280,1,1,7280,7294,7295,7280, - 1537,1622,704,3327,1271,2280,1114,3260,4056,3320, - 2064,3319,2766,3317,7280,6983,6997,6997,6997,6993, - 6997,6997,6997,6997,6990,6997,6997,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,6987,4290, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 2113,7453,2115,7280,1,7291,7280,1,1,7280, - 6813,6810,7280,1537,7280,3125,3327,1271,2280,1114, - 3260,4056,3320,2064,3319,2766,3317,7280,6983,6997, - 6997,6997,6993,6997,6997,6997,6997,6990,6997,6997, + 1,1,1,1,1,1,113,1548,1,8859, + 1835,135,8664,8653,1,1,2719,8653,127,1451, + 715,8660,3293,6945,6873,1920,2375,1450,3221,5726, + 3292,1287,3291,724,3289,10,8403,8403,8403,8403, + 8403,8403,8403,8403,8403,8403,8403,8403,8403,8403, + 8403,8403,8403,8403,8403,8403,8403,8403,8403,8403, + 8403,8403,8403,8403,8403,8403,8403,8403,8403,8403, + 8403,8403,8403,8403,8403,8403,8403,8403,8403,8403, + 8403,8403,8403,8403,8403,8403,8403,8403,8403,418, + 8403,8403,8403,8403,8403,8403,8403,8403,8403,8403, + 8403,8653,8403,8403,8403,8403,8653,8403,8653,8403, + 8403,188,2641,2562,8403,4190,8403,8403,4751,4721, + 8403,8403,8403,8403,8403,8403,8403,8403,8403,8403, + 8,8509,8509,8509,8509,8509,8509,8509,8509,8509, + 8509,8509,8509,8509,8509,8509,8509,8509,8509,8509, + 8509,8509,8509,8509,8509,8509,8509,8509,8509,8509, + 8509,8509,8509,8509,8509,8509,8509,8509,8509,8509, + 8509,8509,8509,8509,8509,8509,8509,8509,8509,8509, + 8509,8509,8509,8509,1739,8509,8509,8509,8509,8509, + 8509,8509,8509,8509,8509,8509,131,8509,8509,8509, + 8509,335,8509,109,8509,8509,8653,7683,7680,8509, + 8691,8509,8509,8653,8987,8509,8509,8509,8509,8509, + 8509,8509,8509,8509,8509,8653,8230,8244,8244,8244, + 8240,8244,8244,8244,8244,8244,8244,8237,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,6987,4352,1,1,1,1,1,1,1, + 1,1,8234,1,1,1,1,1,1,7312, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,2113,7453,2115,29,1,7291,112, - 1,1,48,6813,6810,236,1537,7280,6974,3327, - 1271,2280,1114,3260,4056,3320,2064,3319,2766,3317, - 7280,6983,6997,6997,6997,6993,6997,6997,6997,6997, - 6990,6997,6997,1,1,1,1,1,1,1, + 1,115,1548,1,8859,1835,136,8664,4476,1, + 1,2719,4304,380,1451,39,2258,3293,6515,8691, + 1920,2375,1450,3221,5726,3292,1287,3291,724,3289, + 8653,8230,8244,8244,8244,8240,8244,8244,8244,8244, + 8244,8244,8237,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,6987,6433,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,2113,7453,2115,441, - 1,7291,111,1,1,1,5395,5418,5978,1537, - 7280,3774,3327,1271,2280,1114,3260,4056,3320,2064, - 3319,2766,3317,7280,6983,6997,6997,6997,6993,6997, - 6997,6997,6997,6990,6997,6997,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,6987,6436,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,2113, - 7453,2115,455,1,7291,110,1,1,7280,5395, - 5418,3041,1537,7280,7280,3327,1271,2280,1114,3260, - 4056,3320,2064,3319,2766,3317,7280,6983,6997,6997, - 6997,6993,6997,6997,6997,6997,6990,6997,6997,1, + 1,1,1,1,1,1,1,8234,1,1, + 1,1,1,1,2328,1,1,1,1,1, + 1,1,1,1,1,1,114,1548,1,8859, + 1835,8653,8664,133,1,1,2719,2641,2562,1451, + 4190,344,3293,8653,4355,1920,2375,1450,3221,5726, + 3292,1287,3291,724,3289,8653,8230,8244,8244,8244, + 8240,8244,8244,8244,8244,8244,8244,8237,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 6987,6439,1,1,1,1,1,1,1,1, + 1,1,8234,1,1,1,1,1,1,7553, 1,1,1,1,1,1,1,1,1,1, - 1,1,2113,7453,2115,129,1,7291,7280,1, - 1,578,5395,5418,7280,1537,7280,3234,3327,1271, - 2280,1114,3260,4056,3320,2064,3319,2766,3317,7280, - 6983,6997,6997,6997,6993,6997,6997,6997,6997,6990, - 6997,6997,1,1,1,1,1,1,1,1, + 1,1300,1548,1,8859,1835,155,8664,8653,1, + 1,4913,2641,2562,1451,8653,4361,3293,29,995, + 1920,2375,1450,3221,5726,3292,1287,3291,724,3289, + 8653,8230,8244,8244,8244,8240,8244,8244,8244,8244, + 8244,8244,8237,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,6987,459,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2113,7453,2115,116,1, - 7291,7280,1,1,131,3920,3996,135,1537,133, - 7280,3327,1271,2280,1114,3260,4056,3320,2064,3319, - 2766,3317,7280,6490,6490,6490,6490,6490,6490,6490, - 6490,6490,6490,6490,6490,1,6545,6541,3892,6549, - 4804,4713,223,699,4095,6968,6475,6615,6609,6612, - 6490,6490,6490,6490,6490,6490,6490,6490,6490,6490, - 6490,6490,6490,127,6490,6490,6490,388,6490,6490, - 6624,6621,6618,6630,6648,6627,6639,6606,6633,6636, - 6645,6642,6603,288,6759,6759,7280,283,2409,2388, - 2408,6490,118,6490,6490,7280,7284,6490,6490,6490, - 6490,6490,6490,6490,7280,6430,6427,2237,821,3130, - 6971,132,699,4095,2970,3082,6490,6490,6490,6490, - 6490,6490,6490,6490,6490,6490,6490,6490,6490,6490, - 6490,6490,6490,7280,4804,4713,6487,6490,6490,6490, - 6490,6490,6490,6490,6490,6490,6490,6490,6490,6490, - 6490,6490,7280,6493,6493,6493,6493,6493,6493,6493, - 6493,6493,6493,6493,6493,311,3332,3277,2424,395, - 6708,6708,224,283,6699,6705,6702,6663,6657,6660, - 6493,6493,6493,6493,6493,6493,6493,6493,6493,6493, - 6493,6493,6493,7280,6493,6493,6493,1103,6493,6493, - 6672,6669,6666,6678,6696,6675,6687,6654,6681,6684, - 6693,6690,6651,7283,283,566,3130,38,6448,6445, - 134,6493,117,6493,6493,6442,4095,6493,6493,6493, - 6493,6493,6493,6493,331,6430,6427,3577,821,2409, - 2388,2408,699,4095,7845,1228,6493,6493,6493,6493, - 6493,6493,6493,6493,6493,6493,6493,6493,6493,6493, - 6493,6493,6493,7280,4804,4713,3221,6493,6493,6493, - 6493,6493,6493,6493,6493,6493,6493,6493,6493,6493, - 6493,6493,39,6430,6427,3158,821,2409,2388,2408, - 5211,4095,128,5280,5303,1143,7884,7885,7544,7542, - 7551,7550,7546,7547,7545,7548,7549,7552,7543,5508, - 7617,7618,7886,7539,7533,7540,7536,7512,7538,7537, - 7534,7535,7513,7299,5257,5234,3082,192,5349,5326, - 5007,804,884,7301,810,5464,837,7302,7300,753, - 7296,7297,7298,4768,7679,725,7680,7681,155,7280, - 7294,7295,1599,7280,7109,7109,228,7105,6997,6997, - 6997,228,228,7113,228,228,1,1,1,1, + 1,1,1,1,1,1,1,8234,1,1, + 1,1,1,1,1870,1,1,1,1,1, + 1,1,1,1,1,1,458,1548,1,8859, + 1835,658,8664,129,1,1,8358,8364,8361,1451, + 4232,8653,3293,8653,4583,1920,2375,1450,3221,5726, + 3292,1287,3291,724,3289,8653,8230,8244,8244,8244, + 8240,8244,8244,8244,8244,8244,8244,8237,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,7280,3332,3277,228,7102,309, - 6545,6541,3577,6549,7054,7060,7057,699,4095,7140, - 7143,7143,398,7294,7295,1,1,1,1,4542, - 7693,2143,5372,1018,183,1648,597,7051,7051,228, - 602,2409,2388,2408,417,1,6545,6541,3577,6549, - 7054,7060,7057,699,4095,7280,7781,137,7280,6545, - 6541,3577,6549,7054,7060,7057,699,4095,7280,7143, - 7143,4020,440,752,7280,7716,7717,7718,7280,7109, - 7109,228,7105,6997,6997,6997,228,228,7161,228, - 228,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,336, - 7280,2587,228,7102,7280,6545,6541,3577,6549,7054, - 7060,7057,699,4095,2587,7175,7175,2188,7280,7280, - 1,1,1,1,4542,7693,2143,7211,7208,7205, - 4304,445,6472,6472,228,6472,6472,6472,6472,416, - 130,600,6472,6472,7223,1183,7030,7036,7033,137, - 2496,7781,3234,2582,2139,2090,2041,1992,1943,1894, - 1845,1796,1747,1698,7716,7717,7718,36,7133,7130, - 7716,7717,7718,7280,6997,6997,228,6997,6993,6997, - 6997,228,228,7226,228,228,1,1,1,1, + 1,1,8234,1,1,1,1,1,1,7578, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,11359,1,12042, - 1,1,12072,1,7280,11909,11909,228,7217,1, - 6545,6541,3577,6549,7054,7060,7057,699,4095,309, - 548,7829,336,7280,3388,1,1,1,1,5715, - 7490,2115,7280,7286,7280,6545,6541,3577,6549,7054, - 7060,7057,699,4095,219,7175,7175,1183,7830,7316, - 7617,7618,7886,309,7280,2582,7781,7280,6997,6997, - 228,6997,6993,6997,6997,228,228,228,228,228, + 1,132,1548,1,8859,1835,8653,8664,151,1, + 1,8653,8667,8668,1451,8653,8653,3293,8653,1445, + 1920,2375,1450,3221,5726,3292,1287,3291,724,3289, + 8653,8230,8244,8244,8244,8240,8244,8244,8244,8244, + 8244,8244,8237,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,11359,1,12042,1,1,12072,1,7285,225, - 7280,228,7217,4554,6723,6717,6720,298,7294,7295, - 2587,396,2409,2388,2408,389,2409,2388,2408,1, - 1,1,1,5715,7490,2115,3827,6732,6729,6726, - 6738,6756,6735,6747,6714,6741,6744,6753,6750,6711, - 1,6545,6541,3577,6549,7054,7060,7057,699,4095, - 7781,7280,6997,6997,228,6997,6993,6997,6997,228, - 228,7259,228,228,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,11359,1,12042,1,1, - 12072,1,292,7294,7295,228,7217,600,6430,6427, - 3577,821,2409,2388,2408,699,4095,7280,11594,11289, - 7280,11594,11289,1,1,1,1,5715,7490,2115, - 1,6545,6541,3892,6549,291,746,746,699,4095, - 367,7280,218,1,6545,6541,3577,6549,7054,7060, - 7057,699,4095,7280,7781,7280,6997,6997,228,6997, - 6993,6997,6997,228,228,7226,228,228,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,11359, - 1,12042,1,1,12072,1,37,7069,7069,228, - 7217,7280,2237,136,7069,367,331,367,367,331, - 1389,2409,2388,2408,7093,7099,7096,1,1,1, - 1,5715,7490,2115,7280,3711,367,345,39,39, - 4058,7318,2409,2388,2408,3948,219,396,331,331, - 7280,1671,2409,2388,2408,7280,6813,6810,7781,7280, - 6997,6997,228,6997,6993,6997,6997,228,228,7226, - 228,228,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,11359,1,12042,1,1,12072,1, - 43,7003,7003,228,7217,7280,446,7027,7027,2237, - 7021,7012,7018,7015,577,7280,752,7024,7024,123, - 2970,1,1,1,1,5715,7490,2115,5372,1018, - 345,6430,6427,3892,821,2409,2388,2408,699,4095, - 219,331,331,396,7280,7000,122,5634,2409,2388, - 2408,37,7781,7280,6997,6997,228,6997,6993,6997, - 6997,228,228,228,228,228,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,11359,1,12042, - 1,1,12072,1,226,121,7316,228,7217,6774, - 6768,6771,2237,1,6545,6541,7081,6549,3920,3996, - 7280,7087,7084,3920,3996,1,1,1,1,5715, - 7490,2115,6783,6780,6777,6789,6807,6786,6798,6765, - 6792,6795,6804,6801,6762,1,6545,6541,3577,6549, - 3920,3996,7280,699,4095,6192,7781,7280,6997,6997, - 228,6997,6993,6997,6997,228,228,228,228,228, + 1,1,1,1,1,1,1,8234,1,1, + 1,1,1,1,7582,1,1,1,1,1, + 1,1,1,1,1,1,2418,1548,1,8859, + 1835,364,8664,4476,1,1,2025,1968,1990,1451, + 4515,89,3293,29,7737,1920,2375,1450,3221,5726, + 3292,1287,3291,724,3289,8653,8230,8244,8244,8244, + 8240,8244,8244,8244,8244,8244,8244,8237,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,11359,1,12042,1,1,12072,1,588,3920, - 3996,228,7217,6828,6822,6825,90,7090,7090,599, - 7090,7090,7090,7090,2409,2388,2408,7090,7090,1, - 1,1,1,5715,7490,2115,6837,6834,6831,6843, - 6861,6840,6852,6819,6846,6849,6858,6855,6816,1, - 6545,6541,3892,6549,7280,7280,7280,699,4095,47, - 7781,7280,6997,6997,228,6997,6993,6997,6997,228, - 228,228,228,228,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,11359,1,12042,1,1, - 12072,1,7280,7280,1523,228,7217,1,6545,6541, - 7081,6549,7280,7294,7295,7087,7084,7290,120,7280, - 1622,2237,4430,1,1,1,1,5715,7490,2115, - 7280,7253,7253,7253,7253,7253,7253,7253,7253,7253, - 1,7253,7253,2583,1,6545,6541,3577,6549,7280, - 7292,7289,699,4095,7781,7280,6997,6997,228,6997, - 6993,6997,6997,228,228,228,228,228,1,1, + 1,1,8234,1,1,1,1,1,1,7686, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,11359, - 1,12042,1,1,12072,1,37,7069,7069,228, - 7217,7280,7280,93,7199,7199,7253,7193,7184,7190, - 7187,7291,3920,3996,7196,7196,1,1,1,1, - 1,5715,7490,2115,1,7066,7066,7280,7063,7054, - 7060,7057,7280,39,363,331,331,7318,2409,2388, - 2408,1572,7286,2118,331,331,458,5863,7781,7280, - 6997,6997,228,6997,6993,6997,6997,228,228,228, - 228,228,1,1,1,1,1,1,1,1, + 1,8653,1548,1,8859,1835,364,8664,134,1, + 1,8466,8472,8469,1451,8653,3796,3293,474,8653, + 1920,2375,1450,3221,5726,3292,1287,3291,724,3289, + 8653,8230,8244,8244,8244,8240,8244,8244,8244,8244, + 8244,8244,8237,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,11359,1,12042,1,1,12072,1, - 7280,7280,2,228,7217,1692,598,7048,7048,363, - 602,7039,7045,7042,6280,5941,39,7285,7280,2029, - 7318,1,1,1,1,5715,7490,2115,6478,1, - 363,1,6545,6541,3577,6549,7054,7060,7057,699, - 4095,7280,7294,7295,397,821,7280,3485,388,699, - 4095,602,7781,7280,6997,6997,228,6997,6993,6997, - 6997,228,228,228,228,228,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,11359,1,12042, - 1,1,12072,1,7280,7280,1,228,7217,4058, - 1,7280,3565,4058,7292,6962,341,2587,3060,347, - 6968,7286,2163,752,7280,1,1,1,1,5715, - 7490,2115,37,7069,7069,7280,7280,2409,2388,2408, - 7265,7273,7269,331,7280,7277,7280,1,1,1, - 1,7280,3495,7280,1,1,7781,1,1,1, + 1,1,1,1,1,1,1,8234,1,1, + 1,1,1,1,7689,1,1,1,1,1, + 1,1,1,1,1,1,2906,1548,1,8859, + 1835,429,8664,153,1,1,2025,1968,1990,1451, + 8653,4361,3293,488,8653,1920,2375,1450,3221,5726, + 3292,1287,3291,724,3289,8653,8230,8244,8244,8244, + 8240,8244,8244,8244,8244,8244,8244,8237,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,7280,7291,6965,7316,2237,7277, - 7280,341,2237,341,341,6971,7285,1,1,1, - 7288,2237,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,571,7280, - 7294,7295,7277,7892,3052,348,1,699,4095,1, - 1,1,6545,6541,3158,6549,7280,2335,7280,5211, - 4095,3059,5280,5303,6499,6538,6535,6526,6532,6505, - 6508,6520,6517,6523,6514,6511,6502,6529,6552,3852, - 2384,7280,6430,6427,7280,821,7280,1120,7280,6496, - 4095,7287,7299,5257,5234,7280,7280,5349,5326,5007, - 804,884,7301,810,5464,837,7302,7300,753,7296, - 7297,7298,4768,7280,7280,7119,7116,2237,1,7280, - 74,1599,7280,6463,39,39,1049,523,363,517, - 39,6430,6427,3158,821,6280,3987,7280,5211,4095, - 7220,5280,5303,645,7884,7885,7544,7542,7551,7550, - 7546,7547,7545,7548,7549,7552,7543,3960,7280,7316, - 318,2939,3065,7172,3066,1,6454,6451,7286,7280, - 7280,7299,5257,5234,7793,159,5349,5326,5007,804, - 884,7301,810,5464,837,7302,7300,753,7296,7297, - 7298,4768,6466,363,7280,6430,6427,7722,821,587, - 1599,6965,6496,4095,139,6430,6427,3158,821,7164, - 7280,7287,5211,4095,363,5280,5303,645,7884,7885, - 7544,7542,7551,7550,7546,7547,7545,7548,7549,7552, - 7543,3960,2237,7285,7280,6457,98,313,1,2482, - 159,124,2409,2388,2408,7299,5257,5234,6460,2571, - 5349,5326,5007,804,884,7301,810,5464,837,7302, - 7300,753,7296,7297,7298,4768,7280,7126,7122,320, - 7168,45,7152,7152,1599,7280,7280,39,39,1, - 6545,6541,3158,6549,516,7280,4118,5211,4095,1043, - 5280,5303,6499,6538,6535,6526,6532,6505,6508,6520, - 6517,6523,6514,6511,6502,6529,6552,7280,7146,7280, - 3781,7316,7736,7280,7294,7295,7149,7286,7280,6469, - 7299,5257,5234,7292,7280,5349,5326,5007,804,884, - 7301,810,5464,837,7302,7300,753,7296,7297,7298, - 4768,2237,3717,3685,7280,7119,7116,29,7280,1599, - 3653,3600,39,39,39,6430,6427,3158,821,5137, - 7280,994,5211,4095,6962,5280,5303,645,7884,7885, - 7544,7542,7551,7550,7546,7547,7545,7548,7549,7552, - 7543,3960,7285,1274,7291,4180,39,298,7280,7316, - 7318,7280,2409,2388,2408,7299,5257,5234,7286,7280, - 5349,5326,5007,804,884,7301,810,5464,837,7302, - 7300,753,7296,7297,7298,4768,752,1828,554,6430, - 6427,3158,821,425,1599,6965,5211,4095,7280,5280, - 5303,645,7884,7885,7544,7542,7551,7550,7546,7547, - 7545,7548,7549,7552,7543,3960,603,7280,1,592, - 370,2409,2388,2408,2409,2388,2408,7286,6481,7299, - 5257,5234,7280,7285,5349,5326,5007,804,884,7301, - 810,5464,837,7302,7300,753,7296,7297,7298,4768, - 37,7069,7069,7280,7280,362,48,6244,1599,7280, - 7295,39,39,39,6430,6427,3158,821,7716,7717, - 7718,5211,4095,6962,5280,5303,645,7884,7885,7544, - 7542,7551,7550,7546,7547,7545,7548,7549,7552,7543, - 3960,591,7285,7280,1549,7316,2409,2388,2408,7287, - 1438,7280,7280,7290,7299,5257,5234,7280,4242,5349, - 5326,5007,804,884,7301,810,5464,837,7302,7300, - 753,7296,7297,7298,4768,7295,1,554,6430,6427, - 3158,821,2864,1599,6965,5211,4095,7289,5280,5303, - 645,7884,7885,7544,7542,7551,7550,7546,7547,7545, - 7548,7549,7552,7543,3960,7280,418,7280,7280,302, - 1836,2409,2388,2408,7280,7290,368,3918,7299,5257, - 5234,3918,7581,5349,5326,5007,804,884,7301,810, - 5464,837,7302,7300,753,7296,7297,7298,4768,593, - 7280,293,7280,1983,2409,2388,2408,1599,1,7289, - 39,39,39,6430,6427,3158,821,7280,7290,3828, - 5211,4095,6962,5280,5303,645,7884,7885,7544,7542, - 7551,7550,7546,7547,7545,7548,7549,7552,7543,3960, - 595,1,3456,594,7682,7235,7241,7238,7244,7250, - 7247,161,7289,7299,5257,5234,1500,7280,5349,5326, - 5007,804,884,7301,810,5464,837,7302,7300,753, - 7296,7297,7298,4768,7280,72,39,6430,6427,3158, - 821,2630,7280,6965,5211,4095,7284,5280,5303,645, - 7884,7885,7544,7542,7551,7550,7546,7547,7545,7548, - 7549,7552,7543,3960,419,126,7280,302,522,2409, - 2388,2408,559,3871,7280,3181,161,7299,5257,5234, - 7581,7280,5349,5326,5007,804,884,7301,810,5464, - 837,7302,7300,753,7296,7297,7298,4768,39,6430, - 6427,3158,821,3827,7202,7280,5211,4095,3122,5280, - 5303,645,7884,7885,7544,7542,7551,7550,7546,7547, - 7545,7548,7549,7552,7543,3960,7280,7280,8,449, - 7280,48,406,2325,3781,7294,7286,7288,7256,7299, - 5257,5234,7155,7006,5349,5326,5007,804,884,7301, - 810,5464,837,7302,7300,753,7296,7297,7298,4768, - 308,7280,546,7283,3257,1277,3717,3685,1599,39, - 6430,6427,3158,821,3653,3600,7158,5211,4095,3871, - 5280,5303,645,7884,7885,7544,7542,7551,7550,7546, - 7547,7545,7548,7549,7552,7543,3960,1,97,7280, - 7294,7285,5821,6293,98,1412,7280,7262,7287,7256, - 7299,5257,5234,7280,7280,5349,5326,5007,804,884, - 7301,810,5464,837,7302,7300,753,7296,7297,7298, - 4768,39,6430,6427,6053,821,7280,3366,7280,5211, - 4095,1223,5280,5303,645,7884,7885,7544,7542,7551, - 7550,7546,7547,7545,7548,7549,7552,7543,3960,1, - 101,7280,429,7178,278,1045,7280,7214,7291,189, - 7181,7280,7299,5257,5234,3398,7146,5349,5326,5007, - 804,884,7301,810,5464,837,7302,7300,753,7296, - 7297,7298,4768,39,6430,6427,6053,821,2015,7280, - 7280,5211,4095,189,5280,5303,645,7884,7885,7544, - 7542,7551,7550,7546,7547,7545,7548,7549,7552,7543, - 3960,7280,572,285,7280,3914,7280,5810,101,2959, - 7280,7178,7280,4525,7299,5257,5234,375,3843,5349, - 5326,5007,804,884,7301,810,5464,837,7302,7300, - 753,7296,7297,7298,4768,39,6430,6427,3158,821, - 7280,7280,7280,5211,4095,7280,5280,5303,645,7884, - 7885,7544,7542,7551,7550,7546,7547,7545,7548,7549, - 7552,7543,3960,7280,291,569,534,7280,7280,7280, - 7280,7280,7280,7280,7280,7280,7299,5257,5234,5644, - 7564,5349,5326,5007,804,884,7301,810,5464,837, - 7302,7300,753,7296,7297,7298,4768,39,6430,6427, - 6085,821,7280,7280,3852,5211,4095,421,5280,5303, - 645,7884,7885,7544,7542,7551,7550,7546,7547,7545, - 7548,7549,7552,7543,3960,2433,2,7280,3871,7280, - 7280,7280,7280,7280,7280,7280,3983,3841,7299,5257, - 5234,10018,2192,5349,5326,5007,804,884,7301,810, - 5464,837,7302,7300,753,7296,7297,7298,4768,39, - 6430,6427,6085,821,7280,7280,7280,5211,4095,7280, - 5280,5303,645,7884,7885,7544,7542,7551,7550,7546, - 7547,7545,7548,7549,7552,7543,3960,2721,450,7280, - 7280,7280,7280,7280,7280,37,7280,7280,7280,7280, - 7299,5257,5234,2678,7280,5349,5326,5007,804,884, - 7301,810,5464,837,7302,7300,753,7296,7297,7298, - 4768,39,6430,6427,3158,821,427,35,509,5211, - 4095,125,5280,5303,645,7884,7885,7544,7542,7551, - 7550,7546,7547,7545,7548,7549,7552,7543,3960,1, - 7280,507,739,1,7280,511,7280,7750,7280,1, - 7744,7748,7299,5257,5234,3215,7229,5349,5326,5007, - 804,884,7301,810,5464,837,7302,7300,753,7296, - 7297,7298,4768,1,1,7280,7280,7280,7280,1, - 7280,7742,7743,530,7286,7773,7774,7751,3957,5785, - 3781,5820,7280,3910,3916,7280,7280,2571,6291,7009, - 7280,7280,7280,7280,7280,7232,7280,1,7753,7280, - 7280,801,1849,1885,7280,7280,7775,7754,7280,7752, - 7229,6292,3717,3685,3917,712,7280,7280,7280,7280, - 3653,3600,7280,7764,7763,7280,7776,7280,7745,7746, - 7769,7770,7767,7768,7747,7749,7771,7772,530,7285, - 7280,7280,3957,7280,7777,7280,7757,7758,7759,7755, - 7756,7765,7766,7761,7760,7762,7280,6430,6427,7232, - 7318,2409,2388,2408,7280,7280,7280,7280,7280,1064, - 7884,7885,7544,7542,7551,7550,7546,7547,7545,7548, - 7549,7552,7543,5486,7617,7618,7886,7539,7533,7540, - 7536,7512,7538,7537,7534,7535,7513,7280,7280,7280, - 7280,7280,7280,7280,7280,7280,7280,7280,7280,240, - 6955,6951,7280,6959,6876,6870,6873,7280,7679,725, - 7680,7681,1064,6948,6945,6936,6942,6915,6918,6930, - 6927,6933,6924,6921,6912,6939,5486,6885,6882,6879, - 6891,6909,6888,6900,6867,6894,6897,6906,6903,6864, - 7280,7280,7280,7280,7280,7280,7280,7280,7280,7280, - 7280,222,7280,7280,7280,7280,6567,6561,6564,7280, - 7280,7679,725,7680,7681,7884,7885,7544,7542,7551, - 7550,7546,7547,7545,7548,7549,7552,7543,7280,6576, - 6573,6570,6582,6600,6579,6591,6558,6585,6588,6597, - 6594,6555,29,388,388,6980,388,388,388,388, - 388,388,6980,6980,6980,7280,7280,7280,7280,7280, - 7280,7280,7280,7280,7280,7280,7280,7280,7280,7280, - 388,388,388,388,388,388,388,388,388,388, - 388,388,388,7280,7280,7280,6980,7280,7280,7280, - 32,389,389,6977,389,389,389,389,389,389, - 6977,6977,6977,7280,7280,7280,7280,7280,7280,7280, - 7280,6433,7280,7280,6980,7280,7280,6980,389,389, - 389,389,389,389,389,389,389,389,389,389, - 389,7280,7280,7280,6977,7280,7280,7280,576,586, - 586,586,586,586,586,586,586,586,7072,7072, - 7072,7280,7280,7280,7280,7280,7280,7280,7280,7280, - 7280,7280,6977,7280,7280,6977,586,586,586,586, - 586,586,586,586,586,586,586,586,586,7280, - 7280,7280,7072,7280,7280,7280,7280,7280,7280,7280, - 7280,7280,7280,7280,7280,7280,7280,7280,7280,7280, - 7280,7280,7280,7280,7280,7280,7280,7280,7280,7280, - 586,7280,7280,7072 + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,8234,1,1,1,1,1,1,7692, + 1,1,1,1,1,1,1,1,1,1, + 1,2915,1548,1,8859,1835,657,8664,8653,1, + 1,2025,1968,1990,1451,8653,4401,3293,421,8653, + 1920,2375,1450,3221,5726,3292,1287,3291,724,3289, + 8653,8230,8244,8244,8244,8240,8244,8244,8244,8244, + 8244,8244,8237,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,8234,1,1, + 1,1,1,1,7740,1,1,1,1,1, + 1,1,1,1,1,1,2977,1548,1,8859, + 1835,346,8664,152,1,1,2025,1968,1990,1451, + 8653,8653,3293,1,2225,1920,2375,1450,3221,5726, + 3292,1287,3291,724,3289,8653,8230,8244,8244,8244, + 8240,8244,8244,8244,8244,8244,8244,8237,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,8234,1,1,1,1,1,1,225, + 1,1,1,1,1,1,1,1,1,1, + 1,2,1548,1,8859,1835,331,8664,8653,1, + 1,2025,1968,1990,1451,4515,1445,3293,606,9260, + 1920,2375,1450,3221,5726,3292,1287,3291,724,3289, + 8653,7743,7743,7743,7743,7743,7743,7743,7743,7743, + 7743,7743,7743,8653,7683,7680,9261,1066,8653,7679, + 256,7749,4060,8653,216,7862,7856,7859,7743,7743, + 7743,7743,7743,7743,7743,7743,7743,7743,7743,7743, + 7743,8513,7743,7743,7743,7743,8653,7743,7871,7868, + 7865,7877,7895,7874,7886,7853,7880,7883,7892,7889, + 7850,1,7798,7794,8406,8289,7743,3568,403,8409, + 8292,7743,7743,7743,1,492,7743,7743,7743,7743, + 7743,7743,335,7743,7743,364,7683,7680,5742,1066, + 2025,1968,1990,914,4060,8987,7743,7743,7743,7743, + 7743,7743,7743,7743,7743,7743,7743,7743,7743,7743, + 7743,7743,7743,7743,7743,7743,7743,7743,7743,7743, + 7743,7743,8653,13299,13299,549,7743,7743,7743,7743, + 8653,7746,7746,7746,7746,7746,7746,7746,7746,7746, + 7746,7746,7746,8653,7683,7680,7728,1066,1516,2063, + 257,7749,4060,2751,8596,7910,7904,7907,7746,7746, + 7746,7746,7746,7746,7746,7746,7746,7746,7746,7746, + 7746,8653,7746,7746,7746,7746,8689,7746,7919,7916, + 7913,7925,7943,7922,7934,7901,7928,7931,7940,7937, + 7898,1,7798,7794,5742,8289,7746,3584,1094,914, + 4060,7746,7746,7746,8653,8653,7746,7746,7746,7746, + 7746,7746,3459,7746,7746,1,7798,7794,5742,8289, + 8382,8388,8385,914,4060,7093,7746,7746,7746,7746, + 7746,7746,7746,7746,7746,7746,7746,7746,7746,7746, + 7746,7746,7746,7746,7746,7746,7746,7746,7746,7746, + 7746,7746,8653,8667,8668,581,7746,7746,7746,7746, + 39,7683,7680,723,1066,2025,1968,1990,2875,4060, + 3109,3187,154,1004,9315,9316,8950,8948,8957,8956, + 8952,8953,8951,8954,8955,8958,8949,6703,9023,9024, + 9317,8945,8939,8946,8942,8918,8944,8943,8940,8941, + 8919,8672,3031,2953,3343,3265,2797,391,843,1009, + 8674,921,6659,992,8653,8675,8673,832,8669,8670, + 8671,6637,9085,5767,9086,9087,3421,784,1685,8653, + 8482,8482,261,8478,8244,8244,8244,261,261,261, + 261,8486,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 8653,8667,8668,473,39,4401,261,1,8691,2025, + 1968,1990,429,8475,364,364,422,2025,1968,1990, + 130,1,1,1,1,8653,4955,255,9099,2592, + 8653,4583,7814,7808,7811,9043,8653,261,116,1383, + 450,9315,9316,8950,8948,8957,8956,8952,8953,8951, + 8954,8955,8958,8949,9187,7823,7820,7817,7829,7847, + 7826,7838,7805,7832,7835,7844,7841,7802,8653,7798, + 7794,5742,8289,8382,8388,8385,914,4060,8516,8516, + 1123,955,9122,9123,9124,8653,8482,8482,261,8478, + 8244,8244,8244,261,261,261,261,8534,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,9122,9123,9124,321, + 8006,8006,261,316,2025,1968,1990,8653,661,8475, + 43,8250,8250,2025,1968,1990,3698,1,1,1, + 1,8653,4955,568,9099,2592,8653,8653,8421,8415, + 8418,8653,269,261,3152,8221,449,9315,9316,8950, + 8948,8957,8956,8952,8953,8951,8954,8955,8958,8949, + 9187,9023,9024,9317,8945,8939,8946,8942,8918,8944, + 8943,8940,8941,8919,8247,378,7683,7680,5564,1066, + 2025,1968,1990,914,4060,364,364,8653,9122,9123, + 9124,8653,8244,8244,261,8244,8240,8244,8244,261, + 261,261,261,8599,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,13885,1,13552,1,1, + 13611,1,8653,8060,8057,655,8379,8379,261,660, + 2025,1968,1990,650,8653,8590,2328,1,2025,1968, + 1990,156,8653,1,1,1,1,8653,6368,7734, + 8896,1835,1,7798,7794,5742,8289,8382,8388,8385, + 914,4060,252,342,7798,7794,5742,8289,8382,8388, + 8385,914,4060,8516,8516,2277,9187,8653,8244,8244, + 261,8244,8240,8244,8244,261,261,261,261,261, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,13885,1,13552,1,1,13611,1,8660,2984, + 258,48,8060,8057,261,7970,7964,7967,649,128, + 3698,8590,8653,2025,1968,1990,431,8667,8668,1, + 1,1,1,3776,6368,4232,8896,1835,7979,7976, + 7973,7985,8003,7982,7994,7961,7988,7991,8000,7997, + 7958,1,7798,7794,5742,8289,8382,8388,8385,914, + 4060,8653,9187,8653,8244,8244,261,8244,8240,8244, + 8244,261,261,261,261,8632,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,13885,1,13552, + 1,1,13611,1,1,7798,7794,5742,8289,8653, + 261,8653,914,4060,8653,7683,7680,8590,1066,4751, + 4721,8657,914,4060,8653,1,1,1,1,3698, + 6368,451,8896,1835,137,8653,2025,1968,1990,1, + 7798,7794,5564,8289,251,430,491,914,4060,421, + 1,400,48,7589,1,119,8668,3986,9187,8653, + 8244,8244,261,8244,8240,8244,8244,261,261,261, + 261,8599,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,13885,1,13552,1,1,13611,1, + 8653,1870,331,8667,8668,369,261,2025,1968,1990, + 2328,1870,400,8590,2279,400,400,7731,8668,1467, + 8653,1,1,1,1,2328,6368,574,8896,1835, + 157,574,8661,8584,8581,8578,8656,400,5674,5700, + 252,401,3896,4981,2230,2181,2132,2083,2034,1985, + 1936,1887,1838,1788,9187,8653,8244,8244,261,8244, + 8240,8244,8244,261,261,261,261,8599,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,13885, + 1,13552,1,1,13611,1,8653,8667,8668,8653, + 1066,8660,261,1499,914,4060,38,7701,7698,8590, + 3314,8,112,8653,7695,4060,5071,1,1,1, + 1,1587,6368,8629,8896,1835,658,7683,7680,5742, + 1066,2025,1968,1990,914,4060,252,8653,3943,6130, + 3236,3158,3080,3002,2924,2846,2768,2690,2612,2533, + 9187,8653,8244,8244,261,8244,8240,8244,8244,261, + 261,261,261,261,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,13885,1,13552,1,1, + 13611,1,8629,1,259,8653,8667,8668,261,8021, + 8015,8018,651,914,4060,8590,8653,2025,1968,1990, + 8653,4304,8653,1,1,1,1,6515,6368,8653, + 8896,1835,8030,8027,8024,8036,8054,8033,8045,8012, + 8039,8042,8051,8048,8009,1,7798,7794,5742,8289, + 8382,8388,8385,914,4060,8653,9187,8653,8244,8244, + 261,8244,8240,8244,8244,261,261,261,261,261, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,13885,1,13552,1,1,13611,1,5994,8653, + 646,9045,5282,653,261,8075,8069,8072,8608,8614, + 8611,8590,8653,7683,7680,8653,8691,326,3599,1, + 1,1,1,381,6368,636,8896,1835,8084,8081, + 8078,8090,8108,8087,8099,8066,8093,8096,8105,8102, + 8063,428,7955,7955,429,316,7946,7952,7949,2025, + 1968,1990,9187,8653,8244,8244,261,8244,8240,8244, + 8244,261,261,261,261,261,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,13885,1,13552, + 1,1,13611,1,2328,316,569,3745,8653,652, + 261,8430,8424,8427,8617,8623,8620,8590,5674,5700, + 1870,36,8506,8503,8653,1,1,1,1,8653, + 6368,635,8896,1835,9023,9024,9317,8945,8939,8946, + 8942,8918,8944,8943,8940,8941,8919,656,8376,8376, + 8653,660,8367,8373,8370,325,8667,8668,9187,8653, + 8244,8244,261,8244,8240,8244,8244,261,261,261, + 261,261,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,13885,1,13552,1,1,13611,1, + 8653,660,570,6062,3470,452,261,8439,8433,8436, + 2025,1968,1990,8590,5674,5700,5493,123,8653,13040, + 11516,1,1,1,1,1,6368,5533,8896,1835, + 9023,9024,9317,8945,8939,8946,8942,8918,8944,8943, + 8940,8941,8919,37,8394,8394,5466,5428,2025,1968, + 1990,3829,37,364,9187,8653,8244,8244,261,8244, + 8240,8244,8244,261,261,261,261,261,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,13885, + 1,13552,1,1,13611,1,8653,8689,571,6063, + 5674,5700,261,8448,8442,8445,8689,111,147,8590, + 8653,8653,110,8653,13040,11516,369,1,1,1, + 1,8653,6368,3793,8896,1835,9023,9024,9317,8945, + 8939,8946,8942,8918,8944,8943,8940,8941,8919,1, + 7798,7794,5564,8289,9023,9024,9317,914,4060,8653, + 9187,8653,8244,8244,261,8244,8240,8244,8244,261, + 261,261,261,261,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,13885,1,13552,1,1, + 13611,1,1,7798,7794,8406,8289,137,261,2435, + 8409,8292,8653,8653,8663,8590,4304,8653,4809,4649, + 2328,4304,6515,1,1,1,1,6515,6368,8653, + 8896,1835,8653,7798,7794,5742,8289,8382,8388,8385, + 914,4060,8548,8548,8653,1,1,1,1,8662, + 8653,8653,1,1,1,1,9187,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,8653,8626,8626,8626,8626,8626,8626,8626, + 8626,8626,8626,8626,395,1,1,1,1,1, + 1,2484,1,1,1,1,1,1,8653,1, + 1,1,1,1,1,1,37,8394,8394,118, + 3698,117,1,9323,1,3896,4981,3986,1,1, + 1,7798,7794,3519,1066,8653,374,9199,2875,4060, + 3109,3187,8653,7752,7791,7788,7779,7785,7758,7761, + 7773,7770,7776,7767,7764,7755,7782,5392,8653,3792, + 8626,1123,955,1123,955,39,149,3444,3891,8691, + 1379,8672,3031,2953,3343,3265,2797,4622,843,1009, + 8674,921,6659,992,8653,8675,8673,832,8669,8670, + 8671,6637,324,1298,1298,2328,3061,374,1685,8653, + 374,374,5735,1,39,39,3986,550,1,7798, + 7794,8334,8289,8653,8653,8215,8295,8292,8277,8280, + 8665,7752,7791,7788,7779,7785,7758,7761,7773,7770, + 7776,7767,7764,7755,7782,8259,8653,7798,7794,5742, + 8289,8382,8388,8385,914,4060,8548,8548,629,8307, + 8274,8271,8286,8283,8268,8653,8322,8331,8301,8325, + 8265,8328,5793,8298,8304,8319,8316,8313,8310,8262, + 37,8394,8394,341,2328,8653,8060,8057,8394,8218, + 8664,8653,8337,8337,39,7683,7680,723,1066,3788, + 9128,9142,2875,4060,3109,3187,8593,714,9315,9316, + 8950,8948,8957,8956,8952,8953,8951,8954,8955,8958, + 8949,5392,478,7725,7725,454,7725,7725,7725,7725, + 148,8653,7725,7725,1565,8672,3031,2953,3343,3265, + 2797,7536,843,1009,8674,921,6659,992,8653,8675, + 8673,832,8669,8670,8671,6637,4864,3776,8653,3421, + 784,8653,1685,150,8653,8653,8212,6204,172,7683, + 7680,723,1066,8663,4622,8660,2875,4060,3109,3187, + 8653,714,9315,9316,8950,8948,8957,8956,8952,8953, + 8951,8954,8955,8958,8949,5392,378,39,39,3986, + 8691,2025,1968,1990,8653,3844,364,364,8662,8672, + 3031,2953,3343,3265,2797,47,843,1009,8674,921, + 6659,992,1,8675,8673,832,8669,8670,8671,6637, + 4809,4649,8653,8667,8668,8602,1685,1,7798,7794, + 3519,1066,39,39,8665,2875,4060,3109,3187,8653, + 7752,7791,7788,7779,7785,7758,7761,7773,7770,7776, + 7767,7764,7755,7782,5392,1,3499,2328,8653,1261, + 8653,8653,351,7218,6882,8545,3923,8665,8672,3031, + 2953,3343,3265,2797,8605,843,1009,8674,921,6659, + 992,8653,8675,8673,832,8669,8670,8671,6637,98, + 8653,8653,3651,5755,8664,1685,39,7683,7680,723, + 1066,39,39,8659,2875,4060,3109,3187,8209,714, + 9315,9316,8950,8948,8957,8956,8952,8953,8951,8954, + 8955,8958,8949,5392,479,8355,8355,8664,8349,8340, + 8346,8343,3643,2328,8352,8352,5860,8672,3031,2953, + 3343,3265,2797,318,843,1009,8674,921,6659,992, + 8653,8675,8673,832,8669,8670,8671,6637,8653,8653, + 8519,6196,8661,8653,1685,8653,8653,8658,8212,612, + 7683,7680,723,1066,624,8665,8653,2875,4060,3109, + 3187,8653,714,9315,9316,8950,8948,8957,8956,8952, + 8953,8951,8954,8955,8958,8949,5392,1,7798,7794, + 5564,8289,8653,9276,144,914,4060,8653,146,8215, + 8672,3031,2953,3343,3265,2797,8970,843,1009,8674, + 921,6659,992,1234,8675,8673,832,8669,8670,8671, + 6637,8660,4948,8653,324,8664,7170,1685,39,7683, + 7680,723,1066,39,39,8659,2875,4060,3109,3187, + 8209,714,9315,9316,8950,8948,8957,8956,8952,8953, + 8951,8954,8955,8958,8949,5392,8653,8653,2328,2209, + 5493,758,617,8218,5493,2997,353,8653,8659,8672, + 3031,2953,3343,3265,2797,5927,843,1009,8674,921, + 6659,992,72,8675,8673,832,8669,8670,8671,6637, + 5466,5428,8653,97,5466,5428,1685,12416,8653,8658, + 8212,612,7683,7680,723,1066,5674,5700,3788,2875, + 4060,3109,3187,8653,714,9315,9316,8950,8948,8957, + 8956,8952,8953,8951,8954,8955,8958,8949,5392,90, + 8412,8412,8658,8412,8412,8412,8412,2328,8653,8412, + 8412,2753,8672,3031,2953,3343,3265,2797,8575,843, + 1009,8674,921,6659,992,8653,8675,8673,832,8669, + 8670,8671,6637,8653,8554,8653,3300,145,8653,1685, + 39,7683,7680,723,1066,39,39,8659,2875,4060, + 3109,3187,8209,714,9315,9316,8950,8948,8957,8956, + 8952,8953,8951,8954,8955,8958,8949,5392,93,8572, + 8572,627,8566,8557,8563,8560,48,8653,8569,8569, + 8667,8672,3031,2953,3343,3265,2797,3777,843,1009, + 8674,921,6659,992,35,8675,8673,832,8669,8670, + 8671,6637,722,5493,2907,39,7683,7680,723,1066, + 8653,8658,8212,2875,4060,3109,3187,8657,714,9315, + 9316,8950,8948,8957,8956,8952,8953,8951,8954,8955, + 8958,8949,5392,5466,5428,8653,8653,604,1679,8653, + 1352,39,8667,1725,2311,8691,8672,3031,2953,3343, + 3265,2797,8653,843,1009,8674,921,6659,992,8653, + 8675,8673,832,8669,8670,8671,6637,39,7683,7680, + 723,1066,1332,592,2418,2875,4060,3109,3187,8653, + 714,9315,9316,8950,8948,8957,8956,8952,8953,8951, + 8954,8955,8958,8949,5392,1,7798,7794,5742,8289, + 8382,8388,8385,914,4060,8653,7016,342,8672,3031, + 2953,3343,3265,2797,3392,843,1009,8674,921,6659, + 992,1,8675,8673,832,8669,8670,8671,6637,8653, + 8492,8489,8656,8663,98,1685,39,7683,7680,723, + 1066,3924,342,8653,2875,4060,3109,3187,122,714, + 9315,9316,8950,8948,8957,8956,8952,8953,8951,8954, + 8955,8958,8949,5392,9122,9123,9124,8653,8662,8653, + 6427,580,8653,8653,8653,8499,8495,8672,3031,2953, + 3343,3265,2797,8689,843,1009,8674,921,6659,992, + 8653,8675,8673,832,8669,8670,8671,6637,8653,8653, + 39,7683,7680,3519,1066,8519,8653,1667,2875,4060, + 3109,3187,121,714,9315,9316,8950,8948,8957,8956, + 8952,8953,8951,8954,8955,8958,8949,5392,8689,483, + 101,5674,5700,8551,8653,2,45,8525,8525,3069, + 8653,8672,3031,2953,3343,3265,2797,9088,843,1009, + 8674,921,6659,992,8653,8675,8673,832,8669,8670, + 8671,6637,39,7683,7680,3519,1066,8653,1685,408, + 2875,4060,3109,3187,120,714,9315,9316,8950,8948, + 8957,8956,8952,8953,8951,8954,8955,8958,8949,5392, + 8522,311,8653,3829,8587,5674,5700,8653,8653,8492, + 8489,37,2210,8672,3031,2953,3343,3265,2797,139, + 843,1009,8674,921,6659,992,8653,8675,8673,832, + 8669,8670,8671,6637,39,7683,7680,6764,1066,8653, + 1685,8653,2875,4060,3109,3187,143,714,9315,9316, + 8950,8948,8957,8956,8952,8953,8951,8954,8955,8958, + 8949,5392,8689,630,8653,482,3876,5674,5700,8653, + 37,8394,8394,8653,8653,8672,3031,2953,3343,3265, + 2797,142,843,1009,8674,921,6659,992,8653,8675, + 8673,832,8669,8670,8671,6637,39,7683,7680,6764, + 1066,3829,5674,5700,2875,4060,3109,3187,140,714, + 9315,9316,8950,8948,8957,8956,8952,8953,8951,8954, + 8955,8958,8949,5392,8689,8653,8653,462,1266,5674, + 5700,8653,8653,14333,14320,8653,8653,8672,3031,2953, + 3343,3265,2797,1543,843,1009,8674,921,6659,992, + 8653,8675,8673,832,8669,8670,8671,6637,39,7683, + 7680,723,1066,8653,5674,5700,2875,4060,3109,3187, + 542,714,9315,9316,8950,8948,8957,8956,8952,8953, + 8951,8954,8955,8958,8949,5392,8689,8653,8653,8653, + 6468,5674,5700,101,8653,8653,8551,7427,1,8672, + 3031,2953,3343,3265,2797,3374,843,1009,8674,921, + 6659,992,8653,8675,8673,832,8669,8670,8671,6637, + 39,7683,7680,6855,1066,8653,8653,8653,2875,4060, + 3109,3187,540,714,9315,9316,8950,8948,8957,8956, + 8952,8953,8951,8954,8955,8958,8949,5392,8653,7077, + 7590,8653,3877,8653,8653,8653,460,1,8653,8653, + 8209,8672,3031,2953,3343,3265,2797,3797,843,1009, + 8674,921,6659,992,8653,8675,8673,832,8669,8670, + 8671,6637,39,7683,7680,6855,1066,8653,8653,8653, + 2875,4060,3109,3187,544,714,9315,9316,8950,8948, + 8957,8956,8952,8953,8951,8954,8955,8958,8949,5392, + 645,3878,7591,8653,8653,8653,8653,8653,8653,8653, + 8212,8653,8537,8672,3031,2953,3343,3265,2797,2415, + 843,1009,8674,921,6659,992,8653,8675,8673,832, + 8669,8670,8671,6637,39,7683,7680,3519,1066,8653, + 8653,8653,2875,4060,3109,3187,8653,714,9315,9316, + 8950,8948,8957,8956,8952,8953,8951,8954,8955,8958, + 8949,5392,1,8653,1045,8653,8653,8653,8653,8653, + 8653,8653,8541,8653,8635,8672,3031,2953,3343,3265, + 2797,8653,843,1009,8674,921,6659,992,8653,8675, + 8673,832,8669,8670,8671,6637,39,7683,7680,3519, + 1066,8653,8653,8653,2875,4060,3109,3187,8653,714, + 9315,9316,8950,8948,8957,8956,8952,8953,8951,8954, + 8955,8958,8949,5392,8653,8653,8653,8653,8653,8653, + 8653,8653,8653,8653,8664,8653,8653,8672,3031,2953, + 3343,3265,2797,8653,843,1009,8674,921,6659,992, + 8653,8675,8673,832,8669,8670,8671,6637,39,7683, + 7680,723,1066,8653,8653,8653,2875,4060,3109,3187, + 8653,714,9315,9316,8950,8948,8957,8956,8952,8953, + 8951,8954,8955,8958,8949,5392,1,8653,8653,676, + 8653,8653,8653,8653,9156,8653,9150,9154,8653,8672, + 3031,2953,3343,3265,2797,8653,843,1009,8674,921, + 6659,992,8653,8675,8673,832,8669,8670,8671,6637, + 8653,1,1,4948,439,1,8653,3928,9148,9149, + 9179,9180,9157,8653,8653,8602,8528,222,8638,8646, + 8642,8653,1,8653,8653,8650,8663,8653,8653,8653, + 8653,8653,9159,8653,192,8659,8659,730,8653,9181, + 1575,1669,3881,9160,8653,8653,9158,8653,8653,9170, + 9169,8531,222,8653,8653,3881,3923,8653,8653,8653, + 8650,8662,9175,9176,8605,9182,9173,9174,9153,9155, + 9177,8659,9151,9152,9178,8653,9163,9164,9165,9161, + 9162,9171,9172,9167,9166,9168,8650,4961,8653,8653, + 7683,7680,9183,8691,2025,1968,1990,844,192,8658, + 8658,1664,907,9315,9316,8950,8948,8957,8956,8952, + 8953,8951,8954,8955,8958,8949,6681,9023,9024,9317, + 8945,8939,8946,8942,8918,8944,8943,8940,8941,8919, + 8653,8653,1636,8653,8653,8658,8653,8653,8653,8653, + 8653,8653,273,8202,8198,8653,8206,8123,8117,8120, + 8653,9085,5767,9086,9087,907,8195,8192,8183,8189, + 8162,8165,8177,8174,8180,8171,8168,8159,8186,6681, + 8132,8129,8126,8138,8156,8135,8147,8114,8141,8144, + 8153,8150,8111,8653,8653,8653,8653,8653,8653,8653, + 8653,8653,8653,8653,8653,8653,8667,8668,8653,8653, + 2025,1968,1990,8653,9085,5767,9086,9087,1172,9315, + 9316,8950,8948,8957,8956,8952,8953,8951,8954,8955, + 8958,8949,8653,9023,9024,9317,8945,8939,8946,8942, + 8918,8944,8943,8940,8941,8919,8653,124,8653,1, + 8653,8653,8653,8653,8653,8653,8653,8653,273,8463, + 8460,396,8659,8123,8117,8120,8653,9085,5767,9086, + 9087,1172,8195,8192,8183,8189,8162,8165,8177,8174, + 8180,8171,8168,8159,8186,8653,8132,8129,8126,8138, + 8156,8135,8147,8114,8141,8144,8153,8150,8111,29, + 421,421,8227,421,421,421,421,421,421,8227, + 8227,8227,8653,5234,8653,8653,8653,8653,8653,8653, + 9085,5767,9086,9087,7722,396,8658,421,421,421, + 421,421,421,421,421,421,421,421,421,421, + 8653,8653,8653,5180,5150,8653,8227,396,32,422, + 422,8224,422,422,422,422,422,422,8224,8224, + 8224,8653,1,8653,8653,7686,8653,5123,4428,8653, + 8227,8653,8653,8653,194,8227,422,422,422,422, + 422,422,422,422,422,422,422,422,422,8653, + 8653,8653,8653,8653,8653,8224,8653,634,644,644, + 644,644,644,644,644,644,644,8397,8397,8397, + 8653,8653,8653,8653,8653,8653,8653,8653,8653,8224, + 8653,8653,8653,8653,8224,644,644,644,644,644, + 644,644,644,644,644,644,644,644,194,8653, + 8653,8653,8653,8653,8397,8653,37,8668,8668,8668, + 8668,8668,8668,8668,126,8653,8668,8668,125,37, + 8667,8667,8667,8667,8667,8667,8667,8653,644,8667, + 8667,8653,8653,8397,8668,8668,8668,8668,8668,8668, + 8668,8668,8668,8668,8668,8668,8668,8667,8667,8667, + 8667,8667,8667,8667,8667,8667,8667,8667,8667,8667, + 1,8337,8337,8653,8391,8382,8388,8385,8653,572, + 364,364,396,8653,8457,8451,8454,8668,74,8668, + 5234,7716,8653,8668,5234,8653,8653,8653,8653,8653, + 8667,8253,8667,8653,8653,8256,8667,9023,9024,9317, + 8945,8939,8946,8942,8918,8944,8943,8940,8941,8919, + 5180,5150,8653,1,5180,5150,1,8653,8653,8653, + 8653,8653,7707,7704,8659,588,8653,8653,8659,8653, + 8653,8653,8653,8653,5123,4428,396,8653,5123,4428, + 8653,8653,8653,8653,8653,8653,8653,8653,8653,7719, + 8653,8653,8653,8653,8653,8653,8653,8653,396,8653, + 8653,8653,8653,8653,8653,8653,8653,8653,8653,8653, + 8653,8653,8653,8653,8653,8653,8653,8653,8653,8653, + 8653,8653,8653,8653,8653,7592,8653,8653,8658,588, + 8653,8653,8658,8653,8653,8653,8653,8653,8653,8653, + 8653,8653,8653,8653,7710,8653,7713 }; }; public final static char termAction[] = TermAction.termAction; @@ -2364,68 +2761,74 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 151,1,803,3,196,87,87,87,87,1128, - 196,1162,1162,1053,1162,726,665,728,804,804, - 804,804,804,804,804,804,804,804,804,1162, - 876,881,878,885,883,892,890,894,893,895, - 198,896,803,803,1093,1093,1093,1093,846,209, - 20,20,1162,1093,422,254,1162,1162,20,846, - 254,254,254,593,783,764,1235,1092,1327,1130, - 1162,665,1162,1162,89,89,209,803,804,804, - 804,804,804,804,804,804,804,804,804,804, - 804,804,804,804,804,804,804,804,804,803, - 803,803,803,803,803,803,803,803,803,803, - 489,804,254,663,663,663,663,309,254,20, - 20,1226,1149,196,196,196,1162,148,1162,1132, - 1162,11,1162,1128,846,1162,1143,804,422,422, - 20,87,686,1226,378,993,433,432,441,1169, - 1169,1128,728,804,765,422,1092,803,844,1323, - 254,843,845,843,254,422,878,878,876,876, - 876,883,883,883,883,883,883,881,881,890, - 885,885,893,892,894,534,534,895,196,196, - 196,196,846,846,663,662,663,1162,1162,846, - 373,479,253,587,257,1134,308,1132,146,1128, - 11,846,846,309,665,663,486,148,593,422, - 910,254,995,997,846,1327,1173,764,534,804, - 534,920,763,196,196,196,765,196,846,541, - 920,920,362,313,846,316,148,804,1093,1162, - 1162,254,1130,846,148,846,845,1327,803,803, - 803,803,803,803,196,196,783,1230,1162,1162, - 648,253,478,254,257,846,748,733,746,309, - 148,483,846,309,846,254,486,685,254,437, - 589,436,997,309,844,755,765,534,923,765, - 783,783,781,763,783,920,920,536,362,1223, - 846,196,196,958,1128,843,762,254,1162,1226, - 1323,1130,846,844,254,254,254,254,209,209, - 1233,1162,604,603,252,486,846,257,534,1135, - 87,311,842,926,257,748,747,751,748,751, - 309,483,483,846,846,1162,685,654,803,434, - 434,425,425,991,1226,608,254,846,765,804, - 765,254,1223,254,781,362,196,254,751,751, - 920,951,1226,985,919,1223,1223,846,254,846, - 1327,997,741,1128,846,844,376,1162,1162,1162, - 803,1162,1331,1162,1130,254,254,1162,1162,648, - 254,208,254,254,1327,148,1137,1137,663,87, - 928,751,751,751,751,846,483,485,960,485, - 485,654,803,803,995,589,654,1206,765,958, - 765,920,362,803,765,751,148,1128,951,1223, - 803,685,1223,951,1323,997,7,973,6,846, - 846,844,762,196,1162,209,804,422,1331,1162, - 849,604,844,261,148,262,273,919,804,534, - 952,979,916,928,751,751,965,485,486,804, - 846,1162,102,657,1223,654,803,763,209,920, - 1223,254,148,1039,846,196,254,951,254,741, - 920,84,587,846,920,920,608,1162,254,422, - 1162,208,920,261,261,311,311,1043,1281,1135, - 273,928,804,804,916,916,928,928,1039,1127, - 966,846,486,1162,1162,657,657,765,254,920, - 376,1128,846,209,941,847,254,920,254,254, - 1220,486,261,261,262,262,262,324,1046,662, - 87,96,96,916,916,965,846,1128,1128,846, - 196,657,765,376,254,941,254,148,148,1222, - 486,262,261,273,262,273,661,661,846,846, - 846,998,756,944,261,273,1093,1093,846,846, - 604,944,486,662,1093,1037,96,661,843 + 957,123,720,127,821,661,661,661,661,1079, + 821,1251,1251,1004,1251,62,1,64,721,721, + 721,721,721,721,721,721,721,721,721,1251, + 306,311,308,315,313,322,320,324,323,325, + 212,326,720,720,381,381,381,381,763,223, + 353,353,1251,381,117,268,1251,1251,353,763, + 268,268,268,1160,700,681,777,380,1370,1081, + 1251,1,1251,1251,184,184,223,720,721,721, + 721,721,721,721,721,721,721,721,721,721, + 721,721,721,721,721,721,721,721,721,720, + 720,720,720,720,720,720,720,720,720,720, + 1109,721,268,351,351,351,351,1372,268,353, + 353,1315,1238,821,821,821,1251,181,1251,1083, + 1251,1223,1251,1079,763,1251,1232,721,117,117, + 353,661,22,1315,530,1177,199,198,476,1258, + 1258,1079,64,721,682,117,380,720,761,1366, + 268,760,762,760,268,117,308,308,306,306, + 306,313,313,313,313,313,313,311,311,320, + 315,315,323,322,324,1107,1107,325,821,821, + 821,821,763,763,351,383,1070,1,620,618, + 625,623,627,626,628,337,350,351,1251,1251, + 763,574,514,267,1002,420,1085,186,1083,179, + 1079,1223,763,763,1372,1,351,655,181,1160, + 117,645,268,1179,1181,763,1370,1262,681,1107, + 721,1107,114,680,821,821,821,682,821,763, + 69,114,114,901,120,763,271,181,721,381, + 1251,1251,268,1081,763,181,763,762,1370,720, + 720,720,720,720,720,821,821,1044,1057,1057, + 1057,1057,1039,1079,658,721,721,721,721,721, + 721,721,721,721,720,720,720,720,720,720, + 720,720,720,720,720,720,721,700,1319,1251, + 1251,518,267,513,268,420,763,665,1376,663, + 1372,181,524,763,1372,763,268,655,21,268, + 203,1156,202,1181,1372,761,672,682,1107,774, + 682,700,700,698,680,700,114,114,577,901, + 1312,763,821,821,643,1079,760,679,268,1251, + 1315,1366,1081,763,761,268,268,268,268,223, + 223,763,721,618,618,618,623,620,620,626, + 625,627,1107,628,1322,1251,1171,1170,266,655, + 763,420,1107,1086,661,1374,759,1094,420,665, + 664,668,665,668,1372,524,524,763,763,1251, + 21,588,720,200,200,191,191,1175,1315,823, + 268,763,682,721,682,268,1312,268,698,901, + 821,268,668,668,114,609,1315,937,614,1312, + 1312,763,268,763,1370,1181,207,1079,763,761, + 125,1251,1251,1251,720,1251,1154,1251,1081,268, + 268,1372,915,720,1251,1251,518,268,222,268, + 268,1370,181,1088,1088,351,661,1096,668,668, + 668,668,763,524,654,920,654,654,588,720, + 720,1179,1156,588,1295,682,643,682,114,901, + 720,682,668,181,1079,609,1312,720,21,1312, + 609,1366,1181,131,925,130,763,763,761,679, + 821,1251,223,721,117,1154,763,1251,279,1171, + 761,424,181,425,436,614,721,1107,610,931, + 611,1096,668,668,766,654,655,721,763,1251, + 135,591,1312,588,720,680,223,114,1312,268, + 181,943,763,821,268,609,268,207,114,912, + 1002,763,114,114,823,1251,268,117,1251,222, + 114,424,424,1374,1374,947,1324,1086,436,1096, + 721,721,611,611,1096,1096,943,471,767,763, + 655,1251,1251,591,591,682,268,114,125,1079, + 763,223,599,764,268,114,268,268,1309,655, + 424,424,425,425,425,863,950,350,661,582, + 582,611,611,766,763,1079,1079,763,821,591, + 682,125,268,599,268,181,181,1311,655,425, + 424,436,425,436,349,349,763,763,763,1182, + 673,602,424,436,381,381,763,763,1171,602, + 655,350,381,418,582,349,760 }; }; public final static char asb[] = Asb.asb; @@ -2433,140 +2836,145 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static char asr[] = {0, - 129,0,127,44,129,77,75,10,76,0, - 4,10,71,6,7,5,1,2,0,14, - 15,30,5,32,16,17,62,28,49,73, - 18,50,63,33,34,51,19,35,36,20, - 21,37,74,9,38,52,22,23,53,39, - 54,64,55,70,56,40,57,13,65,24, - 31,25,29,26,58,59,60,41,2,3, - 46,47,12,42,43,8,48,78,4,27, - 61,6,7,1,11,0,69,0,9,4, - 45,8,1,2,0,78,80,77,1,2, - 0,73,74,70,46,47,12,11,42,43, - 8,48,53,61,27,3,4,9,58,59, - 60,41,56,51,55,14,15,17,26,16, - 22,20,21,23,24,19,18,25,13,50, - 54,52,49,57,81,1,2,71,10,0, - 14,15,16,17,49,73,18,50,51,19, - 20,21,74,9,52,22,23,53,54,55, - 70,56,57,13,24,25,26,58,59,60, - 41,1,2,46,47,12,11,42,43,8, - 48,4,27,61,67,3,0,5,78,76, - 96,127,81,44,6,7,129,77,14,15, - 16,17,49,73,18,50,51,19,20,21, - 74,9,52,22,23,53,54,55,70,56, - 57,13,24,25,26,58,59,60,2,3, - 46,47,12,11,42,43,8,48,4,27, - 61,41,1,75,10,0,112,113,114,76, - 81,9,10,3,12,11,8,44,68,66, - 93,67,14,15,30,5,32,16,17,62, - 28,18,63,33,34,19,35,36,20,21, - 37,38,22,23,39,64,40,13,65,24, - 31,25,29,26,27,6,7,4,1,2, - 45,0,3,29,0,9,1,2,8,4, - 13,66,0,14,15,30,32,16,17,62, - 28,18,63,33,93,34,19,35,36,20, - 21,37,66,38,22,23,39,64,45,40, - 13,65,24,68,31,25,29,26,27,67, - 71,5,10,44,6,7,8,9,1,2, - 4,3,11,12,0,111,0,73,74,3, - 13,50,54,52,49,57,17,26,16,22, - 20,21,23,24,19,18,25,14,15,58, - 59,60,41,56,51,55,8,9,4,46, - 47,12,11,42,43,48,53,61,27,1, - 2,127,10,0,5,79,76,44,71,6, - 7,3,72,78,80,77,10,75,96,0, - 14,15,30,5,32,16,17,28,18,33, - 34,19,35,36,20,21,37,9,38,22, - 23,39,40,24,31,25,29,26,2,72, - 12,11,8,4,44,6,7,1,75,10, - 3,0,1,2,77,10,81,0,14,15, - 16,17,49,73,18,50,51,19,20,21, - 74,9,52,22,23,53,54,55,70,56, + 30,5,32,62,28,63,33,34,35,36, + 37,38,39,64,40,65,31,29,6,7, + 68,44,45,11,10,42,43,46,52,61, + 27,3,4,58,59,60,41,56,50,55, + 14,15,17,26,16,22,20,21,23,24, + 19,18,25,13,49,53,51,48,57,72, + 12,9,8,1,2,75,74,0,14,15, + 16,17,48,74,18,49,50,19,20,21, + 75,9,51,22,23,52,53,55,68,56, 57,13,24,25,26,58,59,60,41,1, - 2,3,46,47,12,11,42,43,8,48, - 4,27,61,76,0,10,76,71,79,0, - 14,15,16,17,49,73,18,50,51,19, - 20,21,74,9,52,22,23,53,54,55, - 70,56,57,13,24,25,26,58,59,60, - 1,2,3,46,47,12,11,42,43,8, - 48,4,27,61,44,10,41,0,96,9, - 8,80,78,5,1,2,12,11,4,6, - 7,72,3,75,10,77,0,14,15,30, - 5,32,16,17,62,28,18,63,33,34, - 19,35,36,20,21,37,38,22,23,39, - 64,40,13,65,24,31,25,29,26,1, - 2,4,27,6,7,96,0,10,77,75, - 1,28,0,30,28,29,70,10,96,75, - 80,77,78,0,30,5,32,62,28,63, - 33,34,35,36,37,38,39,64,40,65, - 31,29,6,7,70,46,47,12,11,42, - 43,48,53,61,27,3,4,58,59,60, - 41,56,51,55,14,15,17,26,16,22, - 20,21,23,24,19,18,25,13,50,54, - 52,49,57,71,10,9,8,1,2,74, - 73,0,4,10,76,71,6,7,5,0, - 10,76,75,41,0,4,69,6,7,5, - 10,76,71,0,75,93,112,113,114,45, - 76,111,130,81,67,79,68,66,83,85, - 91,89,82,87,88,90,92,71,84,86, - 44,10,63,62,64,65,32,38,39,34, - 37,36,31,33,28,29,30,5,7,6, - 35,40,70,73,74,50,54,52,49,57, - 3,17,26,16,22,20,21,23,24,19, - 18,25,14,15,58,59,60,41,56,51, - 55,46,47,12,11,42,43,48,53,61, - 27,13,4,9,8,2,1,0,32,33, - 34,35,36,37,9,38,39,70,79,40, - 31,1,2,72,3,128,115,46,47,8, - 4,71,28,29,30,98,97,11,99,100, - 42,43,95,94,69,101,102,109,110,103, - 104,12,105,106,107,78,75,129,80,117, - 118,119,120,121,122,123,124,125,126,76, - 96,127,81,108,116,6,7,5,77,44, - 10,0,76,96,0,44,10,3,9,8, - 76,12,11,4,1,2,6,7,5,0, - 30,28,29,70,79,78,76,96,75,71, - 3,5,10,77,44,6,7,80,0,10, - 77,81,80,0,31,1,2,4,112,113, - 114,0,10,76,77,75,3,0,76,5, - 72,6,7,69,10,77,44,80,3,0, - 8,9,3,72,11,12,96,14,15,30, - 5,32,16,17,28,18,63,33,34,19, - 35,36,20,21,37,38,22,23,39,64, - 40,13,65,24,31,25,29,26,1,2, - 4,27,6,7,75,10,62,0,10,71, - 77,0,41,45,0,5,10,71,6,7, - 80,0,74,73,42,43,11,99,100,105, - 12,106,8,48,80,69,78,120,121,117, - 118,119,125,124,126,95,94,122,123,103, - 104,101,102,107,108,46,47,77,97,115, - 72,3,14,15,30,5,32,16,17,62, + 2,3,44,45,11,10,42,43,8,46, + 4,27,61,47,12,0,127,12,0,3, + 29,0,129,0,122,0,127,47,129,73, + 76,12,78,0,74,75,68,44,45,11, + 10,42,43,8,46,52,61,27,3,4, + 9,58,59,60,41,56,50,55,14,15, + 17,26,16,22,20,21,23,24,19,18, + 25,13,49,53,51,48,57,81,1,2, + 72,12,0,9,8,54,1,2,4,0, + 5,79,78,47,72,6,7,3,71,77, + 80,73,12,76,98,0,12,78,76,41, + 0,5,77,78,98,127,81,47,6,7, + 129,73,14,15,16,17,48,74,18,49, + 50,19,20,21,75,9,51,22,23,52, + 53,55,68,56,57,13,24,25,26,58, + 59,60,2,3,44,45,11,10,42,43, + 8,46,4,27,61,41,1,76,12,0, + 9,1,2,8,4,13,67,0,32,33, + 34,35,36,37,9,38,39,68,79,40, + 31,1,2,71,3,128,126,44,45,8, + 4,72,28,29,30,105,99,10,106,107, + 42,43,84,83,66,96,97,120,121,100, + 101,11,102,103,104,5,12,78,98,127, + 76,81,47,6,7,129,108,109,110,111, + 112,113,114,115,116,117,118,119,80,73, + 77,0,48,74,49,50,75,9,51,52, + 53,55,68,56,57,58,59,60,41,44, + 45,11,10,42,43,8,46,77,61,3, + 4,27,13,1,2,63,64,65,14,15, + 17,26,16,22,20,21,23,24,19,18, + 25,32,38,39,34,37,36,31,33,28, + 29,30,5,7,6,35,40,62,0,123, + 124,125,78,81,9,12,3,11,10,8, + 47,70,67,95,69,14,15,30,5,32, + 16,17,62,28,18,63,33,34,19,35, + 36,20,21,37,38,22,23,39,64,54, + 40,13,65,24,25,29,26,27,6,7, + 1,2,4,31,0,14,15,30,5,32, + 16,17,28,18,33,34,19,35,36,20, + 21,37,9,38,22,23,39,40,24,31, + 25,29,26,2,71,11,10,8,4,47, + 6,7,1,76,12,3,0,12,73,76, + 1,28,0,1,2,12,73,81,0,74, + 75,127,12,3,13,49,53,51,48,57, + 17,26,16,22,20,21,23,24,19,18, + 25,14,15,58,59,60,41,56,50,55, + 8,9,4,44,45,42,43,46,52,61, + 27,1,2,10,11,0,12,78,72,79, + 0,77,80,73,1,2,0,30,28,29, + 68,12,77,98,80,73,76,0,30,28, + 29,68,79,77,78,98,76,72,3,80, + 6,7,5,12,47,73,0,84,83,66, + 96,97,100,101,11,102,103,77,108,109, + 110,111,112,113,114,115,116,117,118,119, + 73,104,80,0,5,78,98,127,47,6, + 7,108,109,73,12,81,0,77,96,97, + 66,0,4,66,6,7,5,12,78,72, + 0,76,95,123,124,125,54,78,122,130, + 81,69,79,70,67,85,87,93,91,82, + 89,90,92,94,72,86,88,47,12,63, + 62,64,65,32,38,39,34,37,36,31, + 33,28,29,30,5,7,6,35,40,68, + 74,75,49,53,51,48,57,3,17,26, + 16,22,20,21,23,24,19,18,25,14, + 15,58,59,60,41,56,50,55,44,45, + 11,10,42,43,46,52,61,27,13,4, + 9,8,2,1,0,31,1,2,4,123, + 124,125,0,78,98,0,74,75,44,45, + 11,10,42,43,8,46,52,61,27,4, + 9,58,59,60,41,56,50,55,14,15, + 17,26,16,22,20,21,23,24,19,18, + 25,13,49,53,51,48,57,71,1,2, + 3,0,14,15,30,5,32,16,17,62, 28,18,63,33,34,19,35,36,20,21, 37,38,22,23,39,64,40,13,65,24, - 25,29,26,27,6,7,31,1,2,4, - 0,45,4,76,1,2,10,71,6,7, - 5,0,27,13,63,62,64,65,17,26, - 16,22,20,21,23,24,19,18,25,14, - 15,79,76,96,127,81,71,129,128,115, - 46,47,98,97,42,43,99,100,94,95, - 69,78,101,102,103,104,105,106,107,108, - 116,80,117,118,119,120,121,122,123,124, - 125,126,77,109,110,30,32,28,33,34, - 35,36,37,38,39,40,31,29,44,10, - 75,72,8,9,3,12,1,2,4,6, - 7,5,11,0,73,74,46,47,12,11, - 42,43,8,48,53,61,27,3,4,9, - 58,59,60,41,56,51,55,14,15,17, - 26,16,22,20,21,23,24,19,18,25, - 13,50,54,52,49,57,72,1,2,0, - 17,62,28,18,63,33,19,35,20,21, - 37,38,22,23,64,40,13,65,24,31, - 25,29,26,16,32,30,27,15,14,10, - 3,12,44,68,66,93,34,39,36,67, - 69,4,5,11,6,7,9,1,2,45, - 8,0 + 31,25,29,26,1,2,4,27,6,7, + 98,0,14,15,30,32,16,17,62,28, + 18,63,33,95,34,19,35,36,20,21, + 37,67,38,22,23,39,64,54,40,13, + 65,24,70,31,25,29,26,27,69,72, + 5,12,11,47,6,7,8,9,2,4, + 3,1,10,0,76,12,84,83,0,12, + 73,81,80,0,12,78,73,76,3,0, + 78,5,71,6,7,66,12,73,47,80, + 3,0,12,72,73,0,41,54,0,5, + 12,72,6,7,80,0,14,15,16,17, + 48,74,18,49,50,19,20,21,75,9, + 51,22,23,52,53,55,68,56,57,13, + 24,25,26,58,59,60,1,2,3,44, + 45,11,10,42,43,8,46,4,27,61, + 69,41,0,27,75,74,42,43,106,107, + 102,103,8,46,80,66,113,114,110,111, + 112,118,117,119,84,83,115,116,100,101, + 96,97,104,108,44,45,99,126,13,63, + 62,64,65,17,26,16,22,20,21,23, + 24,19,18,25,14,15,32,38,39,34, + 37,36,31,33,28,29,30,35,40,77, + 73,5,11,10,6,7,3,71,1,2, + 4,0,54,4,78,1,2,12,72,6, + 7,5,0,47,12,3,9,8,11,10, + 4,1,2,6,7,5,78,0,14,15, + 16,17,48,74,18,49,50,19,20,21, + 75,9,51,22,23,52,53,55,68,56, + 57,13,24,25,26,58,59,60,41,1, + 2,3,44,45,11,10,42,43,46,4, + 27,61,78,8,0,98,9,8,80,77, + 5,1,2,11,10,4,6,7,71,3, + 76,12,73,0,8,9,3,71,10,11, + 98,14,15,30,5,32,16,17,62,28, + 18,63,33,34,19,35,36,20,21,37, + 38,22,23,39,64,40,13,65,24,31, + 25,29,26,1,2,4,27,6,7,76, + 12,0,4,12,72,6,7,5,1,2, + 0,27,13,63,62,64,65,17,26,16, + 22,20,21,23,24,19,18,25,14,15, + 79,78,98,127,81,72,129,128,126,44, + 45,105,99,42,43,106,107,83,84,66, + 77,96,97,100,101,102,103,104,108,109, + 80,110,111,112,113,114,115,116,117,118, + 119,73,120,121,30,32,28,33,34,35, + 36,37,38,39,40,31,29,47,12,76, + 71,8,9,3,11,1,2,4,6,7, + 5,10,0,17,62,28,18,63,33,19, + 35,20,21,37,38,22,23,64,40,13, + 65,24,31,25,29,26,16,32,30,27, + 15,14,12,3,11,47,70,67,95,34, + 39,36,69,66,4,5,10,6,7,9, + 8,1,2,54,0,4,12,78,72,6, + 7,5,0 }; }; public final static char asr[] = Asr.asr; @@ -2574,68 +2982,74 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 101,13,74,13,13,13,13,13,13,78, - 13,13,13,238,13,27,183,82,74,74, - 74,74,278,74,74,74,74,74,74,13, + 198,13,83,13,13,13,13,13,13,87, + 13,13,13,205,13,31,175,263,83,83, + 83,83,159,83,83,83,83,83,83,13, 13,13,13,13,13,13,13,13,13,13, - 74,13,74,174,47,47,47,47,82,14, - 218,218,39,5,131,249,13,13,218,282, - 249,249,249,234,1,121,74,58,93,13, - 13,183,13,13,50,50,14,174,74,74, - 74,74,74,74,74,74,74,74,74,74, - 74,74,74,74,74,74,74,74,74,74, - 74,74,74,74,74,74,74,74,74,74, - 145,74,249,13,13,13,13,64,249,42, - 42,311,261,13,13,13,262,231,262,169, - 262,169,262,11,82,262,254,74,131,131, - 42,13,224,311,126,233,80,80,13,13, - 13,11,82,74,171,131,47,140,27,67, - 249,26,82,26,249,131,13,13,13,13, + 83,13,83,250,342,342,342,342,263,227, + 261,261,75,5,142,97,13,13,261,163, + 97,97,97,194,1,35,83,42,71,13, + 13,175,13,13,104,104,227,250,83,83, + 83,83,83,83,83,83,83,83,83,83, + 83,83,83,83,83,83,83,83,83,83, + 83,83,83,83,83,83,83,83,83,83, + 236,83,97,13,13,13,13,89,97,48, + 48,312,286,13,13,13,287,179,287,191, + 287,191,287,11,263,287,279,83,142,142, + 48,13,56,312,137,193,46,46,13,13, + 13,11,263,83,240,142,342,209,31,65, + 97,30,263,30,97,142,13,13,13,13, 13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13, - 13,13,180,12,13,13,13,266,276,82, - 13,249,34,13,218,179,78,276,31,78, - 276,82,12,13,183,13,218,231,264,131, - 13,249,309,218,82,93,13,199,13,133, - 13,157,13,13,13,13,200,13,283,155, - 157,157,192,108,283,116,186,74,47,218, - 88,249,13,12,229,82,152,93,74,74, - 174,174,174,174,13,13,42,169,169,169, - 177,118,13,249,302,180,169,169,13,319, - 231,218,319,92,180,249,122,218,249,13, - 211,13,244,91,180,13,200,13,13,200, - 290,290,242,13,290,157,157,218,162,213, - 82,13,13,13,78,78,218,249,110,266, - 67,13,282,180,249,249,249,249,14,14, - 13,218,249,13,249,122,82,157,13,251, - 13,13,116,191,302,169,169,218,276,218, - 92,218,283,12,180,229,72,218,74,13, - 13,80,80,210,311,244,249,180,200,74, - 200,249,213,249,315,218,13,249,218,143, - 157,169,311,106,13,23,270,82,249,12, - 93,218,189,78,319,319,124,218,19,13, - 174,266,153,13,13,249,249,169,17,177, - 249,74,249,249,93,231,169,276,13,13, - 162,218,218,56,56,180,283,37,13,13, - 122,17,74,74,309,21,218,13,200,13, - 200,157,163,174,200,143,85,95,276,23, - 140,72,163,169,159,244,249,13,13,319, - 252,27,104,13,110,14,74,131,153,218, - 17,249,27,218,231,294,218,157,74,13, - 99,13,169,270,56,56,206,37,122,74, - 283,114,71,218,271,17,74,13,149,157, - 270,249,85,13,319,13,249,276,249,189, - 157,13,189,252,157,157,47,19,249,131, - 17,74,157,285,218,13,13,13,294,299, - 244,163,74,74,276,169,270,13,13,78, - 112,319,122,114,13,60,218,200,249,157, - 218,95,12,14,218,13,249,157,249,249, - 218,122,294,285,294,294,294,203,13,13, - 13,62,62,169,276,220,319,78,78,12, - 13,60,200,124,249,17,249,186,186,211, - 122,294,218,244,294,218,13,13,12,319, - 319,247,104,218,285,244,47,47,12,12, - 249,60,122,13,47,13,62,13,26 + 13,13,202,12,13,212,194,170,13,13, + 13,13,13,13,13,13,13,13,334,295, + 263,13,97,99,13,261,201,87,295,113, + 87,295,263,12,13,175,13,261,179,332, + 142,13,97,310,261,263,71,13,246,13, + 146,13,21,13,13,13,13,247,13,164, + 19,21,21,220,38,164,131,110,83,342, + 261,126,97,13,12,61,263,230,71,83, + 83,250,250,250,250,13,13,286,287,287, + 287,287,297,11,13,83,83,83,83,83, + 83,83,83,83,83,83,83,83,83,83, + 83,83,83,83,83,250,83,48,191,191, + 191,133,96,13,97,320,202,191,191,13, + 338,179,261,338,70,202,97,36,261,97, + 13,254,13,329,69,202,13,247,13,13, + 247,266,266,327,13,266,21,21,261,184, + 256,263,13,13,13,87,87,261,97,23, + 334,65,13,163,202,97,97,97,97,227, + 227,263,83,13,13,13,13,13,13,13, + 13,13,13,13,13,261,97,13,97,36, + 263,21,13,233,13,13,131,219,320,191, + 191,261,295,261,70,261,164,12,202,61, + 81,261,83,13,13,46,46,253,312,329, + 97,202,247,83,247,97,256,97,316,261, + 13,97,261,92,21,191,312,144,13,27, + 289,263,97,12,71,261,129,87,338,338, + 44,261,118,13,250,334,231,13,13,97, + 97,70,97,83,191,124,133,97,83,97, + 97,71,179,191,295,13,13,184,261,261, + 116,116,202,164,73,13,13,36,124,83, + 83,310,25,261,13,247,13,247,21,185, + 250,247,92,181,120,295,27,209,81,185, + 191,276,329,97,13,13,338,234,31,135, + 13,23,227,83,142,231,202,261,124,97, + 31,261,179,14,261,21,83,13,40,13, + 191,289,116,116,166,73,36,83,164,102, + 80,261,290,124,83,13,270,21,289,97, + 181,13,338,13,97,295,97,129,21,13, + 129,234,21,21,342,118,97,142,124,83, + 21,305,261,13,13,13,14,273,329,185, + 83,83,295,191,289,13,13,87,94,338, + 36,102,13,78,261,247,97,21,261,120, + 12,227,261,13,97,21,97,97,261,36, + 14,305,14,14,14,178,13,13,13,157, + 157,191,295,153,338,87,87,12,13,78, + 247,44,97,124,97,110,110,254,36,14, + 261,329,14,261,13,13,12,338,338,341, + 135,261,305,329,342,342,12,12,97,78, + 36,13,342,13,157,13,30 }; }; public final static char nasb[] = Nasb.nasb; @@ -2643,39 +3057,41 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 3,13,10,9,164,189,162,132,161,160, - 5,2,0,4,102,0,71,0,153,0, - 100,99,40,67,70,5,10,9,2,0, - 44,1,0,217,32,0,166,0,4,211, - 0,5,10,9,2,13,4,54,0,5, - 2,9,10,151,0,117,0,191,0,138, - 0,115,0,124,78,0,78,150,149,0, - 86,107,44,10,9,2,13,5,0,90, - 0,2,53,0,44,173,0,4,193,0, - 124,2,78,0,182,5,181,0,207,0, - 4,190,0,123,0,200,0,218,0,155, - 0,209,0,175,0,169,0,32,187,0, - 4,86,0,174,0,13,2,9,10,5, - 91,0,13,2,9,10,5,220,0,4, - 37,0,172,0,4,45,124,0,4,194, - 0,2,126,0,4,45,46,0,40,78, - 0,96,4,5,10,9,2,67,40,0, - 51,44,195,4,45,0,185,0,53,2, - 3,0,4,54,45,44,61,0,147,0, - 46,5,2,9,10,4,171,0,86,45, - 51,79,44,4,0,5,109,208,0,32, - 100,99,67,5,2,9,10,4,0,5, - 109,178,0,5,10,9,2,13,107,106, - 44,0,32,99,100,4,0,4,54,212, - 0,45,197,28,4,0,54,4,32,0, - 40,111,0,2,5,132,128,129,130,148, - 13,92,0,100,99,40,5,70,0,4, - 5,10,9,2,67,23,0,5,10,9, - 13,3,1,0,127,4,51,77,0,4, - 54,110,0,4,51,77,87,0,40,1, - 0,4,51,77,109,49,5,0,28,4, - 5,40,96,0,54,4,196,0,2,69, - 0 + 3,13,10,9,149,204,148,121,147,146, + 4,2,0,5,52,90,100,0,5,44, + 47,0,172,0,108,107,37,73,82,4, + 10,9,2,0,5,99,0,234,0,222, + 0,206,0,186,0,98,0,4,10,9, + 2,13,138,5,0,4,10,9,2,13, + 117,43,116,0,84,167,166,0,141,2, + 84,0,178,0,5,226,0,156,0,99, + 117,43,10,9,2,13,4,0,141,84, + 0,184,0,224,0,202,32,0,233,32, + 0,187,0,4,2,9,10,168,0,43, + 63,0,43,1,0,131,0,170,0,194, + 4,193,0,61,0,5,208,0,164,0, + 181,0,200,0,140,0,13,2,9,10, + 4,103,0,215,0,13,2,9,10,4, + 236,0,4,123,190,0,129,0,4,10, + 9,13,3,1,0,4,123,223,0,13, + 2,9,10,4,64,44,63,5,43,0, + 43,185,0,105,5,4,10,9,2,73, + 37,0,32,107,108,5,0,5,205,0, + 53,2,3,0,5,64,227,0,5,33, + 0,149,228,148,121,147,146,0,47,4, + 2,9,10,5,183,0,5,111,0,2, + 143,0,37,125,0,5,44,141,0,5, + 52,43,44,210,0,99,43,52,91,5, + 44,0,32,108,107,73,4,2,9,10, + 5,0,2,53,0,5,64,124,0,5, + 209,0,37,1,0,37,84,0,2,4, + 121,118,119,120,165,13,78,0,5,4, + 10,9,2,73,27,0,121,78,13,118, + 119,120,198,0,144,5,52,90,0,31, + 5,4,37,105,0,64,5,211,0,5, + 52,90,123,50,4,0,44,212,31,5, + 0,108,107,37,4,82,0,2,81,0, + 32,5,64,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2683,19 +3099,19 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, - 118,119,2,31,51,129,130,13,84,120, - 10,9,105,48,49,53,57,65,73,79, + 118,119,2,31,51,129,130,13,84,10, + 9,120,105,48,49,53,57,65,73,79, 80,91,92,107,110,112,127,59,111,50, 109,52,69,71,75,78,81,88,94,103, - 117,11,12,125,98,7,8,14,60,66, - 72,89,93,95,99,102,104,114,115,116, - 128,58,68,96,106,82,131,108,19,100, - 126,1,63,83,123,30,44,20,101,33, - 124,113,54,55,61,62,64,74,76,77, - 90,97,70,17,18,32,6,4,15,16, - 21,22,23,24,25,26,27,28,45,46, - 56,85,86,87,5,29,34,35,36,37, - 38,39,40,41,42,43,122,3,132,67, + 117,11,12,7,8,14,125,60,66,72, + 89,93,95,98,99,102,104,114,115,116, + 128,58,68,96,106,19,82,100,131,108, + 1,126,44,63,83,123,20,30,101,33, + 124,113,17,18,54,55,61,62,64,74, + 76,77,90,97,70,21,22,32,6,23, + 24,25,26,27,4,15,16,28,29,34, + 35,36,37,38,39,40,41,42,43,45, + 46,56,85,86,87,5,122,3,132,67, 121 }; }; @@ -2704,29 +3120,31 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 139,144,145,0,0,143,0,0,239,245, + 139,144,145,0,0,143,0,0,247,253, 142,0,152,0,141,0,0,151,157,0, - 0,158,254,0,0,0,167,189,168,169, - 170,135,171,172,173,174,160,175,176,255, - 177,0,150,138,140,137,178,0,186,0, - 0,147,146,161,0,0,0,0,0,0, - 181,0,213,0,0,210,214,154,0,164, - 196,184,0,0,0,0,0,0,180,0, - 0,0,0,0,0,136,187,0,0,215, - 134,195,0,0,166,211,221,217,218,219, - 0,0,155,0,0,227,0,216,230,183, - 205,0,0,220,0,0,0,234,0,236, - 0,250,251,0,0,156,188,198,199,200, - 201,202,204,0,207,0,208,0,223,226, - 229,0,248,0,249,0,259,262,148,149, - 153,0,0,163,165,0,179,0,190,191, - 192,193,194,197,0,0,0,203,0,206, - 212,0,224,225,0,0,231,238,0,242, - 243,244,247,0,256,0,258,0,261,133, - 0,159,162,0,182,0,185,0,0,209, - 222,228,0,0,232,233,235,237,0,240, - 241,246,252,253,0,0,257,0,0,260, - 0,0,0,0 + 0,158,167,168,169,170,265,0,0,0, + 197,135,160,0,171,172,266,173,174,150, + 175,176,138,140,177,0,137,178,147,194, + 0,0,146,179,0,0,0,0,0,0, + 204,180,189,161,181,0,221,0,0,182, + 183,218,222,184,185,0,186,203,0,0, + 0,164,192,0,154,0,0,0,0,0, + 188,0,0,0,0,0,0,223,136,195, + 0,0,134,166,219,225,226,227,0,229, + 0,155,0,0,224,235,0,206,207,208, + 210,237,238,191,213,0,0,228,0,0, + 0,242,0,244,0,258,0,261,0,262, + 0,0,156,196,198,199,200,201,205,209, + 212,0,215,0,216,0,231,234,0,256, + 0,257,0,270,273,148,149,153,0,0, + 163,165,0,187,0,202,0,0,0,211, + 0,214,220,0,232,233,0,0,239,246, + 0,250,251,252,255,0,0,259,0,267, + 0,269,0,272,133,0,159,162,0,190, + 0,193,0,0,217,230,236,0,0,240, + 241,243,245,0,248,249,254,260,263,264, + 0,0,268,0,0,271,0,0,0,0, + 0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2734,21 +3152,21 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 246,410,698,717,399,428,649,665,676,687, - 495,354,368,385,448,114,379,515,553,254, - 706,600,92,123,143,152,157,162,217,282, - 441,456,461,67,231,360,374,624,99,231, - 505,461,725,99,304,335,7,39,63,75, - 86,133,148,178,466,484,488,571,593,645, - 735,739,743,169,79,169,533,549,562,580, - 637,188,188,316,406,562,656,672,683,694, - 294,611,19,31,60,128,128,243,309,13, - 128,330,351,13,13,128,492,590,597,243, - 128,758,1,13,54,182,470,537,577,1, - 128,197,391,470,197,197,418,524,264,418, - 24,24,45,176,45,45,45,45,575,747, - 754,24,24,49,325,747,754,137,543,224, - 176,325,176,340 + 261,425,719,738,414,443,670,686,697,708, + 497,369,383,400,461,129,394,517,555,269, + 727,621,94,107,138,158,167,172,177,232, + 297,456,467,94,589,67,246,375,389,645, + 114,246,507,94,746,114,319,350,7,39, + 63,75,86,101,148,163,193,101,486,490, + 573,614,666,756,760,764,184,79,184,535, + 551,564,582,601,658,203,203,331,421,564, + 677,693,704,715,309,632,19,31,60,143, + 143,258,324,13,143,345,366,13,13,143, + 494,611,618,258,143,779,1,13,54,197, + 472,539,579,1,594,143,212,406,472,212, + 212,433,526,279,433,24,24,45,45,191, + 45,45,45,45,577,768,775,24,24,49, + 340,768,775,152,545,239,191,340,191,355 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2756,21 +3174,21 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 90,222,43,43,222,222,43,43,43,43, - 502,222,167,222,454,120,365,521,559,260, - 139,606,97,97,97,131,131,167,222,287, - 446,446,454,72,236,365,173,629,110,239, - 510,712,730,104,298,298,11,43,43,43, - 90,43,131,167,446,167,167,222,333,43, - 43,43,333,756,83,173,502,502,502,584, - 629,192,206,320,394,566,660,660,660,660, - 298,615,22,22,43,131,131,43,43,312, - 314,333,43,11,11,314,167,43,333,43, - 622,43,4,16,57,185,473,540,57,587, - 641,192,394,632,200,211,435,527,267,421, - 29,37,47,167,476,478,480,482,167,749, - 749,26,34,51,327,751,751,139,545,226, - 289,320,274,342 + 90,237,43,43,237,237,43,43,43,43, + 504,237,182,237,99,135,380,523,561,275, + 154,627,99,112,112,112,146,146,182,237, + 302,105,105,99,43,72,251,380,188,650, + 125,254,512,733,751,119,313,313,11,43, + 43,43,90,105,43,146,182,105,182,182, + 237,348,43,43,43,348,777,83,188,504, + 504,504,586,605,650,207,221,335,409,568, + 681,681,681,681,313,636,22,22,43,146, + 146,43,43,327,329,348,43,11,11,329, + 182,43,348,43,643,43,4,16,57,200, + 475,542,57,608,597,662,207,409,653,215, + 226,450,529,282,436,29,37,47,92,182, + 478,480,482,484,182,770,770,26,34,51, + 342,772,772,154,547,241,304,335,289,357 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2778,21 +3196,21 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 49,130,18,18,76,130,18,18,18,18, - 82,89,50,76,129,74,58,82,81,49, - 18,20,3,7,8,178,178,177,128,49, - 129,129,131,24,106,59,50,151,144,106, - 82,18,18,144,101,62,72,148,184,146, - 85,181,178,177,131,198,56,61,155,18, - 18,18,18,12,123,177,82,81,81,42, - 151,141,141,70,76,81,18,18,18,18, - 101,20,118,137,17,182,178,200,99,108, - 64,90,63,171,72,131,83,156,155,191, - 151,17,18,72,80,177,131,110,80,22, - 151,141,76,151,141,141,130,82,49,130, - 118,137,189,177,163,162,161,160,73,149, - 53,118,137,220,70,149,53,181,110,128, - 49,70,49,62 + 50,120,18,18,89,120,18,18,18,18, + 94,102,51,89,119,87,58,94,93,50, + 18,20,198,3,7,8,190,190,189,118, + 50,119,119,150,54,28,116,59,51,168, + 161,116,94,18,18,161,109,66,83,165, + 199,163,97,198,193,190,189,150,213,56, + 63,172,18,18,18,18,12,140,189,94, + 93,93,76,46,168,122,122,82,89,93, + 18,18,18,18,109,20,132,155,17,194, + 190,215,107,115,68,98,67,183,83,150, + 95,173,172,206,168,17,18,83,92,189, + 150,124,92,22,54,168,122,89,168,122, + 122,120,94,50,120,132,155,204,228,189, + 176,148,147,146,86,166,53,132,155,236, + 82,166,53,193,124,118,50,82,50,66 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2800,21 +3218,21 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static char scopeLa[] = { - 111,81,75,75,81,81,75,75,75,75, - 75,81,44,81,1,78,1,75,130,71, - 3,75,78,78,78,1,1,44,81,71, - 1,1,1,75,81,1,1,4,78,77, - 44,1,1,78,75,75,1,75,75,75, - 111,75,1,44,1,44,44,81,127,75, - 75,75,127,1,75,1,75,75,75,76, - 4,1,1,11,71,75,78,78,78,78, - 75,3,6,6,75,1,1,75,75,3, - 1,127,75,1,1,1,44,75,127,75, - 8,75,75,6,76,1,45,80,76,75, - 1,1,71,45,1,1,71,82,79,1, - 1,1,27,44,1,63,62,62,44,4, - 4,1,1,96,12,4,4,3,1,71, - 1,11,1,3 + 122,81,76,76,81,81,76,76,76,76, + 76,81,47,81,1,77,1,76,130,72, + 3,76,1,77,77,77,1,1,47,81, + 72,1,1,1,76,76,81,1,1,4, + 77,73,47,1,1,77,76,76,1,76, + 76,76,122,1,76,1,47,1,47,47, + 81,127,76,76,76,127,1,76,1,76, + 76,76,78,78,4,1,1,10,72,76, + 77,77,77,77,76,3,6,6,76,1, + 1,76,76,3,1,127,76,1,1,1, + 47,76,127,76,8,76,76,6,78,1, + 54,80,78,76,77,1,1,72,54,1, + 1,72,82,79,1,1,1,27,1,47, + 1,63,62,62,47,4,4,1,1,98, + 11,4,4,3,1,72,1,10,1,3 }; }; public final static char scopeLa[] = ScopeLa.scopeLa; @@ -2822,21 +3240,21 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeStateSet { public final static char scopeStateSet[] = { - 98,148,331,331,40,148,331,331,331,331, - 111,42,98,40,148,40,100,111,111,98, - 331,331,258,302,302,9,9,37,148,98, - 148,148,148,152,124,100,98,131,5,124, - 111,331,331,5,140,57,63,148,54,1, - 111,12,9,37,148,96,100,237,25,331, - 331,331,331,306,18,37,111,111,111,369, - 131,148,148,197,40,111,331,331,331,331, - 140,331,73,28,331,12,9,23,140,142, - 57,136,57,78,63,148,111,15,25,134, - 131,331,331,63,111,37,148,32,111,336, - 131,148,40,131,148,148,148,111,98,148, - 73,28,149,37,149,149,149,149,84,81, - 213,73,28,406,197,81,213,12,32,148, - 98,197,98,57 + 101,181,377,377,40,181,377,377,377,377, + 114,42,101,40,181,40,103,114,114,101, + 377,377,81,302,348,348,9,9,37,181, + 101,181,181,177,134,187,127,103,101,159, + 5,127,114,377,377,5,168,57,63,177, + 54,1,114,81,12,9,37,177,99,103, + 280,25,377,377,377,377,352,18,37,114, + 114,114,142,443,159,181,181,239,40,114, + 377,377,377,377,168,377,73,28,377,12, + 9,23,168,170,57,164,57,78,63,177, + 114,15,25,162,159,377,377,63,114,37, + 177,32,114,382,134,159,181,40,159,181, + 181,181,114,101,181,73,28,184,82,37, + 184,183,183,183,87,84,255,73,28,476, + 239,84,255,12,32,181,101,239,101,57 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2844,82 +3262,85 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 199,3,0,135,227,0,171,227,135,0, - 210,0,227,135,0,255,210,0,249,171, - 0,255,0,171,0,234,255,0,234,0, - 203,171,0,184,255,0,184,0,199,3, - 27,0,135,0,295,0,262,0,226,0, - 32,166,0,351,84,0,30,180,0,192, - 3,0,347,3,316,0,346,3,3,6, - 0,135,135,0,345,3,70,0,344,3, - 111,0,135,181,0,135,192,79,0,225, - 0,273,135,69,133,0,20,0,314,135, - 69,45,0,20,58,0,33,141,0,20, - 58,0,0,314,135,69,45,208,0,20, - 187,0,273,135,69,141,0,200,136,0, - 150,0,233,3,313,0,313,0,2,0, - 135,0,273,135,69,140,0,200,136,240, - 0,200,136,31,240,0,200,136,340,31, - 0,137,209,184,136,0,137,0,209,184, - 136,0,143,137,0,182,0,336,135,182, - 0,135,182,0,232,137,0,184,335,263, - 0,145,0,0,0,0,335,263,0,146, - 145,0,0,0,0,144,0,0,0,0, - 146,144,0,0,0,0,334,135,175,272, - 0,136,0,272,0,138,0,0,136,0, - 333,135,175,238,0,136,0,0,44,136, - 0,0,168,3,0,135,304,303,135,79, - 302,182,0,303,135,79,302,182,0,224, - 0,225,0,302,182,0,101,0,0,224, - 0,225,0,212,101,0,0,224,0,225, - 0,303,135,302,182,0,224,0,212,0, - 0,224,0,243,135,3,0,135,0,0, - 0,0,0,243,135,3,230,0,239,3, - 0,217,0,155,0,196,184,136,0,10, - 0,0,0,0,196,0,9,0,0,226, - 72,0,134,0,243,135,3,194,0,194, - 0,2,0,0,135,0,0,0,0,0, - 203,3,0,256,135,175,41,34,0,200, - 136,66,68,0,205,137,0,137,200,136, - 300,68,0,200,136,300,68,0,200,136, - 80,132,66,0,256,135,175,265,66,0, - 265,66,0,138,0,0,136,0,256,135, - 175,265,242,66,0,265,242,66,0,297, - 298,135,175,132,330,63,0,330,63,0, - 139,138,0,0,0,136,0,297,298,135, - 175,330,63,0,138,0,0,0,136,0, - 200,136,296,63,0,144,0,209,200,136, - 296,263,0,145,0,200,136,296,263,0, - 209,184,136,13,0,184,136,13,0,184, - 136,0,98,145,0,201,0,200,0,199, - 0,198,0,289,135,159,0,289,135,182, - 0,176,91,0,325,177,327,328,3,88, - 0,135,180,0,327,328,3,88,0,137, - 0,135,180,0,176,3,82,210,87,0, - 135,137,0,210,87,0,113,2,140,135, - 137,0,241,3,82,0,203,185,0,33, - 178,0,185,0,184,33,178,0,241,3, - 92,0,210,163,241,3,90,0,67,180, - 0,241,3,90,0,135,180,67,180,0, - 326,135,175,0,176,0,226,84,0,176, - 116,172,0,30,178,0,135,158,0,233, - 3,0,226,72,286,0,176,72,0,199, - 3,322,74,136,0,135,0,0,0,0, - 322,74,136,0,2,154,135,0,0,0, - 0,156,0,134,45,184,136,0,31,156, - 0,98,145,31,156,0,234,200,136,0, - 155,31,156,0,176,3,57,0,176,3, - 78,199,69,49,0,199,69,49,0,20, - 2,140,135,0,176,3,78,199,69,52, - 0,199,69,52,0,176,3,78,199,69, - 54,0,199,69,54,0,176,3,78,199, - 69,50,0,199,69,50,0,233,3,134, - 209,184,136,13,0,134,209,184,136,13, - 0,145,2,0,135,0,233,3,133,255, - 184,136,13,0,255,184,136,13,0,144, - 2,0,135,0,233,3,144,0,233,3, - 149,0,176,72,149,0,281,0,31,0, - 31,148,0,183,0,143,0,176,3,0 + 216,3,0,135,235,0,168,236,136,0, + 218,0,236,136,0,266,218,0,263,168, + 0,266,0,168,0,242,266,0,242,0, + 214,168,0,192,266,0,192,0,216,3, + 27,0,135,0,280,0,273,0,235,0, + 32,166,0,367,86,0,30,188,0,194, + 3,0,363,3,331,0,362,3,3,6, + 0,135,135,0,361,3,68,0,360,3, + 122,0,135,189,0,136,194,79,0,233, + 0,259,0,215,184,135,13,0,145,0, + 184,135,13,0,144,0,290,136,66,133, + 0,20,0,326,136,66,54,0,20,58, + 0,33,141,0,20,58,0,0,326,136, + 66,54,221,0,20,195,0,290,136,66, + 141,0,212,135,0,150,0,242,3,325, + 0,325,0,2,0,135,0,290,136,66, + 140,0,212,135,254,0,212,135,31,254, + 0,212,135,355,31,0,137,215,184,135, + 0,137,0,215,184,135,0,143,137,0, + 183,0,351,136,183,0,136,183,0,240, + 137,0,184,350,252,0,145,0,0,0, + 0,350,252,0,146,145,0,0,0,0, + 144,0,0,0,0,146,144,0,0,0, + 0,349,136,174,253,0,136,0,253,0, + 138,0,0,136,0,348,136,174,248,0, + 136,0,0,44,136,0,0,164,3,0, + 136,316,315,136,79,314,183,0,315,136, + 79,314,183,0,232,0,233,0,314,183, + 0,101,0,0,232,0,233,0,220,101, + 0,0,232,0,233,0,315,136,314,183, + 0,232,0,220,0,0,232,0,257,136, + 3,0,135,0,0,0,0,0,257,136, + 3,238,0,246,3,0,225,0,155,0, + 200,184,135,0,10,0,0,0,0,200, + 0,9,0,0,235,71,0,134,0,257, + 136,3,198,0,198,0,2,0,0,135, + 0,0,0,0,0,214,3,0,273,136, + 174,41,34,0,212,135,67,70,0,213, + 137,0,137,212,135,312,70,0,212,135, + 312,70,0,212,135,80,132,67,0,273, + 136,174,283,67,0,283,67,0,138,0, + 0,136,0,273,136,174,283,256,67,0, + 283,256,67,0,309,310,136,174,132,345, + 63,0,345,63,0,139,138,0,0,0, + 136,0,309,310,136,174,345,63,0,138, + 0,0,0,136,0,212,135,308,63,0, + 215,212,135,308,252,0,212,135,308,252, + 0,184,135,0,98,145,0,209,0,208, + 0,207,0,206,0,306,136,162,0,306, + 136,183,0,175,93,0,340,178,342,343, + 3,90,0,135,188,0,342,343,3,90, + 0,137,0,135,188,0,175,3,82,222, + 89,0,135,137,0,222,89,0,113,2, + 140,135,137,0,255,3,82,0,214,195, + 0,33,178,0,195,0,192,33,178,0, + 255,3,94,0,222,163,255,3,92,0, + 67,188,0,255,3,92,0,135,188,67, + 188,0,341,136,174,0,175,0,235,86, + 0,175,109,206,0,30,186,0,157,77, + 185,3,0,185,3,0,20,170,135,0, + 175,109,176,0,30,178,0,135,158,0, + 242,3,0,235,71,303,0,175,71,0, + 216,3,337,75,135,0,135,0,0,0, + 0,337,75,135,0,2,154,135,0,0, + 0,0,156,0,134,54,184,135,0,31, + 156,0,98,145,31,156,0,243,212,135, + 0,155,31,156,0,175,3,57,0,175, + 3,77,216,66,48,0,216,66,48,0, + 20,2,140,135,0,175,3,77,216,66, + 51,0,216,66,51,0,175,3,77,216, + 66,53,0,216,66,53,0,175,3,77, + 216,66,49,0,216,66,49,0,242,3, + 134,215,184,135,13,0,134,215,184,135, + 13,0,145,2,0,135,0,242,3,133, + 272,184,135,13,0,272,184,135,13,0, + 144,2,0,135,0,242,3,144,0,242, + 3,149,0,175,71,149,0,298,0,31, + 0,31,148,0,180,0,143,0,175,3, + 0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2927,47 +3348,54 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 2038,1989,1019,0,5566,6280,4440,0,3910,3843, - 0,3215,1412,0,2380,662,0,2746,2304,1652, - 2185,0,1691,0,2073,1779,0,3366,3166,2774, - 0,6051,6244,6192,5634,0,5677,5960,0,5677, - 5960,5609,5941,5898,5863,5820,5785,5565,5742,5707, - 5530,5644,0,2029,2939,0,3813,4971,668,4871, - 3505,4942,4700,5143,3366,3166,5116,5536,3892,3577, - 2774,2850,3532,3456,3411,3009,0,3505,4942,0, - 1692,1103,0,4614,4552,4490,4428,4366,4304,4242, - 4180,4118,4056,3805,2845,4430,0,5677,5960,5609, - 5941,5898,5863,5820,5785,5565,5742,5707,5530,5644, - 4614,4552,4490,4428,4366,4304,4242,4180,4118,4056, - 3805,2845,0,1120,1228,1071,1833,990,4027,0, - 902,833,0,1018,0,2277,2241,1702,1166,668, - 4900,4700,3892,2850,4058,2938,0,4827,613,2805, - 0,3883,5551,3532,4962,3844,3456,5715,3305,5143, - 3813,3411,4867,2769,4491,3366,2764,3166,962,5748, - 5137,5116,3524,957,5531,3446,4542,3184,641,4862, - 4621,663,893,873,672,4827,4429,4367,725,3360, - 4373,3356,2931,4050,613,2805,4971,668,6038,3009, - 6047,4871,4311,4249,5906,2774,5979,4900,4615,4187, - 4054,0,6273,6262,6258,6225,6214,6202,6187,6181, - 6169,4856,6154,6142,6124,3829,3441,3273,3067,3269, - 5132,4863,4791,2822,1172,0,2771,2317,4614,4552, - 2412,1207,4490,4428,4366,4304,4242,4180,4118,1537, - 4056,3805,6085,2845,6053,3158,0,1741,1543,6273, - 6262,1432,1383,6258,948,6225,6214,6202,1917,6187, - 6181,2260,6169,1868,1819,4856,1671,1622,6154,1572, - 1523,6142,6124,1363,2701,3829,974,3441,2231,3273, - 3067,3269,1300,5132,4863,4827,4791,699,2805,2822, - 1172,2877,1481,1320,821,712,4700,3532,3456,5143, - 3813,3411,3366,4971,3166,668,3009,5116,4871,5536, - 3892,3505,3577,2774,2850,4942,2482,1049,902,833, - 5508,5486,5464,4768,3960,5441,4027,1183,2970,3130, - 3082,3332,3277,3234,3996,3920,3781,3749,3717,3685, - 3653,3600,5088,5065,5042,4804,4713,5418,5395,5372, - 5349,5326,5303,5280,5257,5234,5211,5007,2721,2678, - 1549,2433,1120,2630,2587,2539,1228,1500,1438,1277, - 2496,1389,1071,994,2384,2335,2237,925,847,778, - 2188,2139,2090,2041,1992,1943,1894,1845,1796,1747, - 1698,613,1648,1599,1340,2280,0 + 1722,1344,1184,0,7439,4948,4903,0,2415,3374, + 0,2210,1543,0,1941,1510,0,2681,981,2322, + 813,0,2371,0,1614,731,0,4864,4544,3972, + 0,7078,6882,6204,5735,0,7311,7110,0,7311, + 7110,6878,7170,7154,7093,7077,7016,6806,7000,6939, + 6732,722,0,844,2209,0,4993,5269,733,4105, + 4843,7273,6335,6559,4864,4544,6475,6951,5564,5742, + 3972,5520,5045,4961,4877,4261,0,4843,7273,0, + 6725,4778,0,1499,995,0,6329,6262,6195,6128, + 6061,5994,5927,5860,5793,5726,5328,5261,7218,0, + 7311,7110,6878,7170,7154,7093,7077,7016,6806,7000, + 6939,6732,722,6329,6262,6195,6128,6061,5994,5927, + 5860,5793,5726,5328,5261,0,1234,1300,1179,3510, + 721,877,0,3943,4232,4515,4401,4809,4649,4622, + 3519,3392,1094,3314,3236,3158,3080,3002,2924,2846, + 2768,2690,2612,2533,1016,926,848,0,1570,1401, + 0,784,0,2172,1423,1059,814,733,7297,6335, + 5564,5520,4687,3986,3450,0,6434,671,4019,0, + 6725,6434,4778,671,4019,0,3186,5834,5045,5616, + 3108,4961,6368,3030,6559,4993,4877,5340,6382,5302, + 4864,2952,4544,2874,4309,7536,6475,798,2796,7515, + 7511,4955,7323,7008,6945,6873,4679,6725,7208,6983, + 6428,6271,5577,2718,2640,2561,4778,6434,6137,6070, + 5767,5581,4683,5008,4007,4043,671,4019,5269,733, + 7263,4261,6002,4105,5935,5868,5585,3972,6743,7297, + 6203,5801,5734,0,7527,7522,7507,7465,7445,7440, + 7435,7423,7411,7532,6580,7380,7369,7335,6141,6074, + 6007,4026,5940,7306,6728,6364,5873,5599,0,2018, + 1969,6329,6262,3831,3830,6195,6128,6061,5994,5927, + 5860,5793,1451,5726,5328,6855,3519,5261,6764,723, + 0,3380,3302,7527,7522,3224,2599,7507,2427,7465, + 7445,1815,7440,1766,7435,7423,4050,7411,1712,1617, + 7532,6580,1565,1445,7380,1379,1261,7369,7335,1206, + 4919,6141,2423,6074,794,6007,4026,5940,1011,7306, + 6728,6434,6364,914,4019,5873,5599,4274,4143,1283, + 1066,1045,6335,5045,4961,6559,4993,4877,4864,5269, + 4544,733,4261,6475,4105,6951,5564,4843,5742,3972, + 5520,7273,3584,3568,1570,1401,6703,6681,6659,6637, + 5392,3392,5533,1094,3943,3314,3236,3158,3080,3002, + 2924,2846,2768,2690,2612,2533,4232,4515,4401,4809, + 4649,4622,5493,5466,5428,6594,3519,877,1016,926, + 848,3896,4190,4476,4361,4751,4721,4583,5700,5674, + 5234,5207,5180,5150,5123,4428,2719,2641,2562,1123, + 955,6515,4304,3421,3343,3265,3187,3109,3031,2953, + 2875,2797,3844,3797,1636,3470,1234,3745,3698,3646, + 1300,1587,1516,1352,3599,1467,1179,2484,2435,2328, + 2279,2230,2181,2132,2083,2034,1985,1936,1887,1838, + 1788,671,1739,1685,1418,2375,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2975,68 +3403,74 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,321,135,288,57,49,52,54,50,13, - 144,133,140,9,141,4,3,136,27,61, - 53,48,8,43,42,11,12,47,46,149, - 158,161,160,164,162,166,165,169,167,170, - 70,172,77,3,69,69,69,69,136,3, - 69,69,185,135,72,3,73,74,69,8, - 192,199,176,185,135,175,73,74,184,183, - 133,3,132,134,115,128,3,72,97,98, - 43,42,100,99,11,110,109,102,101,78, - 69,94,95,12,104,103,106,105,107,126, - 125,124,123,122,121,120,119,118,117,80, - 116,108,176,199,199,199,199,184,233,135, - 135,135,290,6,7,5,291,272,292,263, - 293,63,294,13,136,320,295,27,72,72, - 135,133,163,135,72,3,231,230,144,134, - 133,13,136,27,135,72,322,3,209,4, - 199,45,136,45,233,176,160,160,158,158, - 158,162,162,162,162,162,162,161,161,165, - 164,164,167,166,169,255,176,170,78,78, - 78,78,209,255,273,276,273,227,171,136, - 196,3,3,3,175,335,296,171,330,296, - 171,136,200,184,3,273,175,238,227,226, - 172,239,135,3,136,184,150,326,86,84, - 1,176,10,92,90,88,87,82,89,91, - 85,83,182,5,66,68,79,222,3,323, - 185,168,281,209,163,136,200,184,76,76, - 3,3,3,3,134,133,77,184,12,11, - 3,348,1,41,135,184,246,134,133,136, - 132,175,136,184,45,199,135,175,243,244, - 159,245,135,184,45,10,76,351,226,76, - 3,3,3,210,3,132,176,302,135,3, - 136,194,349,132,66,300,192,199,135,135, - 4,234,8,45,176,176,176,176,3,3, - 196,196,346,316,3,334,136,180,240,66, - 45,208,68,182,337,134,133,247,171,247, - 200,175,135,200,209,163,135,163,80,239, - 203,198,194,3,135,77,243,209,76,96, - 76,241,185,241,328,159,82,241,79,135, - 289,203,135,268,301,227,171,136,203,200, - 184,3,3,80,136,136,135,163,283,286, - 72,201,4,132,134,233,233,11,135,77, - 163,3,41,1,184,265,242,171,69,45, - 135,247,247,135,135,209,135,298,132,299, - 333,135,80,80,135,227,163,134,163,203, - 163,327,135,3,163,135,303,76,171,227, - 3,80,77,203,184,135,350,41,278,136, - 200,200,305,111,135,3,72,176,4,196, - 202,347,209,175,265,78,69,336,76,251, - 203,133,249,171,135,135,76,298,297,80, - 77,217,77,235,171,135,80,210,177,289, - 171,176,303,312,136,313,168,171,243,76, - 163,3,77,200,242,137,3,283,233,226, - 135,77,137,135,175,36,39,34,45,66, - 135,77,76,80,171,249,171,154,339,240, - 31,136,297,217,10,135,235,130,325,163, - 304,77,200,3,163,11,1,242,96,344, - 185,256,258,135,45,45,45,41,132,314, - 45,13,62,249,171,77,136,31,340,200, - 70,135,163,135,233,135,1,163,163,135, - 256,135,175,77,78,69,246,246,200,136, - 136,3,305,235,135,135,80,80,200,200, - 345,135,256,314,77,78,62,246,80 + 0,336,136,305,57,48,51,53,49,13, + 144,133,140,9,141,4,3,135,27,61, + 52,46,8,43,42,10,11,45,44,149, + 154,156,155,166,157,169,167,172,170,173, + 68,176,73,3,66,66,66,66,135,3, + 66,66,195,136,71,3,74,75,66,8, + 194,216,175,195,136,174,74,75,184,180, + 133,3,132,134,126,128,3,71,99,105, + 43,42,107,106,10,121,120,97,96,77, + 66,83,84,11,101,100,103,102,104,119, + 118,117,116,115,114,113,112,111,110,80, + 109,108,175,216,216,216,216,184,242,136, + 136,136,276,6,7,5,277,253,278,252, + 279,63,307,13,135,335,280,27,71,71, + 136,133,163,136,71,3,239,238,144,134, + 133,13,135,27,136,71,337,3,215,4, + 216,54,135,54,242,175,155,155,154,154, + 154,157,157,157,157,157,157,156,156,167, + 166,166,170,169,172,272,175,173,77,77, + 77,77,215,272,290,136,269,3,185,157, + 196,193,202,201,205,206,293,290,236,168, + 135,200,3,3,3,174,350,308,168,345, + 308,168,135,212,184,3,290,174,248,236, + 235,176,246,136,3,135,184,150,341,88, + 86,1,175,12,94,92,90,89,82,91, + 93,87,85,183,5,67,70,79,234,3, + 338,195,164,298,215,163,135,212,184,78, + 78,3,3,3,3,134,133,276,277,278, + 279,359,280,13,185,97,96,66,11,101, + 100,103,102,104,119,118,117,116,115,114, + 113,112,111,110,80,109,108,73,184,11, + 10,3,364,1,41,136,184,260,134,133, + 135,132,174,135,184,54,216,136,174,257, + 258,162,259,136,184,54,12,78,367,235, + 78,3,3,3,222,3,132,175,314,136, + 3,135,198,365,132,67,312,194,216,136, + 136,4,243,8,54,175,175,175,175,3, + 3,135,77,157,157,157,193,185,185,201, + 196,202,175,205,200,200,362,331,3,349, + 135,181,254,67,54,221,70,183,352,134, + 133,261,168,261,212,174,136,212,215,163, + 136,163,80,246,214,204,198,3,136,73, + 257,215,78,98,78,255,195,255,343,162, + 82,255,79,136,306,214,136,286,313,236, + 168,135,214,212,184,3,3,80,135,135, + 136,163,300,303,71,213,4,132,134,242, + 242,184,157,78,10,136,73,163,3,41, + 1,184,283,256,168,66,54,136,261,261, + 136,136,215,136,310,132,311,348,136,80, + 80,136,236,163,134,163,214,163,342,136, + 3,163,136,315,78,168,236,3,80,73, + 214,184,136,366,41,295,135,212,212,317, + 122,136,3,71,175,4,215,200,192,363, + 215,174,283,77,66,351,78,265,214,133, + 263,168,136,136,78,310,309,80,73,230, + 73,244,168,136,80,222,178,306,168,175, + 315,324,135,325,164,168,257,78,163,3, + 73,212,256,137,3,300,242,235,136,73, + 137,136,174,36,39,34,54,67,136,73, + 78,80,168,263,168,158,354,254,31,135, + 309,230,12,136,244,130,340,163,316,73, + 212,3,163,10,1,256,98,360,195,273, + 275,136,54,54,54,41,132,326,54,13, + 62,263,168,73,135,31,355,212,68,136, + 163,136,242,136,1,163,163,136,273,136, + 174,73,77,66,260,260,212,135,135,3, + 317,244,136,136,80,80,212,212,361,136, + 273,326,73,77,62,260,80 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -3225,6 +3659,20 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "logical_and_expression", "logical_or_expression", "assignment_expression", + "relational_expression_inTempla" + + "te", + "equality_expression_inTemplate", + "and_expression_inTemplate", + "exclusive_or_expression_inTemp" + + "late", + "inclusive_or_expression_inTemp" + + "late", + "logical_and_expression_inTempl" + + "ate", + "logical_or_expression_inTempla" + + "te", + "assignment_expression_inTempla" + + "te", "expression_list_actual", "statement", "compound_statement", @@ -3301,6 +3749,10 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "template_parameter", "template_argument_list", "template_argument", + "type_name_specifier_inTemplate", + "type_name_declaration_specifie" + + "rs_inTemplate", + "type_specifier_seq_inTemplate", "handler", "exception_declaration", "type_id_list", @@ -3320,10 +3772,10 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 67, - SCOPE_UBOUND = 143, - SCOPE_SIZE = 144, - MAX_NAME_LENGTH = 37; + ERROR_SYMBOL = 69, + SCOPE_UBOUND = 149, + SCOPE_SIZE = 150, + MAX_NAME_LENGTH = 43; public final int getErrorSymbol() { return ERROR_SYMBOL; } public final int getScopeUbound() { return SCOPE_UBOUND; } @@ -3331,20 +3783,20 @@ public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 619, + NUM_STATES = 677, NT_OFFSET = 131, - LA_STATE_OFFSET = 7892, + LA_STATE_OFFSET = 9323, MAX_LA = 2147483647, - NUM_RULES = 612, - NUM_NONTERMINALS = 224, - NUM_SYMBOLS = 355, + NUM_RULES = 670, + NUM_NONTERMINALS = 245, + NUM_SYMBOLS = 376, SEGMENT_SIZE = 8192, - START_STATE = 1495, + START_STATE = 4025, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 129, EOLT_SYMBOL = 129, - ACCEPT_ACTION = 6426, - ERROR_ACTION = 7280; + ACCEPT_ACTION = 7679, + ERROR_ACTION = 8653; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java index e00b6999b46..405e64d44e3 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java @@ -21,53 +21,53 @@ public interface GPPSizeofExpressionParsersym { TK_asm = 5, TK_auto = 32, TK_bool = 16, - TK_break = 83, - TK_case = 84, - TK_catch = 111, + TK_break = 85, + TK_case = 86, + TK_catch = 122, TK_char = 17, TK_class = 62, TK_const = 28, - TK_const_cast = 49, - TK_continue = 85, - TK_default = 86, - TK_delete = 73, - TK_do = 87, + TK_const_cast = 48, + TK_continue = 87, + TK_default = 88, + TK_delete = 74, + TK_do = 89, TK_double = 18, - TK_dynamic_cast = 50, + TK_dynamic_cast = 49, TK_else = 130, TK_enum = 63, TK_explicit = 33, - TK_export = 93, + TK_export = 95, TK_extern = 34, - TK_false = 51, + TK_false = 50, TK_float = 19, - TK_for = 88, + TK_for = 90, TK_friend = 35, - TK_goto = 89, - TK_if = 90, + TK_goto = 91, + TK_if = 92, TK_inline = 36, TK_int = 20, TK_long = 21, TK_mutable = 37, - TK_namespace = 66, - TK_new = 74, + TK_namespace = 67, + TK_new = 75, TK_operator = 9, - TK_private = 112, - TK_protected = 113, - TK_public = 114, + TK_private = 123, + TK_protected = 124, + TK_public = 125, TK_register = 38, - TK_reinterpret_cast = 52, - TK_return = 91, + TK_reinterpret_cast = 51, + TK_return = 93, TK_short = 22, TK_signed = 23, - TK_sizeof = 53, + TK_sizeof = 52, TK_static = 39, - TK_static_cast = 54, + TK_static_cast = 53, TK_struct = 64, - TK_switch = 92, - TK_template = 45, + TK_switch = 94, + TK_template = 54, TK_this = 55, - TK_throw = 70, + TK_throw = 68, TK_try = 79, TK_true = 56, TK_typedef = 40, @@ -75,7 +75,7 @@ public interface GPPSizeofExpressionParsersym { TK_typename = 13, TK_union = 65, TK_unsigned = 24, - TK_using = 68, + TK_using = 70, TK_virtual = 31, TK_void = 25, TK_volatile = 29, @@ -87,64 +87,64 @@ public interface GPPSizeofExpressionParsersym { TK_stringlit = 41, TK_identifier = 1, TK_Completion = 2, - TK_EndOfCompletion = 10, + TK_EndOfCompletion = 12, TK_Invalid = 131, - TK_LeftBracket = 72, + TK_LeftBracket = 71, TK_LeftParen = 3, TK_Dot = 128, - TK_DotStar = 98, - TK_Arrow = 115, - TK_ArrowStar = 97, - TK_PlusPlus = 46, - TK_MinusMinus = 47, - TK_And = 12, - TK_Star = 11, + TK_DotStar = 105, + TK_Arrow = 126, + TK_ArrowStar = 99, + TK_PlusPlus = 44, + TK_MinusMinus = 45, + TK_And = 11, + TK_Star = 10, TK_Plus = 42, TK_Minus = 43, TK_Tilde = 8, - TK_Bang = 48, - TK_Slash = 99, - TK_Percent = 100, - TK_RightShift = 94, - TK_LeftShift = 95, - TK_LT = 69, - TK_GT = 78, - TK_LE = 101, - TK_GE = 102, - TK_EQ = 103, - TK_NE = 104, - TK_Caret = 105, - TK_Or = 106, - TK_AndAnd = 107, + TK_Bang = 46, + TK_Slash = 106, + TK_Percent = 107, + TK_RightShift = 83, + TK_LeftShift = 84, + TK_LT = 66, + TK_GT = 77, + TK_LE = 96, + TK_GE = 97, + TK_EQ = 100, + TK_NE = 101, + TK_Caret = 102, + TK_Or = 103, + TK_AndAnd = 104, TK_OrOr = 108, - TK_Question = 116, - TK_Colon = 76, + TK_Question = 109, + TK_Colon = 78, TK_ColonColon = 4, - TK_DotDotDot = 96, + TK_DotDotDot = 98, TK_Assign = 80, - TK_StarAssign = 117, - TK_SlashAssign = 118, - TK_PercentAssign = 119, - TK_PlusAssign = 120, - TK_MinusAssign = 121, - TK_RightShiftAssign = 122, - TK_LeftShiftAssign = 123, - TK_AndAssign = 124, - TK_CaretAssign = 125, - TK_OrAssign = 126, - TK_Comma = 77, + TK_StarAssign = 110, + TK_SlashAssign = 111, + TK_PercentAssign = 112, + TK_PlusAssign = 113, + TK_MinusAssign = 114, + TK_RightShiftAssign = 115, + TK_LeftShiftAssign = 116, + TK_AndAssign = 117, + TK_CaretAssign = 118, + TK_OrAssign = 119, + TK_Comma = 73, TK_RightBracket = 127, - TK_RightParen = 75, + TK_RightParen = 76, TK_RightBrace = 81, - TK_SemiColon = 44, - TK_LeftBrace = 71, + TK_SemiColon = 47, + TK_LeftBrace = 72, TK_typeof = 27, TK___alignof__ = 61, TK___attribute__ = 6, TK___declspec = 7, - TK_MAX = 109, - TK_MIN = 110, - TK_ERROR_TOKEN = 67, + TK_MAX = 120, + TK_MIN = 121, + TK_ERROR_TOKEN = 69, TK_EOF_TOKEN = 129; public final static String orderedTerminalSymbols[] = { @@ -158,9 +158,9 @@ public interface GPPSizeofExpressionParsersym { "__declspec", "Tilde", "operator", - "EndOfCompletion", "Star", "And", + "EndOfCompletion", "typename", "_Complex", "_Imaginary", @@ -192,17 +192,17 @@ public interface GPPSizeofExpressionParsersym { "stringlit", "Plus", "Minus", - "SemiColon", - "template", "PlusPlus", "MinusMinus", "Bang", + "SemiColon", "const_cast", "dynamic_cast", "false", "reinterpret_cast", "sizeof", "static_cast", + "template", "this", "true", "typeid", @@ -214,23 +214,25 @@ public interface GPPSizeofExpressionParsersym { "enum", "struct", "union", + "LT", "namespace", + "throw", "ERROR_TOKEN", "using", - "LT", - "throw", - "LeftBrace", "LeftBracket", + "LeftBrace", + "Comma", "delete", "new", "RightParen", - "Colon", - "Comma", "GT", + "Colon", "try", "Assign", "RightBrace", "while", + "RightShift", + "LeftShift", "break", "case", "continue", @@ -242,28 +244,19 @@ public interface GPPSizeofExpressionParsersym { "return", "switch", "export", - "RightShift", - "LeftShift", - "DotDotDot", - "ArrowStar", - "DotStar", - "Slash", - "Percent", "LE", "GE", + "DotDotDot", + "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd", + "DotStar", + "Slash", + "Percent", "OrOr", - "MAX", - "MIN", - "catch", - "private", - "protected", - "public", - "Arrow", "Question", "StarAssign", "SlashAssign", @@ -275,6 +268,13 @@ public interface GPPSizeofExpressionParsersym { "AndAssign", "CaretAssign", "OrAssign", + "MAX", + "MIN", + "catch", + "private", + "protected", + "public", + "Arrow", "RightBracket", "Dot", "EOF_TOKEN", diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/parserBuild.properties b/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/parserBuild.properties index 5e32a2dcf93..f3f5c9202dc 100644 --- a/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/parserBuild.properties +++ b/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/parserBuild.properties @@ -10,5 +10,5 @@ ############################################################################### lpg_exe=D:/lpg/lpgdistribution/lpgexe/lpg.exe -lpg_template=D:/newWorkspace/cdt_70_ies/org.eclipse.cdt.core.lrparser/grammar/template -lpg_include_loc=D:/newWorkspace/cdt_70_ies/org.eclipse.cdt.core.lrparser/grammar \ No newline at end of file +lpg_template=D:/newWorkspace/rdp80_dev/org.eclipse.cdt.core.lrparser/grammar/template +lpg_include_loc=D:/newWorkspace/rdp80_dev/org.eclipse.cdt.core.lrparser/grammar \ No newline at end of file diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java index efe4fb3ec56..00f937f6d4d 100644 --- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java +++ b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java @@ -808,1341 +808,1569 @@ private GNUBuildASTParserAction gnuAction; } // - // Rule 141: throw_expression ::= throw + // Rule 142: relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression // - case 141: { action. consumeExpressionThrow(false); break; + case 142: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 142: throw_expression ::= throw assignment_expression + // Rule 143: relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression ) // - case 142: { action. consumeExpressionThrow(true); break; + case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 145: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 144: relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression // - case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 146: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 145: relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression // - case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 147: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 147: equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate // - case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 148: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 148: equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate // - case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 149: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 150: and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate // - case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 150: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 152: exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate // - case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 151: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 154: inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate // - case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 152: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 156: logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate // - case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 156: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 153: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 158: logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate // - case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 158: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 154: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 160: conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate // - case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 160: { action. consumeExpressionConditional(); break; } // - // Rule 155: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 163: assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate // - case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 163: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 157: expression_list ::= expression_list_actual + // Rule 164: assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate // - case 157: { action. consumeExpressionList(); break; + case 164: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 161: expression_list_opt ::= $Empty + // Rule 165: assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate // - case 161: { action. consumeEmpty(); break; + case 165: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 163: expression_opt ::= $Empty + // Rule 166: assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate // - case 163: { action. consumeEmpty(); break; + case 166: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 166: constant_expression_opt ::= $Empty + // Rule 167: assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate // - case 166: { action. consumeEmpty(); break; + case 167: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 175: statement ::= ERROR_TOKEN + // Rule 168: assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate // - case 175: { action. consumeStatementProblem(); break; + case 168: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 176: labeled_statement ::= identifier : statement + // Rule 169: assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate // - case 176: { action. consumeStatementLabeled(); break; + case 169: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 177: labeled_statement ::= case constant_expression : statement + // Rule 170: assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate // - case 177: { action. consumeStatementCase(); break; + case 170: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 178: labeled_statement ::= default : statement + // Rule 171: assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate // - case 178: { action. consumeStatementDefault(); break; + case 171: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 179: expression_statement ::= expression ; + // Rule 172: assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate // - case 179: { action. consumeStatementExpression(); break; + case 172: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 180: expression_statement ::= ; + // Rule 173: assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate // - case 180: { action. consumeStatementNull(); break; + case 173: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 181: compound_statement ::= { statement_seq } + // Rule 174: throw_expression ::= throw // - case 181: { action. consumeStatementCompoundStatement(true); break; + case 174: { action. consumeExpressionThrow(false); break; } // - // Rule 182: compound_statement ::= { } + // Rule 175: throw_expression ::= throw assignment_expression // - case 182: { action. consumeStatementCompoundStatement(false); break; + case 175: { action. consumeExpressionThrow(true); break; } // - // Rule 185: selection_statement ::= if ( condition ) statement + // Rule 178: assignment_expression ::= logical_or_expression = assignment_expression // - case 185: { action. consumeStatementIf(false); break; + case 178: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 186: selection_statement ::= if ( condition ) statement else statement + // Rule 179: assignment_expression ::= logical_or_expression *= assignment_expression // - case 186: { action. consumeStatementIf(true); break; + case 179: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 187: selection_statement ::= switch ( condition ) statement + // Rule 180: assignment_expression ::= logical_or_expression /= assignment_expression // - case 187: { action. consumeStatementSwitch(); break; + case 180: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 189: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 181: assignment_expression ::= logical_or_expression %= assignment_expression // - case 189: { action. consumeConditionDeclaration(); break; + case 181: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 191: condition_opt ::= $Empty + // Rule 182: assignment_expression ::= logical_or_expression += assignment_expression // - case 191: { action. consumeEmpty(); break; + case 182: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 192: iteration_statement ::= while ( condition ) statement + // Rule 183: assignment_expression ::= logical_or_expression -= assignment_expression // - case 192: { action. consumeStatementWhileLoop(); break; + case 183: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 193: iteration_statement ::= do statement while ( expression ) ; + // Rule 184: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 193: { action. consumeStatementDoLoop(true); break; + case 184: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 194: iteration_statement ::= do statement + // Rule 185: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 194: { action. consumeStatementDoLoop(false); break; + case 185: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 186: assignment_expression ::= logical_or_expression &= assignment_expression // - case 195: { action. consumeStatementForLoop(); break; + case 186: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 197: for_init_statement ::= simple_declaration_with_declspec + // Rule 187: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 197: { action. consumeStatementDeclaration(); break; + case 187: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 198: jump_statement ::= break ; + // Rule 188: assignment_expression ::= logical_or_expression |= assignment_expression // - case 198: { action. consumeStatementBreak(); break; + case 188: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 199: jump_statement ::= continue ; + // Rule 190: expression_list ::= expression_list_actual // - case 199: { action. consumeStatementContinue(); break; + case 190: { action. consumeExpressionList(); break; } // - // Rule 200: jump_statement ::= return expression ; + // Rule 194: expression_list_opt ::= $Empty // - case 200: { action. consumeStatementReturn(true); break; + case 194: { action. consumeEmpty(); break; } // - // Rule 201: jump_statement ::= return ; + // Rule 196: expression_opt ::= $Empty // - case 201: { action. consumeStatementReturn(false); break; + case 196: { action. consumeEmpty(); break; } // - // Rule 202: jump_statement ::= goto identifier_token ; + // Rule 199: constant_expression_opt ::= $Empty // - case 202: { action. consumeStatementGoto(); break; + case 199: { action. consumeEmpty(); break; } // - // Rule 203: declaration_statement ::= block_declaration + // Rule 208: statement ::= ERROR_TOKEN // - case 203: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 208: { action. consumeStatementProblem(); break; } // - // Rule 204: declaration_statement ::= function_definition + // Rule 209: labeled_statement ::= identifier : statement // - case 204: { action. consumeStatementDeclaration(); break; + case 209: { action. consumeStatementLabeled(); break; } // - // Rule 212: declaration ::= ERROR_TOKEN + // Rule 210: labeled_statement ::= case constant_expression : statement // - case 212: { action. consumeDeclarationProblem(); break; + case 210: { action. consumeStatementCase(); break; } // - // Rule 222: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 211: labeled_statement ::= default : statement // - case 222: { action. consumeDeclarationSimple(true); break; + case 211: { action. consumeStatementDefault(); break; } // - // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // Rule 212: expression_statement ::= expression ; // - case 223: { action. consumeDeclarationSimple(true); break; + case 212: { action. consumeStatementExpression(); break; } // - // Rule 224: declaration_specifiers ::= simple_declaration_specifiers + // Rule 213: expression_statement ::= ; // - case 224: { action. consumeDeclarationSpecifiersSimple(); break; + case 213: { action. consumeStatementNull(); break; } // - // Rule 225: declaration_specifiers ::= class_declaration_specifiers + // Rule 214: compound_statement ::= { statement_seq } // - case 225: { action. consumeDeclarationSpecifiersComposite(); break; + case 214: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 226: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 215: compound_statement ::= { } // - case 226: { action. consumeDeclarationSpecifiersComposite(); break; + case 215: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 227: declaration_specifiers ::= enum_declaration_specifiers + // Rule 218: selection_statement ::= if ( condition ) statement // - case 227: { action. consumeDeclarationSpecifiersComposite(); break; + case 218: { action. consumeStatementIf(false); break; } // - // Rule 228: declaration_specifiers ::= type_name_declaration_specifiers + // Rule 219: selection_statement ::= if ( condition ) statement else statement // - case 228: { action. consumeDeclarationSpecifiersTypeName(); break; + case 219: { action. consumeStatementIf(true); break; } // - // Rule 230: declaration_specifiers_opt ::= $Empty + // Rule 220: selection_statement ::= switch ( condition ) statement // - case 230: { action. consumeEmpty(); break; + case 220: { action. consumeStatementSwitch(); break; } // - // Rule 234: no_type_declaration_specifier ::= friend + // Rule 222: condition ::= type_specifier_seq declarator = assignment_expression // - case 234: { action. consumeToken(); break; + case 222: { action. consumeConditionDeclaration(); break; } // - // Rule 235: no_type_declaration_specifier ::= typedef + // Rule 224: condition_opt ::= $Empty // - case 235: { action. consumeToken(); break; + case 224: { action. consumeEmpty(); break; } // - // Rule 255: storage_class_specifier ::= auto + // Rule 225: iteration_statement ::= while ( condition ) statement // - case 255: { action. consumeToken(); break; + case 225: { action. consumeStatementWhileLoop(); break; } // - // Rule 256: storage_class_specifier ::= register + // Rule 226: iteration_statement ::= do statement while ( expression ) ; // - case 256: { action. consumeToken(); break; + case 226: { action. consumeStatementDoLoop(true); break; } // - // Rule 257: storage_class_specifier ::= static + // Rule 227: iteration_statement ::= do statement // - case 257: { action. consumeToken(); break; + case 227: { action. consumeStatementDoLoop(false); break; } // - // Rule 258: storage_class_specifier ::= extern + // Rule 228: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 258: { action. consumeToken(); break; + case 228: { action. consumeStatementForLoop(); break; } // - // Rule 259: storage_class_specifier ::= mutable + // Rule 230: for_init_statement ::= simple_declaration_with_declspec // - case 259: { action. consumeToken(); break; + case 230: { action. consumeStatementDeclaration(); break; } // - // Rule 260: function_specifier ::= inline + // Rule 231: jump_statement ::= break ; // - case 260: { action. consumeToken(); break; + case 231: { action. consumeStatementBreak(); break; } // - // Rule 261: function_specifier ::= virtual + // Rule 232: jump_statement ::= continue ; // - case 261: { action. consumeToken(); break; + case 232: { action. consumeStatementContinue(); break; } // - // Rule 262: function_specifier ::= explicit + // Rule 233: jump_statement ::= return expression ; // - case 262: { action. consumeToken(); break; + case 233: { action. consumeStatementReturn(true); break; } // - // Rule 263: simple_type_specifier ::= simple_type_specifier_token + // Rule 234: jump_statement ::= return ; // - case 263: { action. consumeToken(); break; + case 234: { action. consumeStatementReturn(false); break; } // - // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 235: jump_statement ::= goto identifier_token ; // - case 277: { action. consumeQualifiedId(false); break; + case 235: { action. consumeStatementGoto(); break; } // - // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 236: declaration_statement ::= block_declaration // - case 278: { action. consumeQualifiedId(false); break; + case 236: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 237: declaration_statement ::= function_definition // - case 279: { action. consumeQualifiedId(false); break; + case 237: { action. consumeStatementDeclaration(); break; } // - // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 245: declaration ::= ERROR_TOKEN // - case 280: { action. consumeQualifiedId(true); break; + case 245: { action. consumeDeclarationProblem(); break; } // - // Rule 282: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 255: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; // - case 282: { action. consumeTypeSpecifierElaborated(false); break; + case 255: { action. consumeDeclarationSimple(true); break; } // - // Rule 283: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 256: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; // - case 283: { action. consumeTypeSpecifierElaborated(true); break; + case 256: { action. consumeDeclarationSimple(true); break; } // - // Rule 284: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 257: declaration_specifiers ::= simple_declaration_specifiers // - case 284: { action. consumeTypeSpecifierElaborated(false); break; + case 257: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 288: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } + // Rule 258: declaration_specifiers ::= class_declaration_specifiers // - case 288: { action. consumeTypeSpecifierEnumeration(false); break; + case 258: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 289: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } + // Rule 259: declaration_specifiers ::= elaborated_declaration_specifiers // - case 289: { action. consumeTypeSpecifierEnumeration(true); break; + case 259: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 295: enumerator_definition ::= identifier_token + // Rule 260: declaration_specifiers ::= enum_declaration_specifiers // - case 295: { action. consumeEnumerator(false); break; + case 260: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 296: enumerator_definition ::= identifier_token = constant_expression + // Rule 261: declaration_specifiers ::= type_name_declaration_specifiers // - case 296: { action. consumeEnumerator(true); break; + case 261: { action. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 298: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } + // Rule 263: declaration_specifiers_opt ::= $Empty // - case 298: { action. consumeNamespaceDefinition(true); break; + case 263: { action. consumeEmpty(); break; } // - // Rule 299: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } + // Rule 267: no_type_declaration_specifier ::= friend // - case 299: { action. consumeNamespaceDefinition(false); break; + case 267: { action. consumeToken(); break; } // - // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 268: no_type_declaration_specifier ::= typedef // - case 301: { action. consumeNamespaceAliasDefinition(); break; + case 268: { action. consumeToken(); break; } // - // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 288: storage_class_specifier ::= auto // - case 302: { action. consumeUsingDeclaration(); break; + case 288: { action. consumeToken(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 289: storage_class_specifier ::= register // - case 303: { action. consumePlaceHolder(); break; + case 289: { action. consumeToken(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 290: storage_class_specifier ::= static // - case 304: { action. consumeEmpty(); break; + case 290: { action. consumeToken(); break; } // - // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 291: storage_class_specifier ::= extern // - case 305: { action. consumeUsingDirective(); break; + case 291: { action. consumeToken(); break; } // - // Rule 306: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 292: storage_class_specifier ::= mutable // - case 306: { action. consumeLinkageSpecification(); break; + case 292: { action. consumeToken(); break; } // - // Rule 307: linkage_specification ::= extern stringlit declaration + // Rule 293: function_specifier ::= inline // - case 307: { action. consumeLinkageSpecification(); break; + case 293: { action. consumeToken(); break; } // - // Rule 312: init_declarator_complete ::= init_declarator + // Rule 294: function_specifier ::= virtual // - case 312: { action. consumeInitDeclaratorComplete(); break; + case 294: { action. consumeToken(); break; } // - // Rule 314: init_declarator ::= complete_declarator initializer + // Rule 295: function_specifier ::= explicit // - case 314: { action. consumeDeclaratorWithInitializer(true); break; + case 295: { action. consumeToken(); break; } // - // Rule 317: declarator ::= ptr_operator_seq direct_declarator + // Rule 296: simple_type_specifier ::= simple_type_specifier_token // - case 317: { action. consumeDeclaratorWithPointer(true); break; + case 296: { action. consumeToken(); break; } // - // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 310: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 319: { action. consumeDeclaratorWithPointer(true); break; + case 310: { action. consumeQualifiedId(false); break; } // - // Rule 323: basic_direct_declarator ::= declarator_id_name + // Rule 311: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 323: { action. consumeDirectDeclaratorIdentifier(); break; + case 311: { action. consumeQualifiedId(false); break; } // - // Rule 324: basic_direct_declarator ::= ( declarator ) + // Rule 312: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 324: { action. consumeDirectDeclaratorBracketed(); break; + case 312: { action. consumeQualifiedId(false); break; } // - // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 313: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 325: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 313: { action. consumeQualifiedId(true); break; } // - // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 315: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 326: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 315: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 316: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 327: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 316: { action. consumeTypeSpecifierElaborated(true); break; } // - // Rule 328: array_modifier ::= [ constant_expression ] + // Rule 317: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 328: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 317: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 329: array_modifier ::= [ ] + // Rule 321: enum_specifier ::= enum enum_specifier_hook { enumerator_list_opt comma_opt } // - case 329: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 321: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 330: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 322: enum_specifier ::= enum enum_specifier_hook identifier_token { enumerator_list_opt comma_opt } // - case 330: { action. consumePointer(); break; + case 322: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 331: ptr_operator ::= pointer_hook & pointer_hook + // Rule 328: enumerator_definition ::= identifier_token // - case 331: { action. consumeReferenceOperator(); break; + case 328: { action. consumeEnumerator(false); break; } // - // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt + // Rule 329: enumerator_definition ::= identifier_token = constant_expression // - case 332: { action. consumePointerToMember(); break; + case 329: { action. consumeEnumerator(true); break; } // - // Rule 339: cv_qualifier ::= const + // Rule 331: namespace_definition ::= namespace namespace_name namespace_definition_hook { declaration_seq_opt } // - case 339: { action. consumeToken(); break; + case 331: { action. consumeNamespaceDefinition(true); break; } // - // Rule 340: cv_qualifier ::= volatile + // Rule 332: namespace_definition ::= namespace namespace_definition_hook { declaration_seq_opt } // - case 340: { action. consumeToken(); break; + case 332: { action. consumeNamespaceDefinition(false); break; } // - // Rule 342: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 334: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 342: { action. consumeQualifiedId(false); break; + case 334: { action. consumeNamespaceAliasDefinition(); break; } // - // Rule 343: type_id ::= type_specifier_seq + // Rule 335: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 343: { action. consumeTypeId(false); break; + case 335: { action. consumeUsingDeclaration(); break; } // - // Rule 344: type_id ::= type_specifier_seq abstract_declarator + // Rule 336: typename_opt ::= typename // - case 344: { action. consumeTypeId(true); break; + case 336: { action. consumePlaceHolder(); break; } // - // Rule 347: abstract_declarator ::= ptr_operator_seq + // Rule 337: typename_opt ::= $Empty // - case 347: { action. consumeDeclaratorWithPointer(false); break; + case 337: { action. consumeEmpty(); break; } // - // Rule 348: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 338: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 348: { action. consumeDeclaratorWithPointer(true); break; + case 338: { action. consumeUsingDirective(); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 339: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 352: { action. consumeDirectDeclaratorBracketed(); break; + case 339: { action. consumeLinkageSpecification(); break; } // - // Rule 353: basic_direct_abstract_declarator ::= ( ) + // Rule 340: linkage_specification ::= extern stringlit declaration // - case 353: { action. consumeAbstractDeclaratorEmpty(); break; + case 340: { action. consumeLinkageSpecification(); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_modifier + // Rule 345: init_declarator_complete ::= init_declarator // - case 354: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 345: { action. consumeInitDeclaratorComplete(); break; } // - // Rule 355: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 347: init_declarator ::= complete_declarator initializer // - case 355: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 347: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 356: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 350: declarator ::= ptr_operator_seq direct_declarator // - case 356: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 350: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 352: function_declarator ::= ptr_operator_seq direct_declarator // - case 357: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 352: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 358: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 356: basic_direct_declarator ::= declarator_id_name // - case 358: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; + case 356: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 357: basic_direct_declarator ::= ( declarator ) // - case 359: { action. consumePlaceHolder(); break; + case 357: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 358: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 360: { action. consumeEmpty(); break; + case 358: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 359: array_direct_declarator ::= array_direct_declarator array_modifier // - case 361: { action. consumePlaceHolder(); break; + case 359: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 367: abstract_declarator_opt ::= $Empty + // Rule 360: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 367: { action. consumeEmpty(); break; + case 360: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 361: array_modifier ::= [ constant_expression ] // - case 368: { action. consumeParameterDeclaration(); break; + case 361: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 369: parameter_declaration ::= declaration_specifiers + // Rule 362: array_modifier ::= [ ] // - case 369: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 362: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 371: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 363: ptr_operator ::= pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 371: { action. consumeDeclaratorWithInitializer(true); break; + case 363: { action. consumePointer(); break; } // - // Rule 373: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 364: ptr_operator ::= pointer_hook & pointer_hook // - case 373: { action. consumeDeclaratorWithInitializer(true); break; + case 364: { action. consumeReferenceOperator(); break; } // - // Rule 374: parameter_init_declarator ::= = parameter_initializer + // Rule 365: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook cv_qualifier_seq_opt // - case 374: { action. consumeDeclaratorWithInitializer(false); break; + case 365: { action. consumePointerToMember(); break; } // - // Rule 375: parameter_initializer ::= assignment_expression + // Rule 372: cv_qualifier ::= const // - case 375: { action. consumeInitializer(); break; + case 372: { action. consumeToken(); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 373: cv_qualifier ::= volatile // - case 376: { action. consumeFunctionDefinition(false); break; + case 373: { action. consumeToken(); break; } // - // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 375: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 377: { action. consumeFunctionDefinition(true); break; + case 375: { action. consumeQualifiedId(false); break; } // - // Rule 380: initializer ::= ( expression_list ) + // Rule 376: type_id ::= type_specifier_seq // - case 380: { action. consumeInitializerConstructor(); break; + case 376: { action. consumeTypeId(false); break; } // - // Rule 381: initializer_clause ::= assignment_expression + // Rule 377: type_id ::= type_specifier_seq abstract_declarator // - case 381: { action. consumeInitializer(); break; + case 377: { action. consumeTypeId(true); break; } // - // Rule 382: initializer_clause ::= initializer_list + // Rule 380: abstract_declarator ::= ptr_operator_seq // - case 382: { action. consumeInitializer(); break; + case 380: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 383: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // Rule 381: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 383: { action. consumeInitializerList(); break; + case 381: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 384: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // Rule 385: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 384: { action. consumeInitializerList(); break; + case 385: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 385: initializer_list ::= { } + // Rule 386: basic_direct_abstract_declarator ::= ( ) // - case 385: { action. consumeInitializerList(); break; + case 386: { action. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 386: start_initializer_list ::= $Empty + // Rule 387: array_direct_abstract_declarator ::= array_modifier // - case 386: { action. initializerListStart(); break; + case 387: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 387: end_initializer_list ::= $Empty + // Rule 388: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 387: { action. initializerListEnd(); break; + case 388: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 392: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 389: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 392: { action. consumeClassSpecifier(); break; + case 389: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 393: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // Rule 390: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 393: { action. consumeClassHead(false); break; + case 390: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 394: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // Rule 391: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 394: { action. consumeClassHead(false); break; + case 391: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 395: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // Rule 392: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 395: { action. consumeClassHead(true); break; + case 392: { action. consumePlaceHolder(); break; } // - // Rule 396: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // Rule 393: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 396: { action. consumeClassHead(true); break; + case 393: { action. consumeEmpty(); break; } // - // Rule 400: identifier_name_opt ::= $Empty + // Rule 394: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 394: { action. consumePlaceHolder(); break; + } + + // + // Rule 400: abstract_declarator_opt ::= $Empty // case 400: { action. consumeEmpty(); break; + } + + // + // Rule 401: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 401: { action. consumeParameterDeclaration(); break; + } + + // + // Rule 402: parameter_declaration ::= declaration_specifiers + // + case 402: { action. consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // Rule 404: parameter_init_declarator ::= declarator = parameter_initializer + // + case 404: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 406: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 406: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 407: parameter_init_declarator ::= = parameter_initializer + // + case 407: { action. consumeDeclaratorWithInitializer(false); break; + } + + // + // Rule 408: parameter_initializer ::= assignment_expression + // + case 408: { action. consumeInitializer(); break; + } + + // + // Rule 409: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // + case 409: { action. consumeFunctionDefinition(false); break; + } + + // + // Rule 410: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // + case 410: { action. consumeFunctionDefinition(true); break; + } + + // + // Rule 413: initializer ::= ( expression_list ) + // + case 413: { action. consumeInitializerConstructor(); break; + } + + // + // Rule 414: initializer_clause ::= assignment_expression + // + case 414: { action. consumeInitializer(); break; + } + + // + // Rule 415: initializer_clause ::= initializer_list + // + case 415: { action. consumeInitializer(); break; + } + + // + // Rule 416: initializer_list ::= start_initializer_list { initializer_seq , } end_initializer_list + // + case 416: { action. consumeInitializerList(); break; + } + + // + // Rule 417: initializer_list ::= start_initializer_list { initializer_seq } end_initializer_list + // + case 417: { action. consumeInitializerList(); break; + } + + // + // Rule 418: initializer_list ::= { } + // + case 418: { action. consumeInitializerList(); break; + } + + // + // Rule 419: start_initializer_list ::= $Empty + // + case 419: { action. initializerListStart(); break; + } + + // + // Rule 420: end_initializer_list ::= $Empty + // + case 420: { action. initializerListEnd(); break; + } + + // + // Rule 425: class_specifier ::= class_head { member_declaration_list_opt } + // + case 425: { action. consumeClassSpecifier(); break; + } + + // + // Rule 426: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook base_clause_opt + // + case 426: { action. consumeClassHead(false); break; + } + + // + // Rule 427: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook base_clause_opt + // + case 427: { action. consumeClassHead(false); break; + } + + // + // Rule 428: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook base_clause_opt + // + case 428: { action. consumeClassHead(true); break; + } + + // + // Rule 429: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook base_clause_opt + // + case 429: { action. consumeClassHead(true); break; + } + + // + // Rule 433: identifier_name_opt ::= $Empty + // + case 433: { action. consumeEmpty(); break; } // - // Rule 404: visibility_label ::= access_specifier_keyword : + // Rule 437: visibility_label ::= access_specifier_keyword : // - case 404: { action. consumeVisibilityLabel(); break; + case 437: { action. consumeVisibilityLabel(); break; } // - // Rule 405: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 438: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 405: { action. consumeDeclarationSimple(true); break; + case 438: { action. consumeDeclarationSimple(true); break; } // - // Rule 406: member_declaration ::= declaration_specifiers_opt ; + // Rule 439: member_declaration ::= declaration_specifiers_opt ; // - case 406: { action. consumeDeclarationSimple(false); break; + case 439: { action. consumeDeclarationSimple(false); break; } // - // Rule 409: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 442: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 409: { action. consumeMemberDeclarationQualifiedId(); break; + case 442: { action. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 415: member_declaration ::= ERROR_TOKEN + // Rule 448: member_declaration ::= ERROR_TOKEN // - case 415: { action. consumeDeclarationProblem(); break; + case 448: { action. consumeDeclarationProblem(); break; } // - // Rule 424: member_declarator ::= declarator constant_initializer + // Rule 457: member_declarator ::= declarator constant_initializer // - case 424: { action. consumeMemberDeclaratorWithInitializer(); break; + case 457: { action. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 425: member_declarator ::= bit_field_declarator : constant_expression + // Rule 458: member_declarator ::= bit_field_declarator : constant_expression // - case 425: { action. consumeBitField(true); break; + case 458: { action. consumeBitField(true); break; } // - // Rule 426: member_declarator ::= : constant_expression + // Rule 459: member_declarator ::= : constant_expression // - case 426: { action. consumeBitField(false); break; + case 459: { action. consumeBitField(false); break; } // - // Rule 427: bit_field_declarator ::= identifier_name + // Rule 460: bit_field_declarator ::= identifier_name // - case 427: { action. consumeDirectDeclaratorIdentifier(); break; + case 460: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 428: constant_initializer ::= = constant_expression + // Rule 461: constant_initializer ::= = constant_expression // - case 428: { action. consumeInitializer(); break; + case 461: { action. consumeInitializer(); break; } // - // Rule 434: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 467: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 434: { action. consumeBaseSpecifier(false, false); break; + case 467: { action. consumeBaseSpecifier(false, false); break; } // - // Rule 435: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 468: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 435: { action. consumeBaseSpecifier(true, true); break; + case 468: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 436: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 469: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 436: { action. consumeBaseSpecifier(true, true); break; + case 469: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 437: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 470: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 437: { action. consumeBaseSpecifier(true, false); break; + case 470: { action. consumeBaseSpecifier(true, false); break; } // - // Rule 438: access_specifier_keyword ::= private + // Rule 471: access_specifier_keyword ::= private // - case 438: { action. consumeToken(); break; + case 471: { action. consumeToken(); break; } // - // Rule 439: access_specifier_keyword ::= protected + // Rule 472: access_specifier_keyword ::= protected // - case 439: { action. consumeToken(); break; + case 472: { action. consumeToken(); break; } // - // Rule 440: access_specifier_keyword ::= public + // Rule 473: access_specifier_keyword ::= public // - case 440: { action. consumeToken(); break; + case 473: { action. consumeToken(); break; } // - // Rule 442: access_specifier_keyword_opt ::= $Empty + // Rule 475: access_specifier_keyword_opt ::= $Empty // - case 442: { action. consumeEmpty(); break; + case 475: { action. consumeEmpty(); break; } // - // Rule 444: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 477: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 444: { action. consumeTemplateId(); break; + case 477: { action. consumeTemplateId(); break; } // - // Rule 445: conversion_function_id ::= operator conversion_type_id + // Rule 478: conversion_function_id ::= operator conversion_type_id // - case 445: { action. consumeConversionName(); break; + case 478: { action. consumeConversionName(); break; } // - // Rule 446: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 479: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 446: { action. consumeTypeId(true); break; + case 479: { action. consumeTypeId(true); break; } // - // Rule 447: conversion_type_id ::= type_specifier_seq + // Rule 480: conversion_type_id ::= type_specifier_seq // - case 447: { action. consumeTypeId(false); break; + case 480: { action. consumeTypeId(false); break; } // - // Rule 448: conversion_declarator ::= ptr_operator_seq + // Rule 481: conversion_declarator ::= ptr_operator_seq // - case 448: { action. consumeDeclaratorWithPointer(false); break; + case 481: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 454: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 487: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 454: { action. consumeConstructorChainInitializer(); break; + case 487: { action. consumeConstructorChainInitializer(); break; } // - // Rule 455: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 488: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 455: { action. consumeQualifiedId(false); break; + case 488: { action. consumeQualifiedId(false); break; } // - // Rule 458: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 491: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 458: { action. consumeTemplateId(); break; + case 491: { action. consumeTemplateId(); break; } // - // Rule 459: operator_id_name ::= operator overloadable_operator + // Rule 492: operator_id_name ::= operator overloadable_operator // - case 459: { action. consumeOperatorName(); break; + case 492: { action. consumeOperatorName(); break; } // - // Rule 502: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 535: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 502: { action. consumeTemplateDeclaration(); break; + case 535: { action. consumeTemplateDeclaration(); break; } // - // Rule 503: export_opt ::= export + // Rule 536: export_opt ::= export // - case 503: { action. consumePlaceHolder(); break; + case 536: { action. consumePlaceHolder(); break; } // - // Rule 504: export_opt ::= $Empty + // Rule 537: export_opt ::= $Empty // - case 504: { action. consumeEmpty(); break; + case 537: { action. consumeEmpty(); break; } // - // Rule 508: template_parameter ::= parameter_declaration + // Rule 541: template_parameter ::= parameter_declaration // - case 508: { action. consumeTemplateParamterDeclaration(); break; + case 541: { action. consumeTemplateParamterDeclaration(); break; } // - // Rule 509: type_parameter ::= class identifier_name_opt + // Rule 542: type_parameter ::= class identifier_name_opt // - case 509: { action. consumeSimpleTypeTemplateParameter(false); break; + case 542: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 510: type_parameter ::= class identifier_name_opt = type_id + // Rule 543: type_parameter ::= class identifier_name_opt = type_id // - case 510: { action. consumeSimpleTypeTemplateParameter(true); break; + case 543: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 511: type_parameter ::= typename identifier_name_opt + // Rule 544: type_parameter ::= typename identifier_name_opt // - case 511: { action. consumeSimpleTypeTemplateParameter(false); break; + case 544: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 512: type_parameter ::= typename identifier_name_opt = type_id + // Rule 545: type_parameter ::= typename identifier_name_opt = type_id // - case 512: { action. consumeSimpleTypeTemplateParameter(true); break; + case 545: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 513: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // Rule 546: type_parameter ::= template < template_parameter_list > class identifier_name_opt // - case 513: { action. consumeTemplatedTypeTemplateParameter(false); break; + case 546: { action. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 514: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 547: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 514: { action. consumeTemplatedTypeTemplateParameter(true); break; + case 547: { action. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 515: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 548: template_id_name ::= identifier_name < template_argument_list_opt > // - case 515: { action. consumeTemplateId(); break; + case 548: { action. consumeTemplateId(); break; } // - // Rule 520: template_argument ::= assignment_expression + // Rule 555: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 520: { action. consumeTemplateArgumentExpression(); break; + case 555: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 521: template_argument ::= type_id + // Rule 556: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: // - case 521: { action. consumeTemplateArgumentTypeId(); break; + case 556: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 522: explicit_instantiation ::= template declaration + // Rule 557: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate // - case 522: { action. consumeTemplateExplicitInstantiation(); break; + case 557: { action. consumeNestedNameSpecifier(true); break; } // - // Rule 523: explicit_specialization ::= template < > declaration + // Rule 558: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: // - case 523: { action. consumeTemplateExplicitSpecialization(); break; + case 558: { action. consumeNestedNameSpecifier(false); break; } // - // Rule 524: try_block ::= try compound_statement handler_seq + // Rule 559: class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate // - case 524: { action. consumeStatementTryBlock(true); break; + case 559: { action. consumeNameWithTemplateKeyword(); break; } // - // Rule 525: try_block ::= try compound_statement + // Rule 561: nested_name_specifier_opt_inTemplate ::= $Empty // - case 525: { action. consumeStatementTryBlock(false); break; + case 561: { action. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 528: handler ::= catch ( exception_declaration ) compound_statement + // Rule 564: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name // - case 528: { action. consumeStatementCatchHandler(false); break; + case 564: { action. consumeQualifiedId(false); break; } // - // Rule 529: handler ::= catch ( ... ) compound_statement + // Rule 565: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 529: { action. consumeStatementCatchHandler(true); break; + case 565: { action. consumeQualifiedId(true); break; } // - // Rule 530: exception_declaration ::= type_specifier_seq declarator + // Rule 570: declaration_specifiers_inTemplate ::= simple_declaration_specifiers // - case 530: { action. consumeDeclarationSimple(true); break; + case 570: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 531: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 571: declaration_specifiers_inTemplate ::= class_declaration_specifiers // - case 531: { action. consumeDeclarationSimple(true); break; + case 571: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 532: exception_declaration ::= type_specifier_seq + // Rule 572: declaration_specifiers_inTemplate ::= elaborated_declaration_specifiers // - case 532: { action. consumeDeclarationSimple(false); break; + case 572: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 534: exception_specification ::= throw ( ) + // Rule 573: declaration_specifiers_inTemplate ::= enum_declaration_specifiers // - case 534: { action. consumePlaceHolder(); break; + case 573: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 555: attribute_parameter ::= assignment_expression + // Rule 574: declaration_specifiers_inTemplate ::= type_name_declaration_specifiers_inTemplate // - case 555: { action. consumeIgnore(); break; + case 574: { action. consumeDeclarationSpecifiersTypeName(); break; + } + + // + // Rule 576: type_id_inTemplate ::= type_specifier_seq_inTemplate + // + case 576: { action. consumeTypeId(false); break; + } + + // + // Rule 577: type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator + // + case 577: { action. consumeTypeId(true); break; + } + + // + // Rule 578: template_argument ::= assignment_expression_inTemplate + // + case 578: { action. consumeTemplateArgumentExpression(); break; + } + + // + // Rule 579: template_argument ::= type_id_inTemplate + // + case 579: { action. consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 580: explicit_instantiation ::= template declaration + // + case 580: { action. consumeTemplateExplicitInstantiation(); break; + } + + // + // Rule 581: explicit_specialization ::= template < > declaration + // + case 581: { action. consumeTemplateExplicitSpecialization(); break; + } + + // + // Rule 582: try_block ::= try compound_statement handler_seq + // + case 582: { action. consumeStatementTryBlock(true); break; + } + + // + // Rule 583: try_block ::= try compound_statement + // + case 583: { action. consumeStatementTryBlock(false); break; + } + + // + // Rule 586: handler ::= catch ( exception_declaration ) compound_statement + // + case 586: { action. consumeStatementCatchHandler(false); break; + } + + // + // Rule 587: handler ::= catch ( ... ) compound_statement + // + case 587: { action. consumeStatementCatchHandler(true); break; + } + + // + // Rule 588: exception_declaration ::= type_specifier_seq declarator + // + case 588: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 589: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 589: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 590: exception_declaration ::= type_specifier_seq + // + case 590: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 592: exception_specification ::= throw ( ) + // + case 592: { action. consumePlaceHolder(); break; + } + + // + // Rule 613: attribute_parameter ::= assignment_expression + // + case 613: { action. consumeIgnore(); break; } // - // Rule 566: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; + // Rule 624: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; // - case 566: { gnuAction.consumeDeclarationASM(); break; + case 624: { gnuAction.consumeDeclarationASM(); break; } // - // Rule 577: unary_expression ::= __alignof__ unary_expression + // Rule 635: unary_expression ::= __alignof__ unary_expression // - case 577: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; + case 635: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; } // - // Rule 578: unary_expression ::= __alignof__ ( type_id ) + // Rule 636: unary_expression ::= __alignof__ ( type_id ) // - case 578: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break; + case 636: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break; } // - // Rule 579: unary_expression ::= typeof unary_expression + // Rule 637: unary_expression ::= typeof unary_expression // - case 579: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + case 637: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; } // - // Rule 580: unary_expression ::= typeof ( type_id ) + // Rule 638: unary_expression ::= typeof ( type_id ) // - case 580: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; + case 638: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; } // - // Rule 581: relational_expression ::= relational_expression >? shift_expression + // Rule 639: relational_expression ::= relational_expression >? shift_expression // - case 581: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break; + case 639: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break; } // - // Rule 582: relational_expression ::= relational_expression : assignment_expression + // Rule 641: conditional_expression ::= logical_or_expression ? : assignment_expression // - case 583: { action. consumeExpressionConditional(); break; + case 641: { action. consumeExpressionConditional(); break; } // - // Rule 584: primary_expression ::= ( compound_statement ) + // Rule 642: primary_expression ::= ( compound_statement ) // - case 584: { gnuAction.consumeCompoundStatementExpression(); break; + case 642: { gnuAction.consumeCompoundStatementExpression(); break; } // - // Rule 585: labeled_statement ::= case case_range_expression : statement + // Rule 643: labeled_statement ::= case case_range_expression : statement // - case 585: { action. consumeStatementCase(); break; + case 643: { action. consumeStatementCase(); break; } // - // Rule 586: case_range_expression ::= constant_expression ... constant_expression + // Rule 644: case_range_expression ::= constant_expression ... constant_expression // - case 586: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 644: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 590: typeof_type_specifier ::= typeof unary_expression + // Rule 648: typeof_type_specifier ::= typeof unary_expression // - case 590: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + case 648: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; } // - // Rule 591: typeof_type_specifier ::= typeof ( type_id ) + // Rule 649: typeof_type_specifier ::= typeof ( type_id ) // - case 591: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; + case 649: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; } // - // Rule 592: declaration_specifiers ::= typeof_declaration_specifiers + // Rule 650: declaration_specifiers ::= typeof_declaration_specifiers // - case 592: { action. consumeDeclarationSpecifiersTypeof(); break; + case 650: { action. consumeDeclarationSpecifiersTypeof(); break; } // - // Rule 605: declarator ::= ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator + // Rule 663: declarator ::= ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator // - case 605: { action. consumeDeclaratorWithPointer(true); break; + case 663: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 608: simple_type_specifier ::= _Complex + // Rule 666: simple_type_specifier ::= _Complex // - case 608: { action. consumeToken(); break; + case 666: { action. consumeToken(); break; } // - // Rule 609: simple_type_specifier ::= _Imaginary + // Rule 667: simple_type_specifier ::= _Imaginary // - case 609: { action. consumeToken(); break; + case 667: { action. consumeToken(); break; } // - // Rule 610: cv_qualifier ::= restrict + // Rule 668: cv_qualifier ::= restrict // - case 610: { action. consumeToken(); break; + case 668: { action. consumeToken(); break; } // - // Rule 611: explicit_instantiation ::= extern template declaration + // Rule 669: explicit_instantiation ::= extern template declaration // - case 611: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break; + case 669: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break; } // - // Rule 612: explicit_instantiation ::= static template declaration + // Rule 670: explicit_instantiation ::= static template declaration // - case 612: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break; + case 670: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break; } // - // Rule 613: explicit_instantiation ::= inline template declaration + // Rule 671: explicit_instantiation ::= inline template declaration // - case 613: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break; + case 671: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break; } // - // Rule 614: postfix_expression ::= ( type_id ) initializer_list + // Rule 672: postfix_expression ::= ( type_id ) initializer_list // - case 614: { action. consumeExpressionTypeIdInitializer(); break; + case 672: { action. consumeExpressionTypeIdInitializer(); break; } // - // Rule 618: type_id ::= vector_type + // Rule 676: type_id ::= vector_type // - case 618: { action. consumeTypeId(false); break; + case 676: { action. consumeTypeId(false); break; } // - // Rule 619: type_id ::= vector_type abstract_declarator + // Rule 677: type_id ::= vector_type abstract_declarator // - case 619: { action. consumeTypeId(true); break; + case 677: { action. consumeTypeId(true); break; } // - // Rule 620: vector_declaration ::= vector_type init_declarator_list ; + // Rule 678: vector_declaration ::= vector_type init_declarator_list ; // - case 620: { action. consumeDeclarationSimple(true); break; + case 678: { action. consumeDeclarationSimple(true); break; } // - // Rule 621: vector_type ::= no_type_declaration_specifiers_opt vector vector_type_specifier all_specifier_qualifier_list_opt + // Rule 679: vector_type ::= no_type_declaration_specifiers_opt vector vector_type_specifier all_specifier_qualifier_list_opt // - case 621: { action. consumeVectorTypeSpecifier(); break; + case 679: { action. consumeVectorTypeSpecifier(); break; } // - // Rule 622: vector_type_specifier ::= vector_type_specifier_token + // Rule 680: vector_type_specifier ::= vector_type_specifier_token // - case 622: { action. consumeToken(); break; + case 680: { action. consumeToken(); break; } // - // Rule 645: specifier_qualifier ::= typedef + // Rule 703: specifier_qualifier ::= typedef // - case 645: { action. consumeToken(); break; + case 703: { action. consumeToken(); break; } // - // Rule 646: array_modifier ::= [ array_modifier_type_qualifiers ] + // Rule 704: array_modifier ::= [ array_modifier_type_qualifiers ] // - case 646: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + case 704: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; } // - // Rule 647: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] + // Rule 705: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] // - case 647: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + case 705: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; } // - // Rule 648: array_modifier ::= [ static assignment_expression ] + // Rule 706: array_modifier ::= [ static assignment_expression ] // - case 648: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + case 706: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; } // - // Rule 649: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] + // Rule 707: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] // - case 649: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 707: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 650: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] + // Rule 708: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] // - case 650: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 708: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 651: array_modifier ::= [ * ] + // Rule 709: array_modifier ::= [ * ] // - case 651: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + case 709: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; } // - // Rule 652: array_modifier ::= [ array_modifier_type_qualifiers * ] + // Rule 710: array_modifier ::= [ array_modifier_type_qualifiers * ] // - case 652: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + case 710: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; } // - // Rule 657: static_assert_declaration ::= __static_assert ( expression , literal ) ; + // Rule 715: static_assert_declaration ::= __static_assert ( expression , literal ) ; // - case 657: { action. consumeCPPASTStaticAssertDeclaration(); break; + case 715: { action. consumeCPPASTStaticAssertDeclaration(); break; } diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParserprs.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParserprs.java index 53c2bc3eade..5fb9e2fea64 100644 --- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParserprs.java +++ b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParserprs.java @@ -36,8 +36,8 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public final static byte isKeyword[] = IsKeyword.isKeyword; public final boolean isKeyword(int index) { return isKeyword[index] != 0; } - public interface BaseCheck { - public final static short baseCheck[] = {0, + public interface BaseCheck0 { + public final static short baseCheck0[] = {0, 0,0,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,3,1,1,1,1,1,1, @@ -52,1569 +52,1883 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar 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,2,1,3,1, - 0,1,0,1,1,0,1,1,1,1, - 1,1,1,1,1,3,4,3,2,1, - 4,2,1,2,5,7,5,1,4,1, - 0,5,7,2,8,1,1,2,2,3, - 2,3,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2,1, - 0,4,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,3,5,3,3,1,3,3,1,3, + 1,3,1,3,1,3,1,3,1,5, + 1,1,3,3,3,3,3,3,3,3, + 3,3,3,1,2,1,1,3,3,3, + 3,3,3,3,3,3,3,3,1,2, + 1,3,1,0,1,0,1,1,0,1, + 1,1,1,1,1,1,1,1,3,4, + 3,2,1,4,2,1,2,5,7,5, + 1,4,1,0,5,7,2,8,1,1, + 2,2,3,2,3,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, - 2,5,6,5,0,1,0,7,8,0, - 1,3,1,0,1,3,1,7,6,0, - 7,6,1,0,6,6,4,1,3,1, - 0,1,1,2,1,1,3,1,3,1, - 1,1,1,3,9,2,2,3,2,5, - 3,7,0,1,2,2,1,0,1,1, - 1,3,1,2,1,1,2,3,1,1, - 1,3,2,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,1,7,6,3,0,0,1,3,1, - 1,5,6,6,7,7,0,0,1,0, - 1,1,1,2,4,2,2,1,5,1, - 1,1,1,1,1,1,2,1,0,1, - 3,1,1,2,3,2,1,2,2,1, - 0,1,3,3,5,5,4,1,1,1, - 1,0,1,5,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,2,1,0,4,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,3, + 4,4,5,2,5,6,5,0,1,0, + 7,8,0,1,3,1,0,1,3,1, + 7,6,0,7,6,1,0,6,6,4, + 1,3,1,0,1,1,2,1,1,3, + 1,3,1,1,1,1,3,9,2,2, + 3,2,5,3,7,0,1,2,2,1, + 0,1,1,1,3,1,2,1,1,2, + 3,1,1,1,3,2,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,1,7,6,3,0,0, + 1,3,1,1,5,6,6,7,7,0, + 0,1,0,1,1,1,2,4,2,2, + 1,5,1,1,1,1,1,1,1,2, + 1,0,1,3,1,1,2,3,2,1, + 2,2,1,0,1,3,3,5,5,4, + 1,1,1,1,0,1,5,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,2, - 2,7,1,0,1,3,1,1,2,4, - 2,4,7,9,5,1,3,1,0,1, - 1,2,4,4,2,1,2,5,5,3, - 3,1,4,3,1,0,1,3,1,1, - 1,1,2,6,3,1,3,1,4,0, - 1,1,1,3,1,0,4,3,1,2, - 1,3,4,4,4,6,1,0,1,3, - 1,3,0,1,4,5,2,4,2,4, - 3,3,5,3,4,3,1,2,2,2, - 4,2,1,1,2,2,3,2,2,3, - 1,1,1,1,4,1,1,1,1,1, - 3,3,3,4,1,1,1,1,2,4, - 5,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2,1,0,1,0,1, - 1,1,1,1,1,4,5,4,6,6, - 3,5,1,1,2,1,7,-199,0,0, - 0,-2,0,0,0,0,0,0,0,0, + 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,3, + 1,0,1,1,3,2,3,2,2,1, + 0,1,1,4,5,2,1,2,2,2, + 2,2,2,2,1,1,2,1,1,2, + 4,4,2,1,2,5,5,3,3,1, + 4,3,1,0,1,3,1,1,1,1, + 2,6,3,1,3,1,4,0,1,1, + 1,3,1,0,4,3,1,2,1,3, + 4,4,4,6,1,0,1,3,1,3, + 0,1,4,5,2,4,2,4,3,3, + 5,3,4,3,1,2,2,2,4,2, + 1,1,2,2,3,2,2,3,1,1, + 1,1,4,1,1,1,1,1,3,3, + 3,4,1,1,1,1,2,4,5,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,2,1,0,1,0,1,1,1, + 1,1,1,4,5,4,6,6,3,5, + 1,1,2,1,7,-199,0,0,0,0, + -5,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-4,0,0,0,0, - 0,0,0,0,0,0,-396,-155,0,0, - -273,0,0,-3,0,0,-306,0,0,-78, - 0,0,0,-358,0,0,-27,-9,0,-130, - -492,0,0,0,0,0,0,0,0,0, - 0,0,0,-10,0,0,0,0,-5,0, - 0,0,0,0,0,0,0,-305,0,-73, - -43,0,0,0,0,0,0,0,0,0, - 0,0,-11,0,0,-185,0,0,0,0, - 0,0,-66,0,-60,0,0,0,-408,0, - -13,0,0,0,0,0,0,0,0,-499, + 0,0,0,0,0,0,-6,-139,0,0, + -2,0,0,0,0,-73,-3,0,-4,0, + 0,0,0,0,0,0,-207,0,0,0, + 0,-420,0,0,0,0,0,0,0,-64, + -265,-16,0,0,0,0,0,-266,0,0, + 0,0,-123,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-64,0,-20,0,0,-570,0,0,0, - -21,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-9,0,0,-47,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-74,0,0,0,-438,0, - 0,0,0,0,0,0,-23,0,0,0, - 0,0,0,0,0,-47,0,0,0,0, - 0,0,-359,0,0,-29,0,0,0,-17, + 0,0,0,0,-10,-18,0,0,-111,0, + 0,-81,0,0,0,0,0,0,-43,0, + 0,0,0,-416,0,0,0,0,0,-42, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-11,0,0,-13,-627,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-164, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-24,0,0,0,0,0,0, - 0,0,0,-80,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-190, + 0,0,0,0,0,0,0,0,0,-329, + 0,0,-58,0,0,0,0,-170,-20,0, + -190,0,0,0,-60,0,0,0,0,0, + 0,0,0,-306,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-221,0, + 0,0,0,0,0,0,0,-182,0,0, 0,0,0,0,0,0,0,0,0,0, - -169,0,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,-458,0, - 0,0,0,0,0,0,0,-280,0,0, - 0,0,0,0,0,-191,0,0,0,0, - 0,0,0,0,-25,0,-207,0,0,0, - 0,0,0,0,0,0,0,0,0,-63, - 0,-81,0,0,0,-217,0,0,0,0, + 0,0,0,0,0,-499,0,0,0,0, + 0,-28,0,0,0,0,-69,-19,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-85,0, - 0,0,0,0,0,0,0,-170,0,0, - 0,0,0,0,0,0,0,0,0,-213, - 0,0,0,0,0,0,-208,0,0,0, + -164,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -519,0,0,0,0,-452,0,0,0,-223, - 0,0,0,0,-283,0,0,0,0,0, - 0,-318,0,0,-28,-218,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-57,0, + 0,0,0,-174,0,0,0,-217,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,-196,-18,0,-317, - 0,0,0,0,0,0,-75,-163,0,0, - 0,0,0,0,0,-412,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-435,0,0,0,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,-111,0,0,-174,0, - 0,0,0,0,-561,0,0,-660,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-67,-595,0,0,0,0,0,0,-485, + 0,0,-35,0,0,0,0,-474,0,0, + 0,0,0,-183,0,0,-21,0,-79,-185, + -66,0,0,0,0,0,0,0,0,-155, + 0,0,0,0,0,0,-169,-218,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-112,-26,0,-478,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, - -34,0,-461,0,0,0,0,0,0,0, - 0,0,0,-121,-19,0,0,0,0,0, - 0,0,0,-137,-596,0,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,0,0,-224,-139, - -6,0,0,0,0,0,-44,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -45,0,0,0,0,-405,0,-48,-398,0, + 0,0,-338,0,0,0,0,-23,-67,0, + 0,0,0,-573,0,0,0,0,-369,0, + 0,0,0,0,0,0,0,0,0,-206, + 0,0,0,0,0,-130,-24,-453,0,0, 0,0,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,-240,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-79,0,0,0,0,0,0,-156, 0,0,0,0,0,0,0,0,0,0, + 0,0,-493,0,0,0,-163,0,0,0, + 0,0,0,0,0,0,0,0,-429,0, + 0,0,0,0,0,-222,0,0,0,-618, + 0,0,0,-519,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-327,0,0,0,0,0,0,0, - 0,-50,0,0,0,0,0,0,-557,-82, - 0,0,-501,0,0,-16,0,0,0,0, - -409,0,0,0,-316,0,-278,-51,0,-62, - 0,0,0,-413,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-531,0,0,0,0,0, + -40,0,0,0,-407,0,0,0,-191,0, + 0,0,0,0,0,0,-82,-25,0,0, + 0,0,0,-208,0,0,0,0,-652,0, + 0,0,0,0,0,0,0,-540,0,0, + 0,0,0,-223,0,0,0,0,-681,0, + 0,0,0,0,-653,0,0,0,0,-412, 0,0,0,0,0,0,0,0,0,0, - 0,0,-279,0,0,0,0,0,-160,0, 0,0,0,0,0,0,0,0,0,0, + 0,-303,0,0,0,0,0,0,0,-77, + 0,0,0,0,0,0,0,-693,-26,0, + 0,0,0,0,-156,0,0,0,0,-585, 0,0,0,0,0,0,0,0,0,0, - 0,-454,0,0,0,0,-54,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,-457,0,0, - -40,-56,0,0,0,0,0,-86,0,0, - 0,0,-59,-272,0,0,0,0,0,0, + 0,-274,0,-184,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-273,0,0, + 0,0,0,0,-84,-526,0,0,0,0, + 0,0,0,0,0,0,0,0,-34,-409, 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,0, + 0,0,0,0,0,0,-680,0,0,0, + 0,0,0,0,-63,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-392,0,0,0,-281,0,0,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,0,-291,-364,0, - -179,0,0,0,0,0,0,0,0,0, - 0,-76,-77,0,0,0,0,-269,0,0, - 0,-463,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-44, + -536,-537,0,0,0,0,0,-196,0,0, + 0,0,0,-283,0,0,-57,0,0,-611, + 0,0,-160,0,0,0,0,0,0,0, 0,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,-305, + 0,0,-660,0,0,0,0,0,0,0, + 0,0,-107,-45,0,0,0,0,0,-272, 0,0,0,0,0,0,0,0,0,0, - -406,0,0,0,-129,0,0,0,0,0, - -536,0,0,0,-401,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-123,0,-84,0, + 0,0,0,0,0,0,0,-614,0,0, + -80,-137,0,0,0,0,0,0,0,0, + 0,0,-48,0,0,0,-209,-688,0,-50, + -326,0,-320,0,0,0,0,0,0,0, + 0,-280,0,0,-51,-417,0,-718,0,0, 0,0,0,0,0,0,0,0,0,0, - -87,0,0,-311,0,0,0,0,0,-537, - 0,0,0,-88,0,0,0,0,0,0, + -74,0,0,0,-633,-403,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-184,0,0,0,0,-110,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-363,0,0,0,0,0,0, - -546,0,0,0,0,0,0,0,0,0, + 0,0,0,-138,0,0,0,0,0,0, + 0,0,0,0,0,-54,0,0,-475,-404, + 0,0,0,0,0,-504,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-309,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-102, - -426,0,0,-603,0,0,0,0,0,-152, 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,-210,0, + 0,0,0,0,0,-590,0,0,0,0, + -59,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,-103,0,0, + 0,0,0,0,0,-121,0,-61,0,0, + 0,0,0,0,0,0,0,0,-610,0, + 0,0,0,0,0,-591,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-627,0,0,0,0,0,-231,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-118,-83,-418,0,0,0,0,0, + 0,0,0,0,0,-112,0,0,-76,-534, + 0,0,-289,-212,0,-179,-86,0,0,0, + 0,0,0,0,0,-600,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-107,0,-433,0,0,0,0,0,0, - -104,0,0,0,0,0,0,0,-435,0, - 0,-645,0,0,0,0,0,-254,0,0, - 0,-436,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -451,0,0,0,0,-119,0,0,0,0, + 0,0,-110,0,0,-535,0,0,0,0, + 0,0,0,0,0,-658,-371,0,-451,0, + 0,0,0,0,0,-152,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -105,-414,0,-106,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,-520, - 0,0,0,0,-534,0,0,0,-108,0, - 0,0,0,0,0,0,-109,0,0,-646, - 0,0,0,0,0,-256,0,0,0,-604, + 0,0,-87,0,-88,-119,0,0,0,0, + 0,0,0,0,0,0,-269,0,0,-102, + 0,0,-103,0,0,-231,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-529,0, - 0,0,0,-120,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-211,-415, - 0,0,0,0,-257,0,0,0,-475,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-530,0,0, - 0,0,-131,0,0,0,0,0,0,0, - 0,0,0,0,-289,0,0,-486,-416,0, - 0,0,0,-258,0,0,0,0,0,0, + 0,0,-492,0,0,0,0,0,0,0, + 0,0,0,0,0,-647,-354,0,-576,-104, + 0,0,0,0,0,-254,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-579,0,0,0, - 0,-535,0,0,0,-513,0,0,0,0, - 0,0,0,-132,0,0,0,0,0,0, - 0,0,-259,0,0,0,-489,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-113,-360,0,0, - -652,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-118,-580,0,0,0, - 0,-260,0,0,0,-514,0,0,0,0, + 0,0,0,0,0,-120,0,0,0,0, + 0,0,0,0,0,0,-105,0,-56,-485, + 0,0,-353,0,0,0,-124,-255,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-361,0,0,0,-592, 0,0,0,0,0,0,0,0,0,0, - 0,-124,0,0,-165,0,0,0,0,0, - -261,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-574,0,0,0,0,0, + 0,0,-131,0,0,0,0,0,-372,0, + -577,-295,0,0,-106,0,0,-256,0,0, + 0,0,-454,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-322,0,0,-616,0, - 0,0,-547,0,0,0,0,0,0,-135, - 0,0,0,0,-611,0,0,0,0,-262, - 0,0,0,-636,0,0,0,0,0,0, + 0,0,0,0,0,0,-583,0,0,0, + 0,0,0,0,0,0,0,0,-108,0, + -578,0,0,0,-165,0,0,-257,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,-437,0,-388,0,-639,0,0, - 0,0,0,0,0,0,0,0,-136,0, - 0,0,0,0,0,0,0,0,-263,0, + 0,0,0,0,-461,0,0,0,-113,0, + 0,0,-399,0,0,0,0,0,-117,0, + -278,-125,0,0,0,0,0,-258,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,-584,0,0,0,-126,-333, + 0,0,-132,0,0,0,0,0,0,0, + -579,-127,0,0,-172,0,0,-259,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-117,-323,0,-653,0,0,0, - -125,0,0,0,0,0,0,-138,0,0, - 0,-172,0,0,0,0,0,-264,0,0, - 0,-444,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-180,0,0,0,0,0,0,0,-493, - 0,0,0,0,0,0,-455,-193,0,0, - -194,0,0,0,0,0,-424,0,0,0, - -336,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-708,0,0,0,0,0, + 0,0,-644,0,0,0,0,0,0,0, + -620,-128,0,0,-193,0,0,-260,0,0, + 0,0,-588,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-587,0,0,-206,0,0,0,0,0, - 0,0,0,0,0,-126,0,0,0,-476, - 0,0,0,-494,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-135,0,0, + 0,0,0,0,0,0,0,0,-515,0, + -279,-656,0,0,-347,0,0,-261,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-599,-127,0,-83,0,0,0,0, - 0,0,0,0,0,0,0,0,-209,-635, - 0,0,0,0,-195,0,0,0,0,0, - 0,0,-221,-477,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-636,0,0,0,-478,0, + 0,0,-679,0,0,0,0,-211,0,0, + -136,0,0,0,-140,0,0,-262,0,0, + 0,0,-142,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-661,0,0,0,0,0, + 0,0,-143,0,0,0,0,0,0,0, + -281,0,0,0,0,0,0,-263,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,-128,0,0,-303,0,0,-140, - 0,0,-479,0,0,0,0,0,0,0, + 0,0,0,0,0,-370,0,0,-145,-146, + 0,0,-180,0,0,0,0,0,0,0, + -328,-530,0,0,-147,0,0,-264,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-222,-621,0,0, - -228,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-230,-468,0, - 0,-474,0,-480,0,0,0,-142,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-630,-497,0, + 0,0,0,0,-228,0,-716,-419,0,0, + 0,0,-148,0,0,0,0,0,-291,0, + -268,0,0,0,-479,0,0,-310,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-556,-232,0,0,-267,0,-143,0, - 0,0,-633,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-268,-649,0,0, - 0,0,0,0,-144,0,0,0,0,0, - 0,-601,0,0,0,-274,0,-315,0,0, - 0,-487,0,0,0,0,0,0,0,0, + 0,0,0,0,-702,0,0,0,0,-374, + 0,0,0,-334,0,0,0,0,0,-349, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-145,0,-459, - 0,0,0,0,0,0,0,0,0,0, - -286,-543,0,0,-498,0,0,0,-146,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,0,-559,0,0,0, - 0,0,0,-585,-210,0,0,0,0,-288, - 0,0,0,0,0,-147,-148,0,-549,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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-550,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-576,-302,-149,-496,0,0, - 0,0,0,0,0,0,0,0,0,0, - -586,-265,0,0,0,0,-150,-312,-304,-72, - -518,0,0,-623,0,-566,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-151,0,0,0,0,0,0, - 0,0,0,0,-313,-153,0,0,-606,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-644,0,0,-342,0,0,0,0,0, - -625,0,0,0,0,0,0,-22,-391,0, - 0,-7,0,0,0,-212,0,-602,0,-348, - 0,0,0,0,0,0,0,0,-650,-314, - 0,0,0,0,0,0,0,0,0,-330, - -41,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-389,0, - -481,0,0,0,0,0,0,0,0,0, - 0,0,0,-321,0,0,-166,0,-167,0, - 0,0,0,0,0,0,0,-331,0,0, - 0,-42,0,0,0,0,0,0,0,0, - 0,0,0,0,-171,0,0,0,0,0, - 0,0,0,0,-658,0,0,-343,-177,0, - 0,0,0,0,0,0,-192,0,-522,0, - 0,-544,0,0,-337,0,0,0,0,0, - -390,-276,0,-340,0,0,0,0,0,0, + 0,0,-149,0,0,0,0,-351,0,0, + 0,0,-538,0,0,0,0,0,0,0, + 0,-683,-440,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-194, -441,0,0,0,0,0,0,0,0,0, - 0,0,0,-162,0,-282,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-403, - 0,0,-287,0,0,-545,0,0,0,0, - -341,0,-292,0,0,-294,0,-266,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-150,0,-151, + 0,0,-175,0,-129,0,0,0,0,-300, + 0,-195,0,-375,0,-230,0,0,0,-302, + -232,0,-153,0,0,0,0,0,0,0, + 0,0,0,0,0,-166,-197,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -167,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,0,0,0, - 0,-277,0,-352,0,0,0,0,0,-307, - 0,0,0,0,0,0,-122,0,0,0, - -308,0,-310,-607,0,0,0,0,-324,0, - 0,-325,0,-326,-301,0,0,0,0,0, - 0,0,0,0,-68,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,-46,-404,-333,-395,0,0,0,-334,-402, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-397,0,0,0,0,-335,-344,0, - -399,-400,0,0,0,0,0,0,0,-632, - 0,0,0,-215,0,0,0,-346,-347,-419, - 0,0,0,0,0,0,0,0,0,0, - 0,-349,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-421,0, - 0,0,-350,-440,0,0,0,-253,0,0, + 0,0,0,-267,-443,0,0,0,0,0, 0,0,0,0,0,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,-251,0,0,0,-353, - 0,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,-252,0,0,0,-355,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-58,-319,-484,-356,0, - 0,0,0,0,-605,0,0,0,0,-456, - -462,-510,-471,0,0,0,0,-357,0,0, - 0,0,-516,-533,0,-590,0,0,-366,0, - 0,-500,0,0,-367,0,0,-560,0,0, - 0,0,0,-368,0,0,-369,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-422,0,-370,-517,0,-569,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-371,0,0,0,0,0,0,0,-469, - 0,-521,-372,0,-532,0,-523,0,-568,-197, - 0,0,0,0,-373,-571,0,-374,0,-575, - -375,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-434,-376, - 0,-377,0,0,0,0,0,0,0,0, - -573,0,0,0,0,0,0,-551,0,0, - 0,0,0,0,0,-539,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-378,-578,0,0,0, - 0,0,-8,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-577,0,-379, - 0,0,0,0,0,0,-593,-524,0,-615, - 0,0,-581,-380,-381,-617,0,0,0,0, - -582,0,0,0,-638,0,0,0,0,-382, - 0,-612,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-583,-642,-584,-383,-384,0,-385,-619, - -275,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-386,0,-495,0,0,0,0, - 0,0,0,0,-387,-394,-410,0,-248,0, - 0,0,-411,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-30,-431,-620,-631,0,0,0,0,0, - -423,0,0,0,-14,0,0,-637,-640,-425, - -427,-428,-429,0,0,0,0,0,-430,0, - 0,0,0,0,-432,0,0,0,0,0, - 0,0,0,-641,0,-648,0,-659,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-445,0,0,-525,0,-447,-504, - 0,-448,0,0,-651,0,-538,0,0,0, - 0,0,-449,-622,-450,0,0,0,0,0, - 0,0,0,0,0,-464,-465,0,-472,0, - 0,0,0,-473,0,-488,0,-490,0,0, - -503,0,0,0,-505,0,-506,-511,0,0, - 0,0,0,0,-515,0,0,0,0,0, - -526,0,0,0,0,-507,-527,-528,-554,0, - -555,-562,-65,0,-574,-588,0,0,-589,0, - -563,0,-591,0,0,0,0,0,0,0, - 0,0,-594,0,0,0,0,0,0,-609, - -618,-624,-626,0,0,0,-634,-643,0,0, - -656,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-565,-613,0,0,0,0,-598,0,0, - 0,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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-567,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,0, - 0,0,0,-608,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-186,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-610, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-614,0,0,0,0, - 0,0,0,0,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-647,0,0,0,0,0,0,0,0, + 0,0,-171,-304,0,0,-589,0,0,-286, + -322,0,0,0,-288,-323,0,-177,-359,-324, + 0,0,0,0,0,0,-192,0,-400,0, + 0,0,0,0,0,0,0,0,0,-659, + -198,0,-276,0,0,0,0,0,0,0, + 0,0,-555,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,-325,-445,0, 0,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,-282,-467,0,0, + -710,0,-685,0,0,0,-703,0,0,0, + 0,-287,0,0,0,0,0,-414,-496,0, + -292,0,0,0,0,0,0,0,0,0, + 0,0,-415,-476,-309,-460,-294,0,0,0, + 0,0,0,0,0,0,0,0,-307,0, 0,0,0,0,-446,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-657,0,0, + 0,0,-447,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-342, + 0,0,0,0,-711,0,-704,0,0,0, + -483,-176,-348,-311,0,0,-497,-352,0,0, + 0,0,-312,0,-313,0,-314,0,0,0, + 0,0,0,0,0,0,-315,-316,0,0, + 0,0,0,-317,0,0,0,0,0,0, + 0,0,-597,0,0,0,0,0,-448,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-363,-449,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-318,-649,-319,0,0,-30,0, + -662,-613,-321,-335,-336,-14,0,0,0,-477, + -503,-406,0,-512,0,0,-337,0,0,0, + -343,0,0,0,0,0,0,0,0,-402, + -522,-516,0,0,0,0,0,0,0,-344, + 0,0,0,0,0,0,-345,0,0,0, + 0,0,-450,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,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,0,0,0,0,0,-570,-346, + 0,0,0,0,0,-355,0,0,0,0, + 0,0,0,-357,-587,-617,0,-358,0,0, + 0,0,-455,0,-408,0,0,0,-465,0, + 0,0,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,-495,0, + 0,0,0,0,0,0,0,0,0,-361, + 0,0,0,0,0,-517,0,0,0,0, + -364,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-158,-410,-366,-367,-368,0,0, + -598,0,0,0,0,-377,0,0,-527,-567, + 0,0,-378,-379,0,-78,0,0,0,-568, + 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,-380,0,0,0,-381,0, + 0,0,-382,0,0,0,0,0,-383,0, + 0,0,0,0,-411,-384,0,-520,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-630,-385,0,0,-386,0, + 0,0,-634,0,0,0,0,0,-387,0, + -388,-601,0,0,-462,-481,0,-524,-521,0, + 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,-390,0,0,-391,0, + 0,0,0,0,0,0,0,0,-599,0, + 0,-650,-392,0,0,-393,0,0,-616,0, + 0,0,0,-394,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-525,-251,0,0,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,-500,-396,0,0,-673,0, + 0,-675,0,0,0,-669,0,-694,0,-397, + 0,-696,0,-700,0,-398,0,0,0,0, + -554,0,0,0,-691,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-405,0,0,-709,0,-707,0,0,0, + 0,0,0,0,-421,-422,0,-671,-456,0, + 0,-571,0,0,-528,0,0,0,0,-665, + 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,-464,-466,-468,0,0, + 0,0,0,0,0,-469,0,-575,0,0, + 0,-539,0,0,0,0,-470,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-162,0, + -471,-510,-473,-486,0,0,0,0,0,0, + 0,0,-488,0,-674,-489,0,0,-490,-457, + -491,-36,0,0,0,0,0,0,0,-586, + 0,0,0,-603,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-505,-506,0,0,-513,0,-514,0, + 0,0,0,-529,-531,0,0,0,0,0, + -604,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-277,-543, + -544,-545,-546,-547,0,-548,0,0,0,0, + -549,0,0,-550,-551,0,0,-85,0,0, + 0,0,0,-552,-553,0,0,0,0,-557, + 0,0,-623,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-559,-690,-560,-565,0,-569,0,0, + 0,0,0,0,0,-580,-581,0,0,-664, + 0,0,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,-301,-615,0,-582,0,0,0,0,0, + 0,0,-608,-609,0,0,-619,-213,0,0, + -631,0,-645,0,0,0,0,-646,0,0, + 0,0,-648,-651,0,0,0,-625,-667,-628, + 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,-498,0,0,0, + 0,0,-676,-682,-684,-692,-701,-214,-235,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-637,-714, + 0,0,0,0,0,0,0,0,0,-632, + 0,0,-635,-638,0,0,0,0,0,-293, + 0,0,0,0,-72,-639,-41,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-640, + 0,-75,0,-641,-241,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,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,0,0,0,0,0,0,0,0,0, + 0,0,-677,0,0,-678,-452,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-154,0,0, + 0,0,0,-605,0,0,0,0,-689,-122, + 0,0,0,0,0,0,0,0,0,-642, + 0,0,0,0,0,0,0,0,-695,-698, + 0,0,0,0,0,-655,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,-699,-706,-717,0, + -697,0,0,0,0,-556,0,0,0,0, + -413,0,0,0,0,0,0,0,0,0, + 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,0,0,0,0,0, + 0,0,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,-439, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-482,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,0,0,0,0,0, + 0,0,-65,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,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,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,0, + 0,0,0,0,-298,-330,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -643,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-438,0,0,0,0,0,0,0, + 0,0,0,0,0,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,-8,0,0,0,0,0, + 0,0,0,0,0,0,0,-327,0,0, + 0,0,0,0,0,0,-219,0,0,0, + 0,0,0,0,0,0,0,-225,0,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,-593,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-224,0,0,0,0, + 0,0,-99,0,0,0,0,0,0,0, + 0,-670,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,-297,0,0,0,0,0,-215, + -594,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,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, + -17,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-68,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-248, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-663,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,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,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-472,-159,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,0,0,0,0,0,0,0,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,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-548,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-36,0, - 0,0,0,0,0,-216,0,0,0,0, - 0,-553,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-351,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-558,-205, + 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, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-240,0, + 0,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, + -561,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 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,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,-622,-49,0,0,0,0,0,-626, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-624,-70,0,0,0,0, + 0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-666,-116,0,0, + 0,0,0,0,0,0,0,-629,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,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-668,-181, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-46,0,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,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -672,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-705,-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,0,0, + 0,0,0,0,0,0,0,0,-350,0, + 0,0,0,0,0,0,0,0,-501,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-715,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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, + 0,0,0,0,0,0,0,0,0,0, + -154,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-242,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 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,0,0,0,0, + 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,0,0,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,0,0,0,0, + 0,-290,0,0,0,0,0,0,-101,0, + 0,0,0,0,-484,0,0,0,0,0, + 0,0,0,-533,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-572,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-161,0,0,0,0,0,0, + 0,0,0,0,0,-602,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-362,0,0,0,0, + 0,0,0,0,0,0,0,-607,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,-31, + 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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, -243,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-244,0,0,0,0,0,0,0, + 0,-365,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-244,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-245,0,0,0,0,0, + 0,0,0,0,0,-245,0,0,0,0, 0,0,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,0,0,0,0,-532,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-466,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-99,0,0,0, - -49,0,0,0,0,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,0,-431, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -1,0,0,0,0,0,-214,0,0,0, + 0,0,0,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, + 0,0,0,-433,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-32,0,0,0,0,-175,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -507,0,0,0,0,0,0,0,0,0, + 0,0,0,-356,0,0,0,0,0,0, + -612,0,0,0,0,0,0,-542,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-299,0,0,0,-541,0, + 0,0,0,0,0,-1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-246,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-247, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -365,0,0,0,0,0,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,-654,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-39,0,0,0,0, - 0,-69,0,0,0,0,-12,0,0,0, - 0,0,-176,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,0,0, + 0,-246,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-247,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-376,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-712,0,0,0,0,0,0,0,0, + 0,0,0,0,-39,0,0,0,0,0, + -202,0,0,0,0,0,-621,0,0,0, + 0,0,0,0,0,0,0,0,-33,0, + 0,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,0,-114,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-157,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,0,0,0,0,0,-116,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-296,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-220,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-502,0,0,0,0,0,0,0,0, - 0,0,0,0,-159,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-226,-161, 0,0,0,0,0,0,0,0,0,0, - 0,-198,0,0,0,0,0,0,0,0, + 0,0,0,0,-606,0,0,0,0,0, + 0,0,0,-114,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-657,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-227,0,0,0,0,0,0, + 0,-157,0,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,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-298,0,0,0, + 0,0,0,-220,0,0,0,0,0,0, + -186,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0, 0,0,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, + 0,0,0,0,0,0,0,-428,0,0, 0,0,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,0,0,0,0,0, - 0,0,0,0,-362,0,0,0,0,0, - -38,0,0,0,0,0,0,0,0,0, + 0,0,-227,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-654,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,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,0,0,0,-115, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-238,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,0,0,0,0,0,0,-178, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-239,0,0,0,0, + 0,0,0,0,-373,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-713, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-15, - 0,0,0,0,0,0,-293,0,0,0, - 0,0,0,0,0,-52,0,0,0,0, - 0,0,-299,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -53,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,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,-55,0,0,0,0,0,0,0,0, - 0,-229,0,0,0,0,0,0,0,-271, - 0,0,0,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,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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,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,0,0,0,0,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,-95,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-96, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-97,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-98,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,-133,0,0,0,0,0,0,0,0, - 0,-31,0,0,0,0,0,-134,0,0, - 0,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,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-189,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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,-234, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-417,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-470,0,0,0,0, - -89,0,0,0,-37,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-552,0,0,0, - 0,0,0,-597,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,-90,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,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-270,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-328, - 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,0,-173,-439,0,0,0,0, - 0,-168,-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,-285,0,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,0,0,0,0,0,0, - 0,0,0,-219,0,0,0,0,0,0, + 0,-239,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,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,-523,0, + 0,0,0,0,0,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,0,0,0,0,0,0,0,-15,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-686,0,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,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,0,0, + 0,0,0,-687,0,0,0,-37,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-203,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-53,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,0,0,0,0,0,0,0,0, - 0,0,0,-320,0,0,0,0,0,0, - 0,0,0,0,0,0,-467,0,0,-540, 0,0,0,0,0,0,0,0,0,0, - 0,0,-564,0,0,0,0,0,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,0,0,0,0,0, - 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,0,0,0, - 0,0,0,0,-200,0,0,0,0,-572, - 0,0,0,0,0,0,0,0,0,0, - -339,0,0,0,-345,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-558,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -600,0,0,0,0,0,0,-655,0,0, - 0,0,0,0,0,0,0,0,0,0, - -628,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-629,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-290,0,0,0, - 0,0,0,0,0,0,0,-443,0,0, - 0,0,0,-460,0,0,0,0,-453,0, - 0,0,0,0,0,0,0,0,0,-508, - -509,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-512,0,0,-201, - 0,0,0,0,0,0,0,0,0,0, - 0,-202,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-203,0,0,0,0,0,-204,0,0, - 0,0,0,-418,-541,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-542,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-661,0,0,0,0, + 0,0,0,-55,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,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,0,0,0,0,0, + 0,0,0,0,0,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, + 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,0,0,0,0,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,-95,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-96,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-97,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-98,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,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,-133,0,0,0,0,0,-424, + 0,0,0,0,0,0,0,0,-459,0, + -134,0,-595,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-189,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,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,-234,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,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-511,0, + 0,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,0,0,0,0,0,0,0,0, + 0 }; }; - public final static short baseCheck[] = BaseCheck.baseCheck; + + public interface BaseCheck1 { + public final static short baseCheck1[] = { + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-296,0,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,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-482,0,0,0,0,0,-592, + 0,-596,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-168,0,0,0,0, + 0,0,0,-425,0,0,0,0,0,0, + 0,0,0,0,0,0,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,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-188,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-719,0,0,0,0,0, + -331,0,0,0,0,0,0,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,-562,0,0,0,0,0,0,0, + 0,0,-508,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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-427,0,0,0, + 0,0,0,-564,0,-563,0,0,0,0, + 0,0,-566,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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[] = new short[BaseCheck0.baseCheck0.length + BaseCheck1.baseCheck1.length]; + { + int index = 0; + System.arraycopy(BaseCheck0.baseCheck0, 0, baseCheck, index, BaseCheck0.baseCheck0.length); + index += BaseCheck0.baseCheck0.length; + System.arraycopy(BaseCheck1.baseCheck1, 0, baseCheck, index, BaseCheck1.baseCheck1.length); + }; public final int baseCheck(int index) { return baseCheck[index]; } public final static short rhs[] = baseCheck; public final int rhs(int index) { return rhs[index]; }; public interface BaseAction0 { public final static char baseAction0[] = { - 199,4,146,73,73,32,32,97,97,49, - 49,44,44,199,1,1,15,15,15,15, + 214,5,158,82,82,32,32,106,106,48, + 48,41,41,214,1,1,15,15,15,15, 15,15,15,17,17,17,16,11,11,6, - 6,6,6,6,6,2,85,85,5,5, - 12,12,64,64,163,163,164,74,74,55, + 6,6,6,6,6,2,93,93,4,4, + 12,12,56,56,175,175,176,86,86,55, 18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18, - 165,165,165,147,147,19,19,19,19,19, + 177,177,177,159,159,19,19,19,19,19, 19,19,19,19,19,19,19,19,20,20, - 200,200,201,201,202,168,168,169,169,166, - 166,170,167,167,21,21,22,22,27,27, - 27,29,29,29,29,30,30,30,31,31, - 31,33,33,33,33,33,34,34,34,35, - 35,36,36,37,37,38,38,41,41,42, - 42,48,48,47,47,47,47,47,47,47, - 47,47,47,47,47,47,46,40,148,148, - 108,108,203,203,101,233,233,86,86,86, - 86,86,86,86,86,86,87,87,87,84, - 84,65,65,204,204,88,88,88,122,122, - 205,205,89,89,89,89,206,206,90,90, - 90,90,90,91,91,93,93,93,93,93, - 93,93,93,56,56,56,56,56,123,123, - 121,121,57,207,28,28,28,28,28,53, - 53,77,77,77,77,77,109,109,124,124, - 124,124,124,125,125,125,126,126,126,127, - 127,127,128,128,128,78,78,78,78,78, - 79,79,79,13,14,14,14,14,14,14, - 14,14,14,14,14,98,113,113,113,113, - 113,113,111,111,111,172,173,173,112,112, - 208,175,175,174,174,149,149,129,82,82, - 150,59,52,176,176,60,95,95,151,151, - 171,171,130,131,131,132,76,76,177,177, - 71,71,71,67,67,66,72,72,96,96, - 75,75,75,70,102,102,116,115,115,61, - 61,68,68,69,69,50,117,117,117,103, - 103,103,104,104,105,105,105,106,106,133, - 133,133,135,135,134,134,234,234,107,107, - 210,210,210,210,210,153,51,51,179,209, - 209,154,154,99,99,99,100,181,211,211, - 45,45,110,118,118,118,118,213,137,136, - 136,114,114,114,182,183,183,183,183,183, - 183,183,183,183,183,183,215,215,212,212, - 214,214,139,140,140,140,140,141,216,142, - 138,138,217,217,184,184,184,184,120,120, - 120,218,218,8,8,9,219,219,220,185, - 178,178,186,186,187,188,188,7,7,10, - 221,221,221,221,221,221,221,221,221,221, - 221,221,221,221,221,221,221,221,221,221, - 221,221,221,221,221,221,221,221,221,221, - 221,221,221,221,221,221,221,221,221,221, - 221,221,80,83,83,189,189,156,156,157, - 157,157,157,157,157,3,158,158,155,155, - 143,143,94,81,92,92,180,180,144,144, - 222,222,222,159,159,152,152,223,223,23, - 23,23,43,43,24,24,224,224,190,190, - 190,191,191,225,225,192,192,25,25,226, - 226,193,193,193,193,26,62,227,227,228, - 228,194,194,194,160,160,160,19,19,19, - 19,33,33,42,17,87,229,145,145,145, - 119,119,28,58,77,132,132,132,139,139, - 139,208,213,137,70,76,172,150,13,13, - 61,94,94,94,18,14,14,14,69,69, - 63,39,161,162,162,162,162,162,162,162, - 162,162,196,196,231,231,230,230,195,195, - 61,56,56,1,1,235,96,96,96,96, - 96,96,96,197,198,198,183,54,1806,35, - 3374,3372,68,6730,27,30,31,1371,1357,26, - 28,3369,263,23,25,50,2097,106,76,77, - 108,594,539,540,541,2748,76,2825,2789,2889, - 870,2868,2937,2936,3027,3007,3064,3316,76,3076, - 143,2164,1490,275,1514,158,144,2552,35,284, - 3523,35,3229,5373,3523,35,399,1555,1601,233, - 2490,2475,35,4038,32,4073,5101,27,30,31, - 1371,1357,341,28,1954,236,231,232,2787,2947, - 594,539,540,541,4069,539,540,541,3871,3907, - 2844,1556,35,1378,32,49,276,41,30,31, - 1371,1357,654,2203,4792,1814,3504,5356,243,246, - 249,252,3932,1667,1229,307,1115,587,233,3871, - 3907,5321,3118,717,866,6382,6395,321,1252,323, - 2552,3907,316,773,245,231,232,2257,543,539, - 540,541,3987,6585,1612,1100,2690,1881,35,3374, - 3372,74,6730,27,30,31,1371,1357,26,28, - 3369,263,23,25,50,2097,106,76,77,108, - 594,539,540,541,2748,4194,2825,2789,2889,2283, - 2868,2937,2936,3027,3007,3064,5197,1873,3076,143, - 4029,1804,275,811,158,144,2552,2684,2614,34, - 6617,422,4036,3523,35,399,1690,545,233,326, - 89,35,1378,32,4073,5101,27,30,31,1371, - 1357,341,28,1167,236,231,232,547,3303,594, - 539,540,541,542,539,540,541,291,1663,1218, - 1736,35,1378,32,3623,276,1533,30,31,1371, - 1357,6772,622,3385,1948,1315,5566,243,246,249, - 252,3932,1481,3913,4269,1115,587,233,291,42, - 3363,3118,717,866,6382,6395,321,1252,323,292, - 3903,316,773,248,231,232,5362,543,539,540, - 541,3316,6585,3008,3913,2690,3528,35,1378,32, - 3122,5097,27,30,31,1371,1357,26,28,2089, - 263,23,25,50,2097,106,76,77,108,2552, - 35,1301,391,2748,345,2825,2789,2889,3018,2868, - 2937,2936,3027,3007,3064,3700,2677,3076,143,4034, - 308,312,802,520,144,2178,5622,3821,35,1378, - 32,314,6981,27,30,31,1371,1357,57,28, - 1503,1020,3431,1691,455,521,3528,35,1378,32, - 3122,5097,27,30,31,1371,1357,26,28,2089, - 263,23,25,50,2097,106,76,77,108,2552, - 35,1301,391,2748,345,2825,2789,2889,2276,2868, - 2937,2936,3027,3007,3064,3700,2522,3076,143,620, - 2329,35,456,520,144,6985,5622,3979,35,1378, - 32,1100,6981,27,30,31,1371,1357,56,28, - 557,4474,35,279,49,521,2552,35,4067,516, - 1736,35,1378,32,1814,3473,40,30,31,1371, - 1357,3350,4480,1298,3361,2283,3528,35,1378,32, - 3122,5097,27,30,31,1371,1357,26,28,2089, - 263,23,25,50,2097,106,76,77,108,2283, - 1485,546,3303,2748,345,2825,2789,2889,3189,2868, - 2937,2936,3027,3007,3064,3700,2817,3076,143,1703, - 2329,35,281,520,144,1049,5622,5268,1516,516, - 76,3597,61,5391,1490,2881,2227,2276,2552,35, - 297,3472,570,2439,3361,521,4078,35,1378,32, - 3122,5097,27,30,31,1371,1357,26,28,2089, - 263,23,25,50,2097,106,76,77,108,558, - 3489,614,1708,2748,345,2825,2789,2889,2649,2868, - 2937,2936,3027,3007,3064,3700,420,3076,143,2552, - 35,5993,5697,520,144,4778,5622,1096,3712,35, - 1378,32,60,7109,27,30,31,1371,1357,26, - 28,560,1613,78,514,521,449,3439,3458,516, - 1736,35,1378,32,182,572,2383,30,31,1371, - 1357,3493,5156,1,3361,4161,35,1378,32,655, - 5097,27,30,31,1371,1357,26,28,2089,263, - 23,25,50,2097,106,76,77,108,2870,35, - 279,2853,2748,2743,2825,2789,2889,1487,2868,2937, - 2936,3027,3007,3064,2136,1516,3076,143,6834,2817, - 5520,222,381,144,2283,3679,35,1378,32,517, - 5097,27,30,31,1371,1357,26,28,2089,263, - 23,25,50,2097,106,76,77,108,327,5318, - 3423,2148,2748,3357,2825,2789,2889,2950,2868,2937, - 2936,3027,3007,3064,2085,2738,3076,143,2721,2817, - 559,3045,381,144,382,1708,2845,5067,3650,3995, - 35,1378,32,1884,5097,27,30,31,1371,1357, - 26,28,2089,263,23,25,50,2097,106,76, - 77,108,88,1058,3126,102,2748,2274,2825,2789, - 2889,450,2868,2937,2936,3027,3007,3064,330,337, - 3076,143,3111,1516,382,1708,555,144,5930,388, - 3837,35,1378,32,384,5097,27,30,31,1371, - 1357,26,28,2089,263,23,25,50,2097,106, - 76,77,108,2329,35,281,362,2748,7098,2825, - 2789,2889,2407,2868,2937,2936,3027,3007,3064,1420, - 1516,3076,143,4804,2817,6054,76,381,144,389, - 1490,4072,3344,3540,3577,4002,2882,5156,3805,3357, - 4441,35,1378,32,4145,5097,27,30,31,1371, - 1357,26,28,2089,263,23,25,50,2097,106, - 76,77,108,345,393,2546,156,2748,430,2825, - 2789,2889,1637,2868,2937,2936,3027,3007,3064,382, - 1708,3076,143,5156,446,1740,305,158,144,3436, - 35,1378,32,701,5097,27,30,31,1371,1357, - 26,28,2089,263,23,25,50,2097,106,76, - 77,108,2652,35,1301,391,2748,1019,2825,2789, - 2889,553,2868,2937,2936,3027,3007,3064,804,1804, - 3252,164,302,1315,379,3562,35,1378,32,441, - 7109,27,30,31,1371,1357,59,28,3397,35, - 456,1422,3833,6985,3598,1226,6388,275,2552,35, - 1301,391,329,1666,3912,35,1378,32,3251,5097, - 27,30,31,1371,1357,26,28,2089,263,23, - 25,50,2097,106,76,77,108,3036,2690,1235, - 2836,2748,4072,2825,2789,2889,2390,2868,2937,2936, - 3027,3007,3064,275,2769,3076,143,44,3363,526, - 4068,3119,144,3613,35,1378,32,5156,5097,27, - 30,31,1371,1357,26,28,2089,263,23,25, - 50,2097,106,76,77,108,3460,3128,5212,5156, - 2748,2283,2825,2789,2889,3626,2868,2937,2936,3027, - 3007,3064,3425,76,3076,143,277,6765,2283,72, - 3171,144,4441,35,1378,32,566,5097,27,30, - 31,1371,1357,26,28,2089,263,23,25,50, - 2097,106,76,77,108,3029,646,407,657,2748, - 2732,2825,2789,2889,5582,2868,2937,2936,3027,3007, - 3064,2845,3169,3076,143,2552,35,1301,391,375, - 144,4441,35,1378,32,2677,5097,27,30,31, - 1371,1357,26,28,2089,263,23,25,50,2097, - 106,76,77,108,453,3439,3458,2748,2748,76, - 2825,2789,2889,956,2868,2937,2936,3027,3007,3064, - 275,2354,3076,143,2552,35,1301,391,375,144, - 4441,35,1378,32,2196,5097,27,30,31,1371, - 1357,26,28,2089,263,23,25,50,2097,106, - 76,77,108,2552,35,2614,278,2748,76,2825, - 2789,2889,2149,2868,2937,2936,3027,3007,3064,49, - 1260,3076,143,342,2552,35,297,375,144,46, - 501,3995,35,1378,32,374,5097,27,30,31, - 1371,1357,26,28,2089,263,23,25,50,2097, - 106,76,77,108,2552,35,2614,280,2748,394, - 2825,2789,2889,430,2868,2937,2936,3027,3007,3064, - 3023,5156,3076,143,2552,35,1301,391,555,144, - 3754,35,1378,32,373,5097,27,30,31,1371, - 1357,26,28,2089,263,23,25,50,2097,106, - 76,77,108,2552,35,2614,283,2748,4085,2825, - 2789,2889,93,2868,2937,2936,3027,3007,3064,434, - 179,3076,143,2552,35,1301,391,142,144,4441, - 35,1378,32,371,5097,27,30,31,1371,1357, - 26,28,2089,263,23,25,50,2097,106,76, - 77,108,1516,2159,2552,2236,2748,6074,2825,2789, - 2889,4086,2868,2937,2936,3027,3007,3064,437,5156, - 3076,143,2552,35,1301,391,159,144,4441,35, - 1378,32,5156,5097,27,30,31,1371,1357,26, - 28,2089,263,23,25,50,2097,106,76,77, - 108,2552,35,2614,4061,2748,76,2825,2789,2889, - 1026,2868,2937,2936,3027,3007,3064,436,199,3076, - 143,4338,4546,554,4339,155,144,4441,35,1378, - 32,198,5097,27,30,31,1371,1357,26,28, - 2089,263,23,25,50,2097,106,76,77,108, - 3948,35,2614,278,2748,2743,2825,2789,2889,3126, - 2868,2937,2936,3027,3007,3064,2817,3829,3076,143, - 2552,35,1301,391,154,144,4441,35,1378,32, - 4876,5097,27,30,31,1371,1357,26,28,2089, - 263,23,25,50,2097,106,76,77,108,2552, - 4076,2614,74,2748,76,2825,2789,2889,1116,2868, - 2937,2936,3027,3007,3064,435,2085,3076,143,420, - 4612,614,1708,153,144,4441,35,1378,32,5156, - 5097,27,30,31,1371,1357,26,28,2089,263, - 23,25,50,2097,106,76,77,108,3948,35, - 2614,4079,2748,76,2825,2789,2889,1349,2868,2937, - 2936,3027,3007,3064,2817,5345,3076,143,5334,4678, - 336,337,152,144,4441,35,1378,32,301,5097, - 27,30,31,1371,1357,26,28,2089,263,23, - 25,50,2097,106,76,77,108,2552,35,2614, - 4101,2748,3502,2825,2789,2889,5156,2868,2937,2936, - 3027,3007,3064,2817,76,3076,143,405,4566,614, - 1708,151,144,4441,35,1378,32,5020,5097,27, - 30,31,1371,1357,26,28,2089,263,23,25, - 50,2097,106,76,77,108,2768,3430,5345,4072, - 2748,2283,2825,2789,2889,202,2868,2937,2936,3027, - 3007,3064,392,2085,3076,143,3608,5497,614,1708, - 150,144,4441,35,1378,32,5156,5097,27,30, - 31,1371,1357,26,28,2089,263,23,25,50, - 2097,106,76,77,108,1167,5345,3228,324,2748, - 2743,2825,2789,2889,450,2868,2937,2936,3027,3007, - 3064,2817,3608,3076,143,2843,529,3807,337,149, - 144,4441,35,1378,32,200,5097,27,30,31, - 1371,1357,26,28,2089,263,23,25,50,2097, - 106,76,77,108,500,306,2069,1667,2748,3502, - 2825,2789,2889,5156,2868,2937,2936,3027,3007,3064, - 76,2085,3076,143,5609,5156,614,1708,148,144, - 4441,35,1378,32,5156,5097,27,30,31,1371, - 1357,26,28,2089,263,23,25,50,2097,106, - 76,77,108,299,2552,4055,5345,2748,3502,2825, - 2789,2889,409,2868,2937,2936,3027,3007,3064,76, - 2085,3076,143,5654,2630,332,337,147,144,4441, - 35,1378,32,223,5097,27,30,31,1371,1357, - 26,28,2089,263,23,25,50,2097,106,76, - 77,108,355,424,1689,4035,2748,2283,2825,2789, - 2889,1801,2868,2937,2936,3027,3007,3064,1516,2085, - 3076,143,3608,6102,3825,337,146,144,4441,35, - 1378,32,4341,5097,27,30,31,1371,1357,26, - 28,2089,263,23,25,50,2097,106,76,77, - 108,1167,76,385,565,2748,748,2825,2789,2889, - 2845,2868,2937,2936,3027,3007,3064,2151,3608,3076, - 143,3608,528,4005,337,145,144,4903,35,1378, - 32,3652,5097,27,30,31,1371,1357,26,28, - 2089,263,23,25,50,2097,106,76,77,108, - 1112,356,1220,584,2748,3750,2825,2789,2889,1490, - 2868,2937,2936,3027,3007,3064,1952,1100,3252,164, - 4441,35,1378,32,2845,5097,27,30,31,1371, - 1357,26,28,2089,263,23,25,50,2097,106, - 76,77,108,4411,4580,160,2932,2748,7006,2825, - 2789,2889,1100,2868,2937,2936,3027,3007,3064,3750, - 5392,3076,143,1490,1490,3608,2031,583,144,543, - 539,540,541,2748,4441,35,1378,32,4047,5097, - 27,30,31,1371,1357,26,28,2089,263,23, - 25,50,2097,106,76,77,108,24,396,160, - 156,2748,430,2825,2789,2889,162,2868,2937,2936, - 3027,3007,3064,3245,1536,3076,143,2870,35,282, - 3569,140,144,4441,35,1378,32,1096,5097,27, - 30,31,1371,1357,26,28,2089,263,23,25, - 50,2097,106,76,77,108,463,2748,1220,70, - 2748,76,2825,2789,2889,5805,2868,2937,2936,3027, - 3007,3064,395,2783,3076,143,430,3311,3608,1120, - 3242,144,5345,3357,4441,35,1378,32,2201,5097, - 27,30,31,1371,1357,26,28,2089,263,23, - 25,50,2097,106,76,77,108,5067,4844,5345, - 1689,2748,1933,2825,2789,2889,4045,2868,2937,2936, - 3027,3007,3064,3724,3608,3076,143,3608,7021,2038, - 462,3306,144,4573,35,1378,32,433,5097,27, - 30,31,1371,1357,26,28,2089,263,23,25, - 50,2097,106,76,77,108,5311,76,5156,380, - 2748,2426,2825,2789,2889,2302,2868,2937,2936,3027, - 3007,3064,1516,3976,3076,143,2748,7041,2748,298, - 189,144,4903,35,1378,32,363,5097,27,30, - 31,1371,1357,26,28,2089,263,23,25,50, - 2097,106,76,77,108,71,288,193,2200,2748, - 3750,2825,2789,2889,1490,2868,2937,2936,3027,3007, - 3064,3567,5068,3252,164,4903,35,1378,32,219, - 5097,27,30,31,1371,1357,26,28,2089,263, - 23,25,50,2097,106,76,77,108,507,328, - 160,6553,2748,3433,2825,2789,2889,5345,2868,2937, - 2936,3027,3007,3064,3750,76,3252,164,1490,1490, - 4370,543,539,540,541,89,1804,1692,102,4903, - 35,1378,32,426,5097,27,30,31,1371,1357, - 26,28,2089,263,23,25,50,2097,106,76, - 77,108,562,76,160,156,2748,1376,2825,2789, - 2889,3105,2868,2937,2936,3027,3007,3064,3695,1253, - 3252,164,4903,35,1378,32,296,5097,27,30, - 31,1371,1357,26,28,2089,263,23,25,50, - 2097,106,76,77,108,2546,76,1744,4072,2748, - 1751,2825,2789,2889,289,2868,2937,2936,3027,3007, - 3064,3750,620,3252,164,1490,1490,2432,3608,76, - 3018,5318,3870,779,3063,3357,4903,35,1378,32, - 425,5097,27,30,31,1371,1357,26,28,2089, - 263,23,25,50,2097,106,76,77,108,5067, - 2052,160,156,2748,2220,2825,2789,2889,3894,2868, - 2937,2936,3027,3007,3064,3608,5547,3252,164,5035, - 35,1378,32,428,5097,27,30,31,1371,1357, - 26,28,2089,263,23,25,50,2097,106,76, - 77,108,3523,35,399,2748,2748,2150,2825,2789, - 2889,78,2868,2937,2936,3027,3007,3064,2037,2748, - 3252,164,5101,35,1301,391,2283,4779,1516,3934, - 76,240,263,7062,1303,238,263,586,362,3063, - 3608,594,539,540,541,594,539,540,541,526, - 3608,3239,35,1378,32,4073,5538,27,30,31, - 1371,1357,341,28,3777,3540,3577,275,3869,76, - 1167,2748,2199,1275,542,539,540,541,51,233, - 3450,2917,69,233,5074,3810,325,3315,3271,3607, - 3189,378,648,535,5869,241,231,232,3608,236, - 231,232,3213,35,1378,32,4073,5101,27,30, - 31,1371,1357,341,28,3877,353,321,1252,323, - 276,2474,316,773,569,3063,334,5362,2283,2948, - 68,5356,243,246,249,252,3932,1671,4111,76, - 1115,587,2748,1490,647,3608,3118,717,866,6382, - 6395,2164,2319,5476,3562,35,1378,32,2345,7109, - 27,30,31,1371,1357,58,28,6585,321,1252, - 323,5647,1167,316,773,3357,5595,53,2296,156, - 354,308,312,802,707,3813,3029,346,2475,2376, - 351,358,383,378,542,539,540,541,535,5067, - 76,3494,2277,3919,2530,376,2748,543,539,540, - 541,3608,654,820,2908,649,4606,811,4903,35, - 1378,32,1272,5097,27,30,31,1371,1357,26, - 28,2089,263,23,25,50,2097,106,76,77, - 108,2474,1107,52,3608,2748,334,2825,2789,2889, - 1119,2868,2937,2936,3027,3007,3905,5213,35,1301, - 391,3720,4779,2568,2748,543,539,540,541,4033, - 238,263,5549,6766,5445,1207,3611,357,362,650, - 594,539,540,541,535,89,35,1378,32,4073, - 5101,27,30,31,1371,1357,341,28,543,539, - 540,541,275,1219,3666,3540,3577,3610,543,539, - 540,541,5315,76,1319,3608,3357,2594,233,3820, - 2460,35,4038,32,4073,5538,27,30,31,1371, - 1357,341,28,3608,236,231,232,97,3826,3988, - 345,3608,3608,542,539,540,541,575,2693,1218, - 2748,321,1252,323,907,276,316,773,4034,2028, - 76,5610,1314,721,1473,544,5566,243,246,249, - 252,3932,3946,564,563,1115,587,542,539,540, - 541,3118,717,866,6382,6395,321,1252,323,3608, - 2474,316,773,4066,3608,334,2257,2908,4903,35, - 1378,32,6585,5097,27,30,31,1371,1357,26, - 28,2089,263,23,25,50,2097,106,76,77, - 108,90,5476,98,331,2748,352,2825,2789,2889, - 3608,2868,2937,2936,3027,3867,4903,35,1378,32, - 1020,5097,27,30,31,1371,1357,26,28,2089, - 263,23,25,50,2097,106,76,77,108,6116, - 422,4036,576,2748,76,2825,2789,2889,3031,2868, - 2937,2936,3830,4903,35,1378,32,4065,5097,27, - 30,31,1371,1357,26,28,2089,263,23,25, - 50,2097,106,76,77,108,207,436,4231,1669, - 2748,658,2825,2789,2889,3750,2868,2937,3866,1490, - 76,76,5354,76,1515,2232,807,6890,4646,542, - 539,540,541,2431,76,229,2838,3005,2330,3114, - 549,445,3608,459,2198,4062,686,156,76,775, - 3741,1167,2110,1901,2560,160,180,3130,204,216, - 3783,642,156,203,213,214,215,217,1901,593, - 641,180,169,136,3638,3225,3608,658,3308,35, - 1378,32,4073,5101,27,30,31,1371,1357,341, - 28,168,419,183,167,170,171,172,173,174, - 4346,229,3608,422,3357,3608,196,76,3798,3608, - 4117,1490,686,156,6874,619,3608,1167,622,1901, - 3608,819,180,3935,204,216,3783,642,5067,203, - 213,214,215,217,2297,593,641,454,169,5354, - 822,4264,2289,1490,321,1252,323,156,4330,316, - 773,76,4396,3821,4100,3832,1324,168,1407,184, - 167,170,171,172,173,174,3144,35,1378,32, - 181,5538,27,30,31,1371,1357,341,28,156, - 527,543,539,540,541,2306,3984,3608,201,542, - 539,540,541,3118,35,1378,32,3151,5101,27, - 30,31,1371,1357,341,28,354,508,76,6716, - 2647,3663,2379,346,2475,2376,351,76,76,3816, - 3481,3034,1490,3608,3920,4003,76,619,6970,197, - 2428,3608,321,1252,323,76,2474,317,773,3139, - 3651,335,2008,35,1378,32,4073,5101,27,30, - 31,1371,1357,341,28,67,506,507,156,318, - 1462,323,354,66,3863,542,539,540,541,348, - 2475,2376,351,3608,5515,3608,2545,3027,5336,2327, - 3608,4236,35,1378,32,3385,5097,27,30,31, - 1371,1357,26,28,2089,263,23,25,50,2097, - 106,76,77,81,2487,65,4411,64,321,1252, - 323,7006,55,316,773,2358,131,2186,5362,4903, - 35,1378,32,4121,5097,27,30,31,1371,1357, - 26,28,2089,263,23,25,50,2097,106,76, - 77,108,3597,536,3608,3608,2748,658,2825,2789, - 2889,3346,2868,3800,651,1602,1613,297,3608,3608, - 3978,236,4063,4118,527,542,539,540,541,4198, - 1601,229,308,312,802,4227,54,101,542,539, - 540,541,686,156,3608,924,3608,1167,4335,1901, - 2818,2281,180,2277,204,216,3783,642,775,203, - 213,214,215,217,5601,593,641,76,169,4229, - 636,1490,4481,2404,658,76,2477,5647,4528,3225, - 533,3357,5595,4514,2648,4738,2783,168,3357,4048, - 167,170,171,172,173,174,2751,2839,229,4116, - 542,539,540,541,4287,5067,4070,156,4673,686, - 156,336,345,3865,1167,4071,1901,220,134,180, - 2908,204,216,3783,642,5076,203,213,214,215, - 217,4740,593,641,3864,169,736,4742,3043,5460, - 658,4809,4870,1687,3596,4805,4741,2474,5595,3226, - 432,76,334,4806,168,1490,178,167,170,171, - 172,173,174,2219,229,1139,542,539,540,541, - 5264,4808,4353,5390,1423,686,156,1741,4872,3756, - 1167,5265,1901,4071,362,180,2908,204,216,3783, - 642,156,203,213,214,215,217,3364,593,641, - 8332,169,836,76,8332,8332,658,1490,5324,8332, - 3666,3540,3577,2474,8332,710,8332,8332,334,8332, - 168,8332,176,167,170,171,172,173,174,8332, - 229,543,539,540,541,4158,8332,8332,8332,658, - 8332,686,156,156,8332,5506,1167,8332,1901,3948, - 8332,180,8332,204,216,3783,642,8332,203,213, - 214,215,217,345,593,641,8332,169,936,8332, - 8332,8332,658,8332,3700,156,8332,8332,8332,1167, - 8332,2635,8332,8332,8332,5622,168,8332,585,167, - 170,171,172,173,174,8332,229,8332,8332,8332, - 2541,4158,8332,8332,2538,658,3974,686,156,8332, - 8332,8332,1167,8332,1901,8332,8332,180,8332,204, - 216,3783,642,8332,203,213,214,215,217,345, - 593,641,8332,169,1036,8332,8332,8332,658,8332, - 3700,156,8332,8332,8332,1167,8332,2635,8332,8332, - 8332,5622,168,8332,177,167,170,171,172,173, - 174,8332,229,8332,8332,8332,2541,4158,8332,8332, - 2784,658,8332,686,156,8332,8332,8332,1167,8332, - 1901,8332,8332,180,8332,204,216,3783,642,8332, - 203,213,214,215,217,345,593,641,8332,169, - 1136,8332,8332,8332,658,8332,3700,156,8332,8332, - 8332,1167,8332,2635,8332,8332,8332,5622,168,8332, - 187,167,170,171,172,173,174,8332,229,8332, - 8332,8332,2541,4158,8332,8332,3028,658,8332,686, - 156,8332,8332,8332,1167,8332,1901,8332,8332,180, - 8332,204,216,3783,642,8332,203,213,214,215, - 217,345,593,641,8332,169,1236,8332,8332,8332, - 658,8332,3700,156,8332,8332,8332,1167,8332,2635, - 8332,8332,8332,5622,168,8332,4107,167,170,171, - 172,173,174,8332,229,8332,8332,8332,2541,4158, - 8332,8332,3075,658,8332,686,156,8332,8332,8332, - 1167,8332,1901,8332,8332,180,8332,204,216,3783, - 642,8332,203,213,214,215,217,345,593,641, - 8332,169,1336,8332,8332,8332,658,8332,3700,156, - 8332,8332,8332,1167,8332,2635,8332,8332,8332,5622, - 168,8332,192,167,170,171,172,173,174,8332, - 229,8332,8332,8332,2541,4158,8332,8332,3140,658, - 8332,686,156,8332,8332,8332,1167,8332,1901,8332, - 8332,180,8332,204,216,3783,642,8332,203,213, - 214,215,217,345,593,641,8332,169,1436,8332, - 8332,8332,658,8332,3700,156,8332,8332,8332,1167, - 8332,2635,8332,8332,8332,5622,168,8332,186,167, - 170,171,172,173,174,8332,229,8332,8332,8332, - 2541,8332,8332,8332,3692,8332,4346,686,156,8332, - 3357,8332,1167,8332,1901,8332,8332,180,8332,204, - 216,3783,642,8332,203,213,214,215,217,8332, - 593,641,8332,169,5067,8332,8332,8332,89,35, - 1378,32,4073,5101,27,30,31,1371,1357,341, - 28,8332,168,8332,195,167,170,171,172,173, - 174,542,539,540,541,8332,8332,8332,8332,8332, - 8332,8332,8332,8332,8332,8332,8332,4375,35,1378, - 32,3385,5097,27,30,31,1371,1357,26,28, - 2089,263,23,25,50,2097,106,76,77,81, - 8332,8332,8332,8332,321,1252,323,8332,8332,316, - 773,8332,8332,508,5362,4903,35,1378,32,8332, - 5097,27,30,31,1371,1357,26,28,2089,263, - 23,25,50,2097,106,76,77,108,8332,8332, - 8332,8332,2748,8332,2825,2789,2889,8332,3814,8332, - 652,8332,8332,8332,8332,8332,8332,8332,8332,8332, - 8332,8332,505,507,8332,8332,8332,8332,309,312, - 802,4903,35,1378,32,8332,5097,27,30,31, - 1371,1357,26,28,2089,263,23,25,50,2097, - 106,76,77,108,8332,3599,8332,8332,2748,8332, - 2825,2789,2889,8332,3815,3404,35,4038,32,4073, - 5101,27,30,31,1371,1357,341,28,8332,2455, - 35,1301,391,8332,8332,8332,907,8332,542,539, - 540,541,3787,35,4038,32,4073,5101,27,30, - 31,1371,1357,341,28,8332,8332,8332,4792,542, - 539,540,541,8332,8332,4069,539,540,541,8332, - 8332,8332,2637,8332,49,8332,8332,5595,8332,2908, - 8332,321,1252,323,1814,4792,316,773,8332,8332, - 8332,2257,8332,1801,8332,542,539,540,541,8332, - 8332,8332,8332,1608,8332,8332,3130,8332,321,1252, - 323,8332,8332,316,773,2908,8332,8332,2257,4903, - 35,1378,32,8332,5097,27,30,31,1371,1357, - 26,28,2089,263,23,25,50,2097,106,76, - 77,108,2474,8332,8332,8332,2748,335,2825,2789, - 3682,8332,8332,8332,6624,422,4036,4903,35,1378, - 32,8332,5097,27,30,31,1371,1357,26,28, - 2089,263,23,25,50,2097,106,76,77,108, - 8332,6617,422,4036,2748,8332,2825,2789,3693,4903, - 35,1378,32,8332,5097,27,30,31,1371,1357, - 26,28,2089,263,23,25,50,2097,106,76, - 77,108,8332,8332,8332,8332,2748,8332,2825,2789, - 3705,4903,35,1378,32,8332,5097,27,30,31, - 1371,1357,26,28,2089,263,23,25,50,2097, - 106,76,77,108,8332,8332,8332,8332,2748,8332, - 2825,2789,3708,4903,35,1378,32,8332,5097,27, - 30,31,1371,1357,26,28,2089,263,23,25, - 50,2097,106,76,77,108,8332,8332,8332,8332, - 2748,8332,2825,2789,3711,4903,35,1378,32,8332, - 5097,27,30,31,1371,1357,26,28,2089,263, - 23,25,50,2097,106,76,77,108,8332,8332, - 8332,8332,2748,8332,2825,2789,3730,5620,35,1378, - 32,6887,5101,27,30,31,1371,1357,341,28, - 8332,8332,2669,35,1378,32,4007,5101,27,30, - 31,1371,1357,341,28,8332,8332,2002,35,1301, - 391,2455,35,1301,391,8332,8332,8332,8332,8332, - 4903,35,1378,32,353,5097,27,30,31,1371, - 1357,26,28,2089,263,23,25,50,2097,106, - 76,77,108,321,1252,323,8332,3644,316,773, - 8332,8332,49,4027,8332,8332,49,8332,321,1252, - 323,2360,1814,316,773,3122,1814,5340,2296,8332, - 8332,996,8332,354,8332,720,8332,8332,8332,8332, - 346,2475,2376,351,8332,1755,8332,8332,354,229, - 542,539,540,541,4026,346,2475,2376,351,8332, - 686,8332,2416,8332,8332,8332,8332,807,8332,3494, - 2908,8332,206,216,3783,642,8332,205,213,214, - 215,217,8332,593,641,542,539,540,541,8332, - 542,539,540,541,8332,8332,8332,3459,8332,8332, - 8332,207,209,211,718,2616,8332,8332,8332,8332, - 3375,8332,1100,8332,218,208,210,8332,8332,4903, - 35,1378,32,8332,5097,27,30,31,1371,1357, - 26,28,2089,263,23,25,50,2097,106,76, - 77,108,13,8332,5970,8332,2748,368,2825,3732, - 4903,35,1378,32,8332,5097,27,30,31,1371, - 1357,26,28,2089,263,23,25,50,2097,106, - 76,77,108,8332,8332,8332,8332,2748,8332,2825, - 3776,4302,35,1378,32,8332,5097,27,30,31, - 1371,1357,26,28,2089,263,23,25,50,2097, - 106,76,77,107,2963,8332,2764,35,1378,32, - 6887,5101,27,30,31,1371,1357,341,28,8332, - 662,8332,8332,8332,8332,2817,5157,35,1301,391, - 8332,4779,407,8332,1470,8332,8332,2496,8332,239, - 263,3122,8332,2162,8332,8332,8332,8332,8332,594, - 539,540,541,8332,8332,542,539,540,541,8332, - 8332,3207,35,1301,391,229,542,539,540,541, - 1022,275,321,1252,323,3284,686,316,773,8332, - 614,1708,530,8332,8332,8332,3375,233,206,216, - 3783,642,8332,205,213,214,215,217,8332,593, - 641,8332,354,237,231,232,49,8332,8332,346, - 2475,2376,351,8332,8332,8332,1814,207,209,211, - 718,8332,8332,531,276,47,8332,8332,8332,8332, - 522,208,210,8332,8332,1178,244,247,250,253, - 3932,8332,8332,8332,1115,588,1624,35,1378,32, - 8332,5538,27,30,31,1371,1357,341,28,8332, - 8332,8332,8332,8332,8332,8332,8332,8332,8332,542, - 539,540,541,8332,8332,8332,1624,35,1378,32, - 3006,5538,27,30,31,1371,1357,341,28,2908, - 3302,35,1301,391,8332,8332,8332,8332,8332,542, - 539,540,541,8332,8332,8332,8332,8332,2455,35, - 1301,391,321,1252,323,8332,2474,319,773,6716, - 8332,335,3510,35,1378,32,3420,5101,27,30, - 31,1371,1357,341,28,49,5269,35,1301,391, - 8332,4779,321,1252,323,1814,2474,317,773,239, - 263,335,1687,49,47,8332,8332,5595,8332,594, - 539,540,541,1814,900,2552,35,1301,391,8332, - 8332,406,5157,8332,8332,542,539,540,541,2591, - 607,275,1755,3122,8332,8332,8332,8332,318,1462, - 323,8332,5677,8332,8332,2908,6874,233,8332,8332, - 8332,8332,8332,542,539,540,541,229,8332,8332, - 49,8332,8332,237,231,232,8332,8332,686,8332, - 1814,8332,2474,3342,2686,8332,8332,6903,3122,6110, - 206,216,3783,642,276,205,213,214,215,217, - 8332,593,641,8332,8332,8332,244,247,250,253, - 3932,8332,229,8332,1115,588,8332,8332,8332,207, - 209,211,718,686,8332,8332,8332,807,8332,8332, - 8332,8332,218,208,210,206,216,3783,642,8332, - 205,213,214,215,217,8332,593,641,354,8332, - 542,539,540,541,8332,346,2475,2376,351,1601, - 2278,8332,5970,8332,207,209,211,718,8332,344, - 3375,8332,8332,8332,8332,8332,8332,218,208,210, - 94,4903,35,1378,32,8332,5097,27,30,31, - 1371,1357,26,28,2089,263,23,25,50,2097, - 106,76,77,108,8332,2326,8332,5970,2748,8332, - 3629,4903,35,1378,32,8332,5097,27,30,31, - 1371,1357,26,28,2089,263,23,25,50,2097, - 106,76,77,108,8332,2781,8332,8332,2748,3122, - 3635,4639,35,1378,32,8332,5097,27,30,31, - 1371,1357,26,28,2089,263,23,25,50,2097, - 590,76,77,229,3300,8332,8332,8332,8332,8332, - 8332,8332,8332,8332,686,8332,8332,8332,8332,8332, - 8332,8332,8332,8332,8332,8332,206,216,3783,642, - 8332,205,213,214,215,217,8332,593,641,3334, - 35,1378,32,4073,5101,27,30,31,1371,1357, - 341,28,8332,8332,8332,207,209,211,718,8332, - 8332,8332,543,539,540,541,8332,8332,218,208, - 210,8332,4903,35,1378,32,8332,5097,27,30, - 31,1371,1357,26,28,2089,263,23,25,50, - 2097,106,76,77,108,8332,2742,8332,5970,3647, - 3302,35,1301,391,8332,321,1252,323,8332,8332, - 316,773,8332,8332,8332,5610,4903,35,1378,32, - 8332,5097,27,30,31,1371,1357,26,28,2089, - 263,23,25,50,2097,106,76,77,108,8332, - 2224,8332,8332,3665,3122,49,8332,1602,35,297, - 8332,8332,8332,8332,8332,1814,2876,8332,8332,8332, - 3122,8332,8332,4540,47,8332,8332,8332,229,8332, - 542,539,540,541,2687,8332,8332,8332,8332,686, - 8332,8332,8332,8332,229,8332,542,539,540,541, - 775,206,216,3783,642,686,205,213,214,215, - 217,2971,593,641,8332,3122,3375,206,216,3783, - 642,8332,205,213,214,215,217,8332,593,641, - 207,209,211,718,2455,35,1301,391,8332,229, - 8332,8332,8332,219,208,210,207,209,211,718, - 686,8332,8332,8332,2552,35,1301,391,8332,613, - 208,210,206,216,3783,642,8332,205,213,214, - 215,217,3066,593,641,8332,3122,8332,8332,49, - 8332,8332,3745,35,1301,391,3596,8332,8332,1814, - 1007,207,209,211,718,8332,1307,8332,47,49, - 229,8332,8332,8332,612,208,210,1139,707,1814, - 3413,686,8332,542,539,540,541,8332,2551,542, - 539,540,541,206,216,3783,642,49,205,213, - 214,215,217,2908,593,641,8332,1814,8332,3748, - 8332,8332,8332,8332,8332,8332,47,8332,8332,8332, - 8332,8332,207,209,211,718,1854,8332,8332,8332, - 3459,8332,8332,8332,8332,611,208,210,4903,35, - 1378,32,8332,5097,27,30,31,1371,1357,26, - 28,2089,263,23,25,50,2097,106,76,77, - 85,4903,35,1378,32,8332,5097,27,30,31, - 1371,1357,26,28,2089,263,23,25,50,2097, - 106,76,77,83,4903,35,1378,32,8332,5097, - 27,30,31,1371,1357,26,28,2089,263,23, - 25,50,2097,106,76,77,82,4903,35,1378, - 32,8332,5097,27,30,31,1371,1357,26,28, - 2089,263,23,25,50,2097,106,76,77,81, - 4903,35,1378,32,8332,5097,27,30,31,1371, - 1357,26,28,2089,263,23,25,50,2097,106, - 76,77,80,4903,35,1378,32,8332,5097,27, - 30,31,1371,1357,26,28,2089,263,23,25, - 50,2097,106,76,77,79,4903,35,1378,32, - 8332,5097,27,30,31,1371,1357,26,28,2089, - 263,23,25,50,2097,106,76,77,78,4903, - 2684,1378,3237,8332,5097,27,30,31,1371,1357, - 26,28,2089,263,23,25,50,2097,106,76, - 77,84,3161,8332,8332,8332,3122,8332,8332,8332, - 8332,8332,2406,8332,8332,8332,8332,8332,3256,8332, - 8332,8332,3122,8332,8332,2542,8332,8332,8332,8332, - 229,8332,8332,8332,8332,594,539,540,541,8332, - 8332,686,8332,8332,8332,8332,229,8332,594,539, - 540,541,8332,206,216,3783,642,686,205,213, - 214,215,217,8332,593,641,8332,8332,8332,206, - 216,3783,642,233,205,213,214,215,217,8332, - 593,641,207,209,211,718,233,8332,8332,251, - 231,232,8332,8332,8332,523,208,210,207,209, - 211,718,254,231,232,8332,8332,8332,8332,8332, - 8332,307,208,210,4507,35,1378,32,8332,5097, - 27,30,31,1371,1357,26,28,2089,263,23, - 25,50,2097,106,76,77,104,4903,35,1378, - 32,8332,5097,27,30,31,1371,1357,26,28, - 2089,263,23,25,50,2097,106,76,77,110, - 4903,35,1378,32,8332,5097,27,30,31,1371, - 1357,26,28,2089,263,23,25,50,2097,106, - 76,77,109,4903,35,1378,32,8332,5097,27, - 30,31,1371,1357,26,28,2089,263,23,25, - 50,2097,106,76,77,105,3351,8332,8332,8332, - 3122,4705,35,1378,32,2922,5097,27,30,31, - 1371,1357,26,28,2089,263,23,25,50,2097, - 579,76,77,8332,229,8332,8332,8332,594,539, - 540,541,8332,8332,8332,686,8332,2027,8332,8332, - 8332,8332,8332,8332,2040,8332,8332,206,216,3783, - 642,8332,205,213,214,215,217,8332,593,641, - 542,539,540,541,8332,8332,233,542,539,540, - 541,8332,8332,8332,8332,8332,207,209,211,718, - 4138,8332,589,231,232,8332,8332,3748,8332,502, - 208,210,4771,35,1378,32,8332,5097,27,30, - 31,1371,1357,26,28,2089,263,23,25,50, - 2097,577,76,77,4837,35,1378,32,8332,5097, - 27,30,31,1371,1357,26,28,2089,263,23, - 25,50,2097,86,76,77,1759,35,1378,32, - 8332,5101,27,30,31,1371,1357,341,28,8332, - 3031,35,1301,391,8332,8332,8332,8332,8332,543, - 539,540,541,4969,35,1378,32,8332,5097,27, - 30,31,1371,1357,26,28,2089,263,23,25, - 50,2097,3994,76,77,1956,2273,8332,8332,3357, - 7087,5595,2172,2090,8332,49,8332,3357,7087,8332, - 8332,8332,321,1252,323,1814,8332,605,773,542, - 539,540,541,229,2502,594,539,540,541,8332, - 8332,229,8332,8332,1608,2305,8332,8332,8332,2908, - 8332,8332,8332,8332,8332,8332,1688,410,5552,656, - 8332,8332,8332,8332,1688,410,5552,656,594,539, - 540,541,8332,233,1687,8332,2474,8332,8332,5595, - 8332,335,8332,8332,8332,411,412,413,718,236, - 231,232,8332,411,412,413,718,542,539,540, - 541,8332,354,8332,8332,8332,233,8332,8332,348, - 2475,2376,351,8332,1687,8332,8332,2908,8332,5595, - 8332,6935,236,231,232,3313,8332,1687,8332,8332, - 5047,8332,5595,3313,3357,8332,8332,542,539,540, - 541,8332,8332,2827,2474,8332,8332,8332,5595,334, - 542,539,540,541,6935,8332,8332,2908,5067,8332, - 8332,8332,8332,8332,8332,8332,542,539,540,541, - 2908,8332,8332,632,622,3017,4822,8332,8332,8332, - 8332,8332,8332,8332,2474,8332,2908,414,416,334, - 8332,8332,8332,8332,8332,414,417,2474,594,539, - 540,541,334,8332,8332,76,632,622,634,658, - 5358,8332,8332,2474,807,8332,6766,2195,6903,8332, - 6773,3302,35,1301,391,2455,35,1301,391,3756, - 8332,8332,8332,345,8332,8332,233,508,345,8332, - 8332,635,621,6805,3700,156,2455,35,1301,391, - 156,3198,237,231,232,5622,188,8332,8332,8332, - 3668,2455,35,1301,391,8332,49,8332,5517,8332, - 49,8332,3122,8332,3150,8332,1814,8332,8332,8332, - 1814,2455,35,1301,391,2537,505,507,8332,47, - 8332,49,8332,8332,8332,1562,345,8332,8332,979, - 534,1814,2455,35,1301,391,49,3700,8332,8332, - 47,96,8332,8332,8332,8332,1814,8332,5622,4093, - 1904,8332,8332,8332,8332,47,49,2552,35,1301, - 391,8332,190,8332,8332,1953,1814,537,2552,35, - 1301,391,8332,8332,907,47,8332,49,8332,2552, - 35,1301,391,8332,8332,2002,8332,1814,8332,8332, - 76,76,8332,8332,807,807,47,542,539,540, - 541,8332,49,8332,8332,8332,2100,76,8332,8332, - 76,807,1814,49,3122,8332,8332,2908,345,345, - 8332,1765,76,1814,49,8332,3122,8332,8332,8332, - 156,156,1091,8332,1814,345,188,188,345,8332, - 3668,3668,76,996,3624,2395,3122,156,76,3700, - 345,8332,3122,188,76,76,8332,3668,3122,3122, - 5622,3700,8332,8332,8332,8332,8332,8332,8332,76, - 345,8332,5622,3122,8332,8332,345,8332,8332,3403, - 8332,3700,345,345,8332,8332,76,3700,8332,8332, - 3122,3414,5622,3700,3700,8332,8332,345,5622,8332, - 8332,8332,8332,8332,5622,5622,8332,8332,3700,8332, - 8332,3419,3699,3706,345,8332,8332,3438,8332,5622, - 8332,3978,8332,3632,512,3700,8332,8332,8332,3710, - 8332,8332,8332,8332,8332,8332,5622,8332,510,8332, - 8332,8332,8332,8332,8332,8332,8332,8332,8332,8332, - 8332,8332,8332,8332,8332,538,8332,0,1,230, - 1351,0,504,5367,0,1,230,0,39,8976, - 0,39,8975,639,0,39,8347,0,39,8346, - 0,1,3202,0,751,1,0,39,1,8976, - 0,39,1,8975,0,39,1,8347,0,39, - 1,8346,0,1,3412,0,1,856,0,230, - 220,0,1,847,0,1,914,0,1,1005, - 0,8567,224,0,8566,224,0,847,224,0, - 914,224,0,1005,224,0,1273,224,0,8672, - 224,0,8671,224,0,8594,224,0,8593,224, - 0,8592,224,0,8591,224,0,8590,224,0, - 8589,224,0,8588,224,0,8587,224,0,610, - 640,0,8567,225,0,8566,225,0,847,225, - 0,914,225,0,1005,225,0,1273,225,0, - 8672,225,0,8671,225,0,8594,225,0,8593, - 225,0,8592,225,0,8591,225,0,8590,225, - 0,8589,225,0,8588,225,0,8587,225,0, - 8567,226,0,8566,226,0,847,226,0,914, - 226,0,1005,226,0,1273,226,0,8672,226, - 0,8671,226,0,8594,226,0,8593,226,0, - 8592,226,0,8591,226,0,8590,226,0,8589, - 226,0,8588,226,0,8587,226,0,1005,397, - 0,914,397,0,847,397,0,285,397,0, - 8567,227,0,8566,227,0,847,227,0,914, - 227,0,1005,227,0,1273,227,0,8672,227, - 0,8671,227,0,8594,227,0,8593,227,0, - 8592,227,0,8591,227,0,8590,227,0,8589, - 227,0,8588,227,0,8587,227,0,285,290, - 0,8567,228,0,8566,228,0,847,228,0, - 914,228,0,1005,228,0,1273,228,0,8672, - 228,0,8671,228,0,8594,228,0,8593,228, - 0,8592,228,0,8591,228,0,8590,228,0, - 8589,228,0,8588,228,0,8587,228,0,1789, - 390,0,39,8975,0,8976,48,0,8975,48, - 0,8347,48,0,8346,48,0,8567,592,0, - 8566,592,0,847,592,0,914,592,0,1005, - 592,0,1273,592,0,8672,592,0,8671,592, - 0,8594,592,0,8593,592,0,8592,592,0, - 8591,592,0,8590,592,0,8589,592,0,8588, - 592,0,8587,592,0,8567,242,0,8566,242, - 0,847,242,0,914,242,0,1005,242,0, - 1273,242,0,8672,242,0,8671,242,0,8594, - 242,0,8593,242,0,8592,242,0,8591,242, - 0,8590,242,0,8589,242,0,8588,242,0, - 8587,242,0,8949,242,0,8948,242,0,8947, - 242,0,8606,242,0,8605,242,0,8604,242, - 0,8603,242,0,8602,242,0,8601,242,0, - 8600,242,0,8599,242,0,8598,242,0,8597, - 242,0,8596,242,0,8941,242,0,8940,242, - 0,39,242,8976,0,39,242,8975,638,0, - 39,242,8347,0,39,242,8346,0,8370,242, - 0,1,333,0,38,856,0,38,8976,0, - 38,8975,0,38,8347,0,38,8346,0,457, - 2036,0,443,2134,0,1789,29,0,8344,1, - 0,2183,320,0,1005,602,0,914,602,0, - 847,602,0,606,602,0,606,601,0,8395, - 75,0,8394,75,0,1007,75,0,1077,75, - 0,2629,75,0,2925,75,0,1,604,0, - 1,447,0,461,2643,0,460,2717,0,35, - 33,0,47,37,0,1959,157,0,5003,126, - 0,8344,386,0,8343,386,0,1005,604,0, - 914,604,0,847,604,0,847,637,0,914, - 637,0,1005,637,0,8955,637,0,504,3316, - 0,8370,1,230,0,39,1,230,0,230, - 419,0,1,1982,0,1,8949,0,1,8948, - 0,1,8947,0,1,8606,0,1,8605,0, - 1,8604,0,1,8603,0,1,8602,0,1, - 8601,0,1,8600,0,1,8599,0,1,8598, - 0,1,8597,0,1,8596,0,1,8941,0, - 1,8940,0,1,6581,0,8976,37,0,8975, - 37,0,8347,37,0,8346,37,0,43,8368, - 0,43,37,0,1170,91,0,32,34,0, - 8340,1,0,39,856,0,1005,333,0,914, - 333,0,847,333,0,39,242,8975,0,1, - 714,0,1,863,0,230,221,0,8567,633, - 0,8566,633,0,847,633,0,914,633,0, - 1005,633,0,1273,633,0,8672,633,0,8671, - 633,0,8594,633,0,8593,633,0,8592,633, - 0,8591,633,0,8590,633,0,8589,633,0, - 8588,633,0,8587,633,0,847,636,0,914, - 636,0,1005,636,0,8955,636,0,8342,408, - 0,8341,408,0,230,418,0,8344,591,386, - 0,8343,591,386,0,1,230,3950,0,8341, - 230,0,3951,230,0,8338,1,0,8337,1, - 0,238,2575,0,391,32,0,390,29,0, - 1005,448,0,914,448,0,847,448,0,8370, - 448,0,39,448,0,333,448,0,5003,128, - 0,5003,127,0,8368,45,0,37,45,0, - 8344,580,386,0,8343,580,386,0,8344,578, - 386,0,8343,578,386,0,8344,87,386,0, - 8343,87,386,0,1,92,0,4041,230,0, - 10,12 + 215,215,216,216,217,180,180,181,181,178, + 178,182,179,179,21,21,22,22,23,23, + 23,24,24,24,24,25,25,25,26,26, + 26,34,34,34,34,34,36,36,36,37, + 37,38,38,39,39,42,42,45,45,46, + 46,58,58,58,58,58,70,70,70,74, + 74,76,76,79,79,81,81,83,83,84, + 84,85,85,85,85,85,85,85,85,85, + 85,85,85,85,33,33,49,49,49,49, + 49,49,49,49,49,49,49,49,49,47, + 35,160,160,124,124,218,218,114,249,249, + 96,96,96,96,96,96,96,96,96,97, + 97,97,94,94,59,59,219,219,98,98, + 98,135,135,220,220,99,99,99,99,221, + 221,100,100,100,100,100,101,101,103,103, + 103,103,103,103,103,103,60,60,60,60, + 60,136,136,134,134,61,222,31,31,31, + 31,31,53,53,67,67,67,67,67,122, + 122,129,129,129,129,129,130,130,130,131, + 131,131,132,132,132,137,137,137,68,68, + 68,68,68,69,69,69,13,14,14,14, + 14,14,14,14,14,14,14,14,107,125, + 125,125,125,125,125,116,116,116,184,185, + 185,117,117,223,187,187,186,186,161,161, + 138,91,91,162,63,52,188,188,64,105, + 105,163,163,183,183,139,140,140,141,88, + 88,189,189,77,77,77,72,72,71,78, + 78,95,95,87,87,87,75,119,119,127, + 126,126,50,50,73,73,80,80,57,123, + 123,123,108,108,108,109,109,110,110,110, + 111,111,142,142,142,144,144,143,143,250, + 250,120,120,225,225,225,225,225,165,51, + 51,191,224,224,166,166,112,112,112,113, + 193,226,226,44,44,115,121,121,121,121, + 228,146,145,145,118,118,118,194,195,195, + 195,195,195,195,195,195,195,195,195,230, + 230,227,227,229,229,148,149,149,149,149, + 150,231,151,147,147,232,232,196,196,196, + 196,133,133,133,233,233,8,8,9,234, + 234,235,197,190,190,198,198,199,200,200, + 7,7,10,236,236,236,236,236,236,236, + 236,236,236,236,236,236,236,236,236,236, + 236,236,236,236,236,236,236,236,236,236, + 236,236,236,236,236,236,236,236,236,236, + 236,236,236,236,236,89,92,92,201,201, + 168,168,169,169,169,169,169,169,3,170, + 170,167,167,202,251,252,252,253,253,254, + 255,255,203,204,204,204,204,237,237,237, + 153,153,153,153,153,154,155,155,152,152, + 104,90,102,102,192,192,156,156,238,238, + 238,171,171,164,164,239,239,27,27,27, + 43,43,28,28,240,240,205,205,205,206, + 206,241,241,207,207,29,29,242,242,208, + 208,208,208,30,65,243,243,244,244,209, + 209,209,172,172,172,19,19,19,19,34, + 34,46,17,97,245,157,157,157,128,128, + 31,62,67,141,141,141,148,148,148,223, + 228,146,75,88,184,162,13,13,50,104, + 104,104,18,14,14,14,80,80,66,40, + 173,174,174,174,174,174,174,174,174,174, + 211,211,247,247,246,246,210,210,50,60, + 60,1,1,256,95,95,95,95,95,95, + 95,212,213,213,195,54,1834,35,3267,3255, + 5724,2223,27,30,31,1654,1590,26,28,3254, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,2590,652,597,598,599,2070,1533,177, + 2589,1620,2643,2605,2788,2713,6304,419,2790,77, + 308,2813,176,2806,4961,191,266,2505,35,1703, + 32,5759,4085,27,30,31,1654,1590,57,28, + 1976,1143,77,269,264,265,1563,1563,5086,35, + 1703,32,4863,2584,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,1907,189,189,2055,2402, + 2352,34,2589,309,2643,2605,2788,2713,3720,1878, + 3726,276,279,282,3249,2298,520,992,6745,939, + 5436,285,5627,1946,645,5837,4375,4784,6180,1630, + 35,1703,32,6769,3083,41,30,31,1654,1590, + 3859,35,1703,32,5364,4563,27,30,31,1654, + 1590,374,28,7538,2437,534,2505,4859,1909,35, + 3267,3255,5724,2593,27,30,31,1654,1590,26, + 28,3254,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,652,597,598,599,998, + 5741,177,2589,521,2643,2605,2788,2713,5738,617, + 2790,1240,308,2813,176,623,1117,191,266,8297, + 680,354,1199,356,2055,35,317,349,1121,3706, + 600,597,598,599,61,269,264,265,1923,2584, + 615,2651,601,597,598,599,925,2723,3559,35, + 1703,32,4863,6013,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,3153,309,2055,35,1509,424, + 919,162,1535,276,279,282,3249,725,520,992, + 6964,426,5471,285,347,463,645,5837,4375,4784, + 6180,1719,35,1703,32,6769,3144,2451,30,31, + 1654,1590,672,2047,600,597,598,599,3157,1944, + 488,496,3155,1430,3168,7538,483,3167,2505,3174, + 3859,3244,161,578,2055,35,6535,4635,3559,35, + 1703,32,4863,6013,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,3153,1692,5216,35,1703,32, + 4863,162,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,3153,3765,35,314,3144,3988,2055,3480, + 549,575,3055,579,3525,35,312,78,3157,520, + 4344,1776,3155,5543,3168,3069,618,3167,3246,3174, + 77,3244,161,578,3974,1563,4758,2959,3559,35, + 1703,32,4863,6013,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,3153,2874,5216,35,1703,32, + 4863,162,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,3153,3765,35,314,3144,6035,628,1529, + 549,575,3055,579,4672,35,312,1713,3157,2323, + 35,432,3155,2911,3168,3416,359,3167,3246,3174, + 5934,3244,161,578,3976,1563,2518,719,4162,35, + 1703,32,4863,6013,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,3153,193,5086,35,1703,32, + 4863,162,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,3533,2055,35,4047,3144,2055,35,330, + 549,575,3055,579,360,42,3253,2485,3157,3765, + 35,566,3155,6539,3168,3430,2584,3167,3246,3174, + 4337,3244,161,578,4237,35,1703,32,4863,1384, + 27,30,31,1654,1590,26,28,2249,296,23, + 25,50,2263,106,76,77,108,2513,2563,2543, + 2590,224,604,3032,3143,2959,839,177,2589,3735, + 2643,2605,2788,2713,3927,2651,2790,520,730,2813, + 176,5580,1283,414,4533,35,1703,32,5759,214, + 27,30,31,1654,1590,56,28,2910,2055,3775, + 550,575,3055,579,1719,35,1703,32,495,4500, + 40,30,31,1654,1590,3793,35,1703,32,4863, + 3735,27,30,31,1654,1590,26,28,2249,296, + 23,25,50,2263,106,76,77,108,2513,2563, + 2543,2590,3525,35,315,2301,415,2047,177,2589, + 77,2643,2605,2788,2713,8229,2651,2790,5943,1, + 2813,176,1384,1563,414,3946,35,1703,32,4863, + 3631,27,30,31,1654,1590,26,28,2249,296, + 23,25,50,2263,106,76,77,108,2513,2563, + 2543,2590,2584,189,2055,35,2352,311,177,2589, + 421,2643,2605,2788,2713,195,2651,2790,1548,88, + 2813,176,102,1496,414,77,1719,35,1703,32, + 958,2732,3592,30,31,1654,1590,415,2047,2502, + 4087,35,1703,32,4863,1925,27,30,31,1654, + 1590,26,28,2249,296,23,25,50,2263,106, + 76,77,108,2513,2563,2543,2590,3159,712,325, + 3183,60,4340,177,2589,5683,2643,2605,2788,2713, + 605,3032,2790,358,361,2813,176,415,2047,613, + 593,422,417,4501,35,1703,32,4863,378,27, + 30,31,1654,1590,26,28,2249,296,23,25, + 50,2263,106,76,77,108,2513,2563,2543,2590, + 2596,4864,4085,678,3724,6501,177,2589,2973,2643, + 2605,2788,2713,4636,2466,2790,584,1535,2813,176, + 4096,412,191,3484,35,1703,32,4863,1488,27, + 30,31,1654,1590,26,28,2249,296,23,25, + 50,2263,106,76,77,108,2513,2563,2543,2590, + 2459,3775,2096,2055,35,1509,424,2589,2501,2643, + 2605,2788,2713,520,2984,2790,4398,5220,2943,197, + 4012,35,1703,32,4863,1825,27,30,31,1654, + 1590,26,28,2249,296,23,25,50,2263,106, + 76,77,108,2513,2563,2543,2590,467,4734,35, + 564,4401,1535,177,2589,362,2643,2605,2788,2713, + 1746,1790,2790,3178,215,2813,176,5934,4929,3280, + 821,2584,1563,2055,35,2352,313,611,601,597, + 598,599,2067,2505,1889,3181,3083,1472,4194,35, + 1703,32,6187,2635,27,30,31,1654,1590,26, + 28,3179,193,474,547,3631,3727,35,1703,32, + 4863,3676,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,2590,603,520,4397,630,3252,5687,177, + 2589,2535,2643,2605,2788,2713,946,465,2790,5928, + 2467,2813,176,8126,1563,3281,4501,35,1703,32, + 4863,324,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,2590,4094,189,1548,772,3776,704,177, + 2589,3148,2643,2605,2788,2713,3490,234,2790,77, + 713,2813,176,2940,1563,408,4501,35,1703,32, + 4863,225,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,2590,427,189,712,3675,463,134,177, + 2589,4767,2643,2605,2788,2713,2153,89,2790,4704, + 102,2813,176,6888,2841,408,4501,35,1703,32, + 4863,584,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,2590,5818,3825,2055,35,2352,316,177, + 2589,628,2643,2605,2788,2713,68,3709,2790,2201, + 3083,2813,176,3070,1535,408,1535,2055,35,1509, + 424,601,597,598,599,357,4087,35,1703,32, + 4863,407,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,2590,77,255,1598,3083,2904,2498,177, + 2589,308,2643,2605,2788,2713,520,3070,2790,77, + 7465,2813,176,411,1563,613,3871,35,1703,32, + 4863,406,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,2590,3573,189,928,77,3548,1790,177, + 2589,1048,2643,2605,2788,2713,3994,1535,2790,425, + 832,2813,176,3185,310,175,4501,35,1703,32, + 4863,404,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,2590,2055,35,2352,4046,429,2929,177, + 2589,463,2643,2605,2788,2713,4101,1535,2790,77, + 3290,2813,176,339,1563,192,4501,35,1703,32, + 4863,479,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,2590,428,189,409,77,463,1598,177, + 2589,1138,2643,2605,2788,2713,4204,3568,2790,3638, + 4663,2813,176,2584,7951,188,411,5818,4501,35, + 1703,32,4863,612,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,2681,35,2352,311,533, + 2438,177,2589,77,2643,2605,2788,2713,4856,3070, + 2790,77,1331,2813,176,3651,1563,187,4501,35, + 1703,32,4863,4604,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,51,189,2055,4103,2352, + 74,177,2589,1384,2643,2605,2788,2713,4216,1025, + 2790,77,585,2813,176,3364,1563,186,4501,35, + 1703,32,4863,6290,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,3903,189,2551,3147,742, + 4406,177,2589,3070,2643,2605,2788,2713,4250,2366, + 2790,68,2364,2813,176,332,2911,185,4501,35, + 1703,32,4863,3447,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,2681,35,2352,4108,2692, + 3080,177,2589,77,2643,2605,2788,2713,4778,338, + 2790,77,3955,2813,176,5818,1563,184,4501,35, + 1703,32,4863,2413,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,4500,189,623,44,3253, + 998,177,2589,3257,2643,2605,2788,2713,4254,418, + 2790,77,1564,2813,176,5818,1563,183,4501,35, + 1703,32,4863,3447,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,388,189,910,77,363, + 370,177,2589,7004,2643,2605,2788,2713,3790,3070, + 2790,68,4864,2813,176,4473,6501,182,4501,35, + 1703,32,4863,2413,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,2055,35,2352,4153,2055, + 4038,177,2589,3257,2643,2605,2788,2713,939,335, + 2790,77,93,2813,176,1048,7083,181,4501,35, + 1703,32,4863,222,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,2055,35,2352,565,369, + 370,177,2589,1546,2643,2605,2788,2713,2083,391, + 2790,68,70,2813,176,331,593,180,4501,35, + 1703,32,4863,203,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,1889,2323,35,432,6277, + 324,177,2589,77,2643,2605,2788,2713,1640,624, + 2790,77,5230,2813,176,1125,1563,179,4501,35, + 1703,32,4863,1283,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,77,3595,4500,2459,3775, + 7215,177,2589,322,2643,2605,2788,2713,466,3455, + 2790,77,71,2813,176,1535,2293,178,3643,35, + 1703,32,4863,716,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,3153,2323,35,432,2097,378, + 2055,35,330,189,2792,483,1598,440,2827,1598, + 4119,35,1703,32,6187,2802,27,30,31,1654, + 1590,59,28,531,3359,2941,3812,2760,4119,35, + 1703,32,6187,3070,27,30,31,1654,1590,58, + 28,3929,214,4631,35,1703,32,4863,2811,27, + 30,31,1654,1590,26,28,2249,296,23,25, + 50,2263,106,76,77,108,2513,2563,2543,3153, + 5818,4631,35,1703,32,4863,162,27,30,31, + 1654,1590,26,28,2249,296,23,25,50,2263, + 106,76,77,108,2513,2563,2543,3153,1019,389, + 326,3144,642,1133,162,2055,35,1509,424,324, + 77,390,5818,3157,68,854,5818,3155,593,3168, + 77,5818,3167,5681,3174,1726,3244,161,173,3144, + 600,597,598,599,1592,3776,1036,2597,3282,321, + 4190,3157,8402,457,24,3155,4082,3168,2804,308, + 3167,1150,3174,6709,3244,161,172,4631,35,1703, + 32,4863,715,27,30,31,1654,1590,26,28, + 2249,296,23,25,50,2263,106,76,77,108, + 2513,2563,2543,3153,5818,4631,35,1703,32,4863, + 162,27,30,31,1654,1590,26,28,2249,296, + 23,25,50,2263,106,76,77,108,2513,2563, + 2543,3153,375,1229,77,3144,413,4050,162,2638, + 5672,2055,35,1509,424,3445,5818,3157,4509,77, + 5818,3155,387,3168,2313,416,3167,1699,3174,77, + 3244,161,171,3144,1314,379,2694,2340,384,2800, + 520,2985,3385,2674,7534,3157,8402,620,3383,3155, + 677,3168,3779,4131,3167,49,3174,2413,3244,161, + 170,4631,35,1703,32,4863,46,27,30,31, + 1654,1590,26,28,2249,296,23,25,50,2263, + 106,76,77,108,2513,2563,2543,3153,5818,4631, + 35,1703,32,4863,162,27,30,31,1654,1590, + 26,28,2249,296,23,25,50,2263,106,76, + 77,108,2513,2563,2543,3153,5818,208,68,3144, + 3880,1535,162,2055,35,1509,424,2055,35,1509, + 424,3157,1325,3642,370,3155,387,3168,77,1765, + 3167,1252,3174,1940,3244,161,169,3144,69,379, + 2694,2340,384,77,68,2694,77,4056,1986,3157, + 8402,2953,1598,3155,377,3168,212,470,3167,2599, + 3174,469,3244,161,168,4631,35,1703,32,4863, + 587,27,30,31,1654,1590,26,28,2249,296, + 23,25,50,2263,106,76,77,108,2513,2563, + 2543,3153,232,4631,35,1703,32,4863,162,27, + 30,31,1654,1590,26,28,2249,296,23,25, + 50,2263,106,76,77,108,2513,2563,2543,3153, + 5818,1310,1384,3144,4097,1535,162,2055,35,1509, + 424,77,1638,5818,4731,3157,6062,77,5818,3155, + 387,3168,1450,426,3167,1329,3174,509,3244,161, + 167,3144,68,379,2694,2340,384,1347,1432,600, + 597,598,599,3157,1431,53,1598,3155,577,3168, + 52,468,3167,5740,3174,4082,3244,161,166,4631, + 35,1703,32,4863,586,27,30,31,1654,1590, + 26,28,2249,296,23,25,50,2263,106,76, + 77,108,2513,2563,2543,3153,5818,4631,35,1703, + 32,4863,162,27,30,31,1654,1590,26,28, + 2249,296,23,25,50,2263,106,76,77,108, + 2513,2563,2543,3153,6131,3447,2514,3144,3261,4269, + 162,4341,3070,1126,1444,5867,4044,1851,330,3157, + 68,77,5818,3155,77,3168,2907,2302,3167,4911, + 3174,2696,3244,161,165,3144,600,597,598,599, + 2584,2584,68,600,597,598,599,3157,2810,1369, + 2886,3155,1691,3168,633,2413,3167,3685,3174,925, + 3244,161,164,4631,35,1703,32,4863,231,27, + 30,31,1654,1590,26,28,2249,296,23,25, + 50,2263,106,76,77,108,2513,2563,2543,3153, + 334,5086,35,1703,32,4863,162,27,30,31, + 1654,1590,26,28,2249,296,23,25,50,2263, + 106,76,77,108,2513,2563,2543,2590,322,3594, + 3759,3144,706,705,1745,2589,2793,2643,2605,2788, + 3704,365,370,3157,1901,77,77,3155,1724,3168, + 3245,3251,3167,5766,3174,5818,3244,161,163,5086, + 35,1703,32,4863,913,27,30,31,1654,1590, + 26,28,2249,296,23,25,50,2263,106,76, + 77,108,2513,2563,2543,2590,3800,602,1607,2576, + 35,1509,424,2589,2651,2643,2605,2788,2713,1708, + 3941,2790,4097,1119,2943,197,4501,35,1703,32, + 4863,2196,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,2590,308,827,5818,3719,232,4057,177, + 2589,2584,2643,2605,2788,2713,1716,3486,2790,6128, + 68,2813,176,3168,2588,641,2323,35,2918,3142, + 68,601,597,598,599,672,2047,622,4501,35, + 1703,32,4863,4035,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,2863,4085,438,235,2976, + 49,177,2589,2983,2643,2605,2788,2713,233,3162, + 2790,2035,1044,2813,176,5818,3166,140,4501,35, + 1703,32,4863,707,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,77,3177,621,72,3274, + 4872,177,2589,77,2643,2605,2788,2713,3875,3372, + 2790,3554,68,2813,176,5818,5818,3471,5818,4501, + 35,1703,32,4863,3866,27,30,31,1654,1590, + 26,28,2249,296,23,25,50,2263,106,76, + 77,108,2513,2563,2543,2590,611,90,385,6279, + 634,2793,177,2589,4033,2643,2605,2788,2713,2584, + 442,2790,77,6285,2813,176,2089,1389,3639,4696, + 35,1703,32,4863,3056,27,30,31,1654,1590, + 26,28,2249,296,23,25,50,2263,106,76, + 77,108,2513,2563,2543,3153,6291,5086,35,1703, + 32,4863,162,27,30,31,1654,1590,26,28, + 2249,296,23,25,50,2263,106,76,77,108, + 2513,2563,2543,2590,2672,5934,1695,3144,607,4378, + 1563,2589,77,2643,2605,3646,68,4401,68,3157, + 2888,708,77,3155,5959,3168,2963,2385,3167,6732, + 3174,5818,3244,161,160,4761,35,1703,32,4863, + 193,27,30,31,1654,1590,26,28,2249,296, + 23,25,50,2263,106,76,77,108,2513,2563, + 2543,2590,131,3376,1438,77,256,68,177,2589, + 2637,2643,2605,2788,2713,1745,4206,2790,77,6346, + 2813,176,5818,1563,222,5086,35,1703,32,4863, + 2584,27,30,31,1654,1590,26,28,2249,296, + 23,25,50,2263,106,76,77,108,2513,2563, + 2543,2590,2791,189,3583,226,3276,3686,238,2589, + 2651,2643,2605,2788,2713,4359,2570,2790,5818,3890, + 2943,197,5086,35,1703,32,4863,2668,27,30, + 31,1654,1590,26,28,2249,296,23,25,50, + 2263,106,76,77,108,2513,2563,2543,2590,1031, + 4189,2765,3988,3153,5882,585,2589,4340,2643,2605, + 2788,2713,97,3155,2790,4050,3259,2943,197,3374, + 6354,3470,2044,35,1509,424,601,597,598,599, + 5818,672,2047,6282,5086,35,1703,32,4863,459, + 27,30,31,1654,1590,26,28,2249,296,23, + 25,50,2263,106,76,77,108,2513,2563,2543, + 2590,2651,487,3772,4282,2413,49,5035,2589,5100, + 2643,2605,2788,2713,5165,2890,2790,2035,2033,2943, + 197,5086,35,1703,32,4863,329,27,30,31, + 1654,1590,26,28,2249,296,23,25,50,2263, + 106,76,77,108,2513,2563,2543,2590,1947,1439, + 4510,4640,4965,713,4796,2589,4861,2643,2605,2788, + 2713,3062,541,2790,4233,3373,2943,197,2055,35, + 1509,424,672,2047,5295,3483,601,597,598,599, + 340,3722,370,5086,35,1703,32,4863,458,27, + 30,31,1654,1590,26,28,2249,296,23,25, + 50,2263,106,76,77,108,2513,2563,2543,2590, + 539,540,49,5380,2584,5849,1982,2589,5386,2643, + 2605,2788,2713,2035,1114,2790,3471,4202,2943,197, + 5346,35,1703,32,4863,461,27,30,31,1654, + 1590,26,28,2249,296,23,25,50,2263,106, + 76,77,108,2513,2563,2543,2590,5411,35,1509, + 424,3882,1773,2782,2589,1899,2643,2605,2788,2713, + 271,296,2790,2350,4339,2943,197,4230,3765,35, + 489,4338,6494,4470,652,597,598,599,3879,601, + 597,598,599,4799,844,143,98,644,5818,5728, + 5818,308,4826,35,1703,32,4863,266,27,30, + 31,1654,1590,26,28,2249,296,23,25,50, + 2263,648,76,77,269,264,265,3936,35,489, + 5507,6494,5579,4925,4310,3636,1558,4989,2368,5086, + 35,1703,32,4863,4034,27,30,31,1654,1590, + 26,28,2249,296,23,25,50,2263,106,76, + 77,108,2513,3476,309,600,597,598,599,2438, + 5743,9900,276,279,282,3249,9900,9900,992,6745, + 5818,3464,285,5818,5818,645,5837,4375,4784,6180, + 4044,35,330,9900,6769,2067,5818,2485,35,1703, + 32,5508,4563,27,30,31,1654,1590,374,28, + 2651,9900,5651,3378,7538,3712,67,600,597,598, + 599,9900,9900,9900,600,597,598,599,66,9900, + 5818,1384,5738,925,5818,5086,35,1703,32,4863, + 7150,27,30,31,1654,1590,26,28,2249,296, + 23,25,50,2263,106,76,77,108,2513,2563, + 2543,3539,65,9900,616,9900,64,1117,354,1199, + 356,9900,2299,9900,349,1121,482,3366,3374,9900, + 9900,672,2047,5818,367,997,5818,5281,35,1703, + 32,4863,9900,27,30,31,1654,1590,26,28, + 2249,296,23,25,50,2263,106,76,77,108, + 2513,2563,2543,3153,2203,55,6874,9900,54,5818, + 5523,35,1509,424,3882,486,3366,3374,913,9900, + 5934,9900,9900,271,296,1563,341,345,780,5818, + 5818,601,597,598,599,3144,6344,652,597,598, + 599,101,1607,9900,9900,1583,9900,3157,9900,9900, + 2289,3155,9900,3168,308,193,3167,2841,3995,9900, + 266,3767,3021,601,597,598,599,5818,5818,6347, + 1936,4050,652,597,598,599,3591,269,264,265, + 5148,2030,35,3935,32,5508,4563,27,30,31, + 1654,1590,374,28,627,266,9900,9900,9900,3135, + 5795,591,9900,600,597,598,599,9900,600,597, + 598,599,278,264,265,3065,9900,309,9900,3464, + 4340,2413,9900,9900,6044,276,279,282,3249,2255, + 617,992,6964,9900,9900,285,9900,9900,645,5837, + 4375,4784,6180,3082,4303,9900,6282,6769,8265,9900, + 9900,2299,354,1199,356,9900,2299,9900,349,1121, + 9900,9900,9900,6757,918,9900,9900,7538,367,2602, + 5216,35,1703,32,4863,386,27,30,31,1654, + 1590,26,28,2249,296,23,25,50,2263,106, + 76,77,108,2513,2563,2543,3153,3765,370,9900, + 6874,5216,35,1703,32,4863,9900,27,30,31, + 1654,1590,26,28,2249,296,23,25,50,2263, + 106,76,77,108,2513,2563,2543,3153,3144,6356, + 455,3934,9900,3591,9900,396,9900,5148,387,9900, + 3157,9900,9900,9900,3155,9900,3168,9900,9900,3985, + 9900,379,2694,2340,384,9900,94,9900,9900,3144, + 600,597,598,599,9900,9900,3596,9900,9900,9900, + 9900,3157,9900,9900,9900,3155,3464,3981,5086,35, + 1703,32,4863,9900,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,2590,1133,442,9900,2299,9900, + 3479,716,2589,9900,2643,3654,9900,9900,9900,9900, + 367,5934,9900,9900,9900,9900,1563,9900,9900,9900, + 9900,9900,600,597,598,599,9900,262,9900,9900, + 9900,189,9900,9900,9900,9900,759,1598,4082,9900, + 9900,9900,6912,3018,213,9900,193,237,249,4745, + 700,9900,9900,9900,9900,202,236,246,247,248, + 250,651,699,5216,35,1703,32,4863,9900,27, + 30,31,1654,1590,26,28,2249,296,23,25, + 50,2263,106,76,77,108,2513,2563,2543,3153, + 201,9900,216,200,203,204,205,206,207,136, + 9900,9900,9900,9900,716,3624,35,1703,32,5364, + 4217,27,30,31,1654,1590,374,28,1433,9900, + 9900,3144,9900,4340,9900,9900,9900,3591,9900,9900, + 262,5148,9900,3157,189,4306,9900,3984,3988,759, + 1598,3038,9900,4340,1718,9900,3018,213,9900,378, + 237,249,4745,700,600,597,598,599,202,236, + 246,247,248,250,651,699,9900,9900,9900,6282, + 3464,652,597,598,599,2285,351,1710,356,3382, + 35,1703,32,5508,9900,27,30,31,1654,1590, + 374,28,9900,201,266,217,200,203,204,205, + 206,207,2299,9900,9900,214,600,597,598,599, + 9900,281,264,265,367,4739,5834,9900,9900,9900, + 9900,4340,5228,4077,35,1509,424,9900,9900,9900, + 9900,9900,5768,35,1703,32,5364,4563,27,30, + 31,1654,1590,374,28,9900,6136,6282,9900,9900, + 354,1199,356,3549,2299,9900,350,1121,541,600, + 597,598,599,9900,2118,9900,368,49,6022,4340, + 1235,5355,9900,9900,387,5016,4340,9900,2035,1349, + 600,597,598,599,9900,9900,9900,381,2694,2340, + 384,9900,9900,9900,1341,262,1924,600,597,598, + 599,9900,6282,354,1199,356,538,540,9900,349, + 1121,9900,9900,3464,1235,2649,443,8216,714,9900, + 997,91,35,1703,32,5364,4563,27,30,31, + 1654,1590,374,28,3056,9900,395,9900,9900,3467, + 9900,600,597,598,599,364,9900,9900,600,597, + 598,599,9900,444,445,446,815,3464,3216,3441, + 3466,9900,9900,9900,5016,9900,9900,9900,9900,9900, + 9900,341,345,780,9900,9900,91,35,1703,32, + 5364,4563,27,30,31,1654,1590,374,28,2919, + 9900,541,354,1199,356,2289,9900,3041,349,1121, + 9900,9900,9900,601,597,598,599,9900,9900,997, + 5086,35,1703,32,4863,3718,27,30,31,1654, + 1590,26,28,2249,296,23,25,50,2263,106, + 76,77,108,2513,2563,2543,2590,1357,5934,538, + 540,9900,9900,1563,2589,9900,3626,354,1199,356, + 9900,9900,9900,349,1121,9900,9900,9900,447,450, + 341,345,780,9900,6084,9900,9900,9900,9900,9900, + 9900,9900,4114,193,9900,9900,842,9900,9900,5216, + 35,1703,32,4863,1545,27,30,31,1654,1590, + 26,28,2249,296,23,25,50,2263,106,76, + 77,108,2513,2563,2543,3153,9900,544,2055,35, + 1509,424,716,5086,35,1703,32,4863,9900,27, + 30,31,1654,1590,26,28,2249,296,23,25, + 50,2263,106,76,77,108,3484,3144,262,9900, + 9900,9900,189,9900,9900,9900,9900,759,1598,3973, + 9900,9900,49,9900,3018,213,9900,9900,237,249, + 4745,700,4339,2035,5265,9900,202,236,246,247, + 248,250,651,699,9900,9900,9900,9900,9900,646, + 2055,35,1509,424,716,9900,9900,9900,1789,35, + 1703,32,5364,9900,27,30,31,1654,1590,374, + 28,201,9900,4036,200,203,204,205,206,207, + 262,9900,9900,9900,189,601,597,598,599,759, + 1598,9900,9900,9900,49,1337,3018,213,9900,9900, + 237,249,4745,700,9900,2035,2455,9900,202,236, + 246,247,248,250,651,699,9900,9900,9900,9900, + 9900,748,600,597,598,599,716,9900,9900,354, + 1199,356,9900,9900,9900,663,1121,9900,3464,9900, + 9900,9900,9900,201,9900,211,200,203,204,205, + 206,207,262,9900,9900,9900,189,9900,9900,77, + 9900,759,1598,9900,4077,9900,9900,9900,3018,213, + 3378,9900,237,249,4745,700,9900,9900,9900,9900, + 202,236,246,247,248,250,651,699,9900,9900, + 378,9900,9900,850,2044,35,1509,424,716,2827, + 6041,35,1703,32,5364,4563,27,30,31,1654, + 1590,374,28,9900,9900,201,2941,209,200,203, + 204,205,206,207,262,9900,9900,9900,189,9900, + 9900,9900,9900,759,1598,9900,9900,9900,49,3271, + 3018,213,9900,9900,237,249,4745,700,9900,2035, + 1226,9900,202,236,246,247,248,250,651,699, + 9900,9900,9900,9900,9900,952,2178,35,1509,424, + 716,354,1199,356,9900,9900,9900,349,1121,9900, + 2795,9900,9900,9900,9900,9900,9900,201,4119,643, + 200,203,204,205,206,207,262,9900,9900,9900, + 189,2189,35,1509,424,759,1598,9900,9900,9900, + 49,9900,3018,213,9900,9900,237,249,4745,700, + 9900,2035,47,9900,202,236,246,247,248,250, + 651,699,9900,9900,9900,9900,9900,1054,2044,35, + 1509,424,716,9900,9900,49,9900,9900,5958,9900, + 9900,9900,1287,878,9900,9900,2035,47,9900,201, + 9900,210,200,203,204,205,206,207,262,9900, + 9900,9900,189,2189,35,1509,424,759,1598,378, + 9900,9900,49,189,3018,213,9900,1011,237,249, + 4745,700,9900,2035,4158,221,202,236,246,247, + 248,250,651,699,9900,5370,9900,9900,9900,1156, + 2044,35,1509,424,716,9900,9900,49,9900,9900, + 9900,9900,9900,9900,2795,9900,9900,5737,2035,47, + 9900,201,4340,220,200,203,204,205,206,207, + 262,9900,9900,9900,189,9900,9900,77,9900,759, + 1598,9900,716,9900,49,9900,3018,213,378,1422, + 237,249,4745,700,9900,2035,47,9900,202,236, + 246,247,248,250,651,699,9900,9900,378,9900, + 9900,1258,189,223,1876,9900,716,2827,9900,9900, + 9900,9900,9900,9900,3130,9900,934,9900,9900,9900, + 9900,9900,9900,201,2941,4156,200,203,204,205, + 206,207,262,9900,9900,9900,189,2382,35,1509, + 424,759,1598,9900,9900,9900,9900,3016,3018,213, + 9900,9900,237,249,4745,700,9900,9900,9900,9900, + 202,236,246,247,248,250,651,699,9900,9900, + 9900,9900,9900,1360,4152,35,1509,424,716,9900, + 9900,49,9900,9900,9900,9900,9900,9900,3716,9900, + 9900,9900,2035,47,9900,201,9900,225,200,203, + 204,205,206,207,262,9900,9900,9900,189,2189, + 35,1509,424,759,1598,9900,9900,9900,49,1235, + 3018,213,9900,2690,237,249,4745,700,9900,2035, + 2150,9900,202,236,246,247,248,250,651,699, + 9900,9900,9900,9900,9900,1462,600,597,598,599, + 716,9900,9900,49,9900,9900,9900,9900,9900,9900, + 1947,9900,3464,9900,2035,3039,9900,201,9900,219, + 200,203,204,205,206,207,262,9900,9900,9900, + 189,478,9900,492,9900,759,1598,2066,9900,9900, + 9900,9900,3018,213,3375,3419,237,249,4745,700, + 273,296,9900,9900,202,236,246,247,248,250, + 651,699,9900,9900,652,597,598,599,9900,9900, + 9900,91,35,1703,32,5364,4563,27,30,31, + 1654,1590,374,28,9900,9900,9900,266,9900,201, + 9900,228,200,203,204,205,206,207,600,597, + 598,599,9900,9900,274,264,265,9900,9900,5086, + 35,1703,32,4863,5016,27,30,31,1654,1590, + 26,28,2249,296,23,25,50,2263,106,76, + 77,108,2513,2563,2543,3546,9900,9900,9900,9900, + 9900,9900,354,1199,356,9900,9900,9900,349,1121, + 9900,9900,9900,9900,5086,35,1703,32,4863,997, + 27,30,31,1654,1590,26,28,2249,296,23, + 25,50,2263,106,76,77,108,2513,2563,2543, + 2590,9900,9900,5086,35,1703,32,4863,3629,27, + 30,31,1654,1590,26,28,2249,296,23,25, + 50,2263,106,76,77,108,2513,2563,2543,2590, + 342,345,780,5635,35,553,9900,3643,9900,9900, + 9900,9900,2055,35,1509,424,271,296,9900,4157, + 9900,9900,9900,9900,716,2055,35,1509,424,9900, + 652,597,598,599,2164,35,3935,32,5364,4563, + 27,30,31,1654,1590,374,28,9900,9900,9900, + 378,9900,5834,266,189,9900,49,4340,9900,2827, + 1598,4093,597,598,599,9900,2802,2035,1400,49, + 269,264,265,9900,929,9900,2941,6148,2760,9900, + 2035,1204,9900,6282,9900,9900,6225,35,3935,32, + 5364,4563,27,30,31,1654,1590,374,28,2405, + 9900,600,597,598,599,354,1199,356,9900,9900, + 9900,349,1121,600,597,598,599,3969,276,279, + 282,3249,2602,9900,992,7048,3708,9900,9900,6148, + 5148,9900,6172,7940,8305,8466,9900,9900,6258,35, + 3935,32,5364,4563,27,30,31,1654,1590,374, + 28,9900,9900,600,597,598,599,354,1199,356, + 9900,9900,2200,349,1121,4093,597,598,599,3464, + 2574,9900,395,9900,2602,273,296,2055,35,1509, + 424,6148,6865,455,3934,9900,9900,9900,9900,652, + 597,598,599,9900,4203,3441,3466,652,597,598, + 599,2299,9900,9900,9900,562,563,567,9900,354, + 1199,356,266,368,9900,349,1121,9900,9900,9900, + 266,49,9900,9900,9900,9900,2602,9900,9900,274, + 264,265,2035,1349,7099,455,3934,284,264,265, + 8498,5086,35,1703,32,4863,9900,27,30,31, + 1654,1590,26,28,2249,296,23,25,50,2263, + 106,76,77,108,2513,2563,2543,3576,9900,9900, + 9900,9900,6210,35,1703,32,5364,8454,27,30, + 31,1654,1590,374,28,9900,6865,455,3934,5086, + 35,1703,32,4863,9900,27,30,31,1654,1590, + 26,28,2249,296,23,25,50,2263,106,76, + 77,108,2513,2563,2543,3579,5086,35,1703,32, + 4863,9900,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,108,2513, + 2563,2543,3589,354,1199,356,2069,9900,9900,349, + 1121,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 3924,9900,9900,9900,9900,9900,9900,387,9900,9900, + 9900,9900,9900,600,597,598,599,9900,9900,9900, + 379,2694,2340,384,9900,9900,9900,9900,9900,4334, + 5086,35,1703,32,4863,3923,27,30,31,1654, + 1590,26,28,2249,296,23,25,50,2263,106, + 76,77,108,2513,2563,2543,3970,5086,35,1703, + 32,4863,9900,27,30,31,1654,1590,26,28, + 2249,296,23,25,50,2263,106,76,77,108, + 2513,2563,2543,3971,5086,35,1703,32,4863,9900, + 27,30,31,1654,1590,26,28,2249,296,23, + 25,50,2263,106,76,77,108,2513,2563,2543, + 3972,6297,35,1703,32,5364,8271,27,30,31, + 1654,1590,374,28,2044,35,1509,424,9900,9900, + 9900,2044,35,1509,424,9900,9900,401,5086,35, + 1703,32,4863,386,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 108,2513,2563,2543,4083,4471,9900,9900,49,2055, + 35,1509,424,9900,9900,49,2388,9900,9900,2035, + 47,4077,354,1199,356,9900,2035,47,349,1121, + 9900,9900,600,597,598,599,9900,9900,9900,1923, + 9900,9900,9900,9900,9900,9900,387,262,4082,9900, + 986,9900,9900,49,9900,9900,759,1643,9900,379, + 2694,2340,384,9900,2035,1688,9900,239,249,4745, + 700,9900,9900,9900,3596,9900,238,246,247,248, + 250,651,699,4891,35,1703,32,4863,9900,27, + 30,31,1654,1590,26,28,2249,296,23,25, + 50,2263,637,76,77,240,242,244,815,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,251, + 241,243,5086,35,1703,32,4863,9900,27,30, + 31,1654,1590,26,28,2249,296,23,25,50, + 2263,106,76,77,108,2513,2563,3591,9900,9900, + 13,3053,7439,5086,35,1703,32,4863,9900,27, + 30,31,1654,1590,26,28,2249,296,23,25, + 50,2263,106,76,77,108,2513,2563,3604,4369, + 35,1703,32,4863,9900,27,30,31,1654,1590, + 26,28,2249,296,23,25,50,2263,106,76, + 77,107,6327,35,1703,32,5364,8454,27,30, + 31,1654,1590,374,28,5467,35,1509,424,3882, + 2651,77,9900,9900,9900,9900,4077,3978,272,296, + 751,5148,9900,9900,9900,9900,9900,9900,9900,2671, + 9900,9900,652,597,598,599,4157,9900,9900,9900, + 9900,716,378,9900,600,597,598,599,9900,308, + 9900,2827,9900,9900,9900,266,652,597,598,599, + 3464,9900,9900,354,1199,356,9900,378,2941,349, + 1121,189,270,264,265,9900,2827,1598,9900,266, + 588,672,2047,2802,9900,9900,9900,387,9900,9900, + 9900,3290,2299,2941,9900,2760,287,264,265,9900, + 379,2694,2340,384,6757,9900,9900,9900,9900,9900, + 9900,9900,309,9900,9900,589,2811,9900,9900,9900, + 277,280,283,3249,9900,2771,992,9900,9900,9900, + 286,9900,9900,646,1654,35,1703,32,5508,9900, + 27,30,31,1654,1590,374,28,9900,2044,35, + 1509,424,600,597,598,599,9900,9900,9900,9900, + 9900,600,597,598,599,9900,9900,9900,4366,9900, + 9900,9900,1654,35,1703,32,5508,3464,27,30, + 31,1654,1590,374,28,9900,9900,9900,9900,9900, + 3444,9900,49,9900,5148,9900,9900,96,9900,600, + 597,598,599,2035,47,354,1199,356,9900,2299, + 9900,352,1121,9900,9900,5228,9900,600,597,598, + 599,368,9900,9900,5579,35,1509,424,3882,9900, + 9900,4157,9900,3464,3023,9900,716,272,296,9900, + 9900,9900,9900,354,1199,356,9900,2299,9900,350, + 1121,652,597,598,599,9900,9900,9900,9900,368, + 9900,9900,378,9900,2621,2299,189,9900,308,4077, + 9900,2827,1598,9900,266,9900,9900,368,2802,9900, + 9900,9900,9900,9900,9900,387,9900,9900,2941,9900, + 2760,270,264,265,9900,262,9900,9900,381,2694, + 2340,384,9900,9900,759,9900,9900,9900,5691,35, + 553,2916,9900,9900,9900,239,249,4745,700,9900, + 9900,272,296,9900,238,246,247,248,250,651, + 699,309,9900,9900,9900,652,597,598,599,277, + 280,283,3249,2718,9900,992,9900,9900,4077,286, + 9900,9900,646,240,242,244,815,9900,266,2958, + 9900,9900,9900,9900,9900,9900,9900,251,241,243, + 9900,9900,9900,9900,262,270,264,265,9900,9900, + 9900,9900,9900,759,9900,9900,600,597,598,599, + 9900,9900,9900,9900,239,249,4745,700,1997,9900, + 7439,9900,4334,238,246,247,248,250,651,699, + 3346,35,1703,32,5364,4563,27,30,31,1654, + 1590,374,28,277,280,283,3249,9900,9900,992, + 9900,9900,240,242,244,815,9900,601,597,598, + 599,9900,9900,9900,9900,9900,251,241,243,5086, + 35,1703,32,4863,9900,27,30,31,1654,1590, + 26,28,2249,296,23,25,50,2263,106,76, + 77,108,2513,3483,9900,2815,9900,2199,9900,7439, + 4077,354,1199,356,9900,9900,9900,349,1121,9900, + 6108,9900,9900,9900,9900,4077,9900,9900,6084,9900, + 9900,9900,9900,9900,9900,9900,262,9900,9900,9900, + 562,563,568,9900,9900,759,9900,9900,9900,9900, + 9900,378,592,9900,9900,9900,239,249,4745,700, + 2827,9900,9900,9900,9900,238,246,247,248,250, + 651,699,4956,35,1703,32,4863,2941,27,30, + 31,1654,1590,26,28,2249,296,23,25,50, + 2263,635,76,77,240,242,244,815,9900,9900, + 595,9900,9900,9900,9900,9900,9900,9900,251,241, + 243,5086,35,1703,32,4863,9900,27,30,31, + 1654,1590,26,28,2249,296,23,25,50,2263, + 106,76,77,108,3525,9900,9900,9900,9900,2449, + 9900,7439,5086,35,1703,32,4863,9900,27,30, + 31,1654,1590,26,28,2249,296,23,25,50, + 2263,106,76,77,108,3529,4303,35,1703,32, + 4863,9900,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,81,4435, + 35,1703,32,4863,9900,27,30,31,1654,1590, + 26,28,2249,296,23,25,50,2263,106,76, + 77,81,2524,9900,9900,9900,9900,4077,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,2252, + 9900,9900,9900,9900,4077,9900,9900,9900,9900,9900, + 9900,9900,9900,262,9900,9900,9900,9900,709,9900, + 9900,9900,759,9900,9900,2044,35,1509,424,4399, + 262,9900,9900,239,249,4745,700,9900,9900,759, + 9900,710,238,246,247,248,250,651,699,6164, + 239,249,4745,700,9900,9900,9900,9900,9900,238, + 246,247,248,250,651,699,9900,9900,9900,49, + 2912,240,242,244,815,4077,652,597,598,599, + 2035,47,9900,9900,9900,580,241,243,240,242, + 244,815,9900,9900,2044,35,1509,424,2768,266, + 9900,262,252,241,243,9900,9900,9900,9900,9900, + 759,3027,9900,9900,9900,77,269,264,265,9900, + 4077,239,249,4745,700,652,597,598,599,9900, + 238,246,247,248,250,651,699,3009,49,77, + 9900,9900,4077,9900,4077,9900,378,9900,266,2035, + 47,9900,9900,9900,9900,2827,9900,9900,9900,240, + 242,244,815,9900,9900,647,264,265,262,9900, + 378,7623,2941,671,241,243,9900,759,9900,2827, + 3137,9900,9900,2865,9900,9900,9900,9900,239,249, + 4745,700,9900,9900,9900,3297,2941,238,246,247, + 248,250,651,699,3106,9900,9900,9900,9900,4077, + 652,597,598,599,9900,9900,9900,9900,9900,3360, + 9900,9900,690,680,9900,9900,240,242,244,815, + 9900,9900,9900,266,9900,262,9900,9900,9900,9900, + 670,241,243,9900,759,9900,9900,9900,9900,9900, + 270,264,265,9900,9900,239,249,4745,700,9900, + 693,9900,9900,9900,238,246,247,248,250,651, + 699,5021,35,1703,32,4863,9900,27,30,31, + 1654,1590,26,28,2249,296,23,25,50,2263, + 86,76,77,240,242,244,815,9900,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,669,241,243, + 5086,35,1703,32,4863,9900,27,30,31,1654, + 1590,26,28,2249,296,23,25,50,2263,106, + 76,77,85,5086,35,1703,32,4863,9900,27, + 30,31,1654,1590,26,28,2249,296,23,25, + 50,2263,106,76,77,83,5086,35,1703,32, + 4863,9900,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,82,5086, + 35,1703,32,4863,9900,27,30,31,1654,1590, + 26,28,2249,296,23,25,50,2263,106,76, + 77,81,5086,35,1703,32,4863,9900,27,30, + 31,1654,1590,26,28,2249,296,23,25,50, + 2263,106,76,77,80,5086,35,1703,32,4863, + 9900,27,30,31,1654,1590,26,28,2249,296, + 23,25,50,2263,106,76,77,79,5086,35, + 1703,32,4863,9900,27,30,31,1654,1590,26, + 28,2249,296,23,25,50,2263,106,76,77, + 78,5086,2402,1703,2927,4863,9900,27,30,31, + 1654,1590,26,28,2249,296,23,25,50,2263, + 106,76,77,84,3203,9900,9900,9900,9900,4077, + 2962,9900,9900,9900,9900,9900,9900,9900,9900,77, + 9900,3300,9900,77,4077,9900,4077,9900,4077,9900, + 9900,9900,9900,9900,9900,262,9900,652,597,598, + 599,9900,9900,9900,759,9900,9900,9900,9900,9900, + 378,9900,262,9900,378,239,249,4745,700,2827, + 266,759,9900,2827,238,246,247,248,250,651, + 699,9900,239,249,4745,700,2941,278,264,265, + 2941,238,246,247,248,250,651,699,9900,9900, + 9900,9900,9900,240,242,244,815,9900,9900,3731, + 9900,9900,9900,545,9900,9900,9900,581,241,243, + 240,242,244,815,9900,9900,9900,9900,9900,9900, + 9900,9900,9900,9900,340,241,243,4566,35,1703, + 32,4863,9900,27,30,31,1654,1590,26,28, + 2249,296,23,25,50,2263,106,76,77,104, + 5086,35,1703,32,4863,9900,27,30,31,1654, + 1590,26,28,2249,296,23,25,50,2263,106, + 76,77,110,5086,35,1703,32,4863,9900,27, + 30,31,1654,1590,26,28,2249,296,23,25, + 50,2263,106,76,77,109,5086,35,1703,32, + 4863,9900,27,30,31,1654,1590,26,28,2249, + 296,23,25,50,2263,106,76,77,105,3397, + 9900,9900,9900,9900,4077,5151,35,1703,32,4863, + 9900,27,30,31,1654,1590,26,28,2249,296, + 23,25,50,2263,3864,76,77,9900,9900,9900, + 262,9900,9900,9900,9900,9900,9900,9900,9900,759, + 9900,9900 }; }; public interface BaseAction1 { public final static char baseAction1[] = { - 0,8370,1,0,39,1,0,590,579,0, - 1273,338,0,8672,338,0,8671,338,0,4081, - 100,0,8,10,12,0,4075,194,0,8976, - 2,37,0,8975,2,37,0,8347,2,37, - 0,8346,2,37,0,8976,36,0,8975,36, - 0,8347,36,0,8346,36,0,1005,599,0, - 914,599,0,847,599,0,1005,598,0,914, - 598,0,847,598,0,542,543,0,3605,103, - 0,3079,99,0,1005,95,0,914,95,0, - 847,95,0,8370,95,0,39,95,0,333, - 95,0,8344,591,580,386,0,591,580,0, - 35,73,0,4103,386,0,1005,599,600,0, - 914,599,600,0,847,599,600,0,599,600, - 0,280,2924,0,8,12,0,185,4462,0 + 9900,9900,9900,9900,9900,9900,9900,9900,239,249, + 4745,700,9900,9900,9900,9900,9900,238,246,247, + 248,250,651,699,6270,35,1703,32,5364,4411, + 27,30,31,1654,1590,374,28,1984,9900,9900, + 9900,6022,4340,9900,9900,9900,240,242,244,815, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 535,241,243,9900,9900,9900,9900,9900,262,9900, + 9900,9900,439,6086,9900,9900,9900,5148,4340,6086, + 9900,77,9900,5148,4340,9900,4077,9900,2649,443, + 8216,714,9900,9900,9900,351,1710,356,9900,9900, + 600,597,598,599,6282,6118,600,597,598,599, + 6282,9900,378,3059,9900,9900,3464,9900,9900,9900, + 9900,2827,3464,9900,9900,9900,444,445,446,815, + 9900,9900,652,597,598,599,9900,9900,2941,9900, + 652,597,598,599,4157,9900,9900,9900,2299,716, + 9900,9900,9900,9900,2299,266,9900,9900,9900,9900, + 367,543,9900,266,9900,9900,367,9900,9900,9900, + 3041,4157,269,264,265,378,716,9900,9900,189, + 281,264,265,9900,2827,1598,9900,9900,9900,9900, + 9900,2802,6930,395,9900,9900,9900,9900,4819,395, + 9900,2941,378,2760,77,9900,189,9900,9900,4077, + 3591,2827,1598,1341,5148,3782,3441,3466,2802,9900, + 9900,3782,3441,3466,2920,9900,9900,7623,2941,9900, + 2760,447,449,9900,9900,378,9900,600,597,598, + 599,4157,9900,9900,2827,9900,716,9900,9900,9900, + 9900,2988,77,3464,9900,9900,9900,878,9900,9900, + 9900,2941,3591,9900,1943,9900,5148,4904,9900,9900, + 9900,9900,378,9900,3156,9900,189,9900,690,680, + 9900,2827,1598,378,596,2299,9900,189,2802,600, + 597,598,599,9900,9900,9900,9900,367,2941,221, + 2760,652,597,598,599,3464,3253,9900,9900,5370, + 9900,9900,9900,5928,9900,77,692,9900,878,9900, + 878,3828,77,9900,266,9900,9900,878,9900,6930, + 9900,9900,9900,652,597,598,599,2299,9900,9900, + 9900,284,264,265,3575,9900,378,9900,189,367, + 189,679,7489,378,9900,9900,266,189,9900,9900, + 3018,213,221,9900,9900,9900,9900,9900,9900,221, + 9900,9900,5370,569,264,265,9900,9900,9900,5370, + 9900,4819,9900,9900,9900,9900,9900,4118,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,229,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 4120,9900,9900,9900,9900,9900,9900,4200,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,9900,9900, + 9900,9900,9900,9900,5518,230,9900,0,1,263, + 747,0,537,7422,0,1,263,0,39,10602, + 0,39,10601,697,0,39,9915,0,39,9914, + 0,1,860,0,849,1,0,39,1,10602, + 0,39,1,10601,0,39,1,9915,0,39, + 1,9914,0,1,5597,0,1,818,0,263, + 253,0,1,1198,0,1,1227,0,1,1358, + 0,10168,257,0,10167,257,0,1198,257,0, + 1227,257,0,1358,257,0,1439,257,0,10273, + 257,0,10272,257,0,10195,257,0,10194,257, + 0,10193,257,0,10192,257,0,10191,257,0, + 10190,257,0,10189,257,0,10188,257,0,668, + 698,0,10168,258,0,10167,258,0,1198,258, + 0,1227,258,0,1358,258,0,1439,258,0, + 10273,258,0,10272,258,0,10195,258,0,10194, + 258,0,10193,258,0,10192,258,0,10191,258, + 0,10190,258,0,10189,258,0,10188,258,0, + 10168,259,0,10167,259,0,1198,259,0,1227, + 259,0,1358,259,0,1439,259,0,10273,259, + 0,10272,259,0,10195,259,0,10194,259,0, + 10193,259,0,10192,259,0,10191,259,0,10190, + 259,0,10189,259,0,10188,259,0,1358,430, + 0,1227,430,0,1198,430,0,318,430,0, + 10168,260,0,10167,260,0,1198,260,0,1227, + 260,0,1358,260,0,1439,260,0,10273,260, + 0,10272,260,0,10195,260,0,10194,260,0, + 10193,260,0,10192,260,0,10191,260,0,10190, + 260,0,10189,260,0,10188,260,0,318,323, + 0,10168,261,0,10167,261,0,1198,261,0, + 1227,261,0,1358,261,0,1439,261,0,10273, + 261,0,10272,261,0,10195,261,0,10194,261, + 0,10193,261,0,10192,261,0,10191,261,0, + 10190,261,0,10189,261,0,10188,261,0,1495, + 423,0,39,10601,0,10602,48,0,10601,48, + 0,9915,48,0,9914,48,0,10168,650,0, + 10167,650,0,1198,650,0,1227,650,0,1358, + 650,0,1439,650,0,10273,650,0,10272,650, + 0,10195,650,0,10194,650,0,10193,650,0, + 10192,650,0,10191,650,0,10190,650,0,10189, + 650,0,10188,650,0,10168,275,0,10167,275, + 0,1198,275,0,1227,275,0,1358,275,0, + 1439,275,0,10273,275,0,10272,275,0,10195, + 275,0,10194,275,0,10193,275,0,10192,275, + 0,10191,275,0,10190,275,0,10189,275,0, + 10188,275,0,10575,275,0,10574,275,0,10573, + 275,0,10207,275,0,10206,275,0,10205,275, + 0,10204,275,0,10203,275,0,10202,275,0, + 10201,275,0,10200,275,0,10199,275,0,10198, + 275,0,10197,275,0,10567,275,0,10566,275, + 0,39,275,10602,0,39,275,10601,696,0, + 39,275,9915,0,39,275,9914,0,9938,275, + 0,1,366,0,38,818,0,38,10602,0, + 38,10601,0,38,9915,0,38,9914,0,490, + 2036,0,476,2136,0,1495,29,0,9912,1, + 0,2193,353,0,1358,660,0,1227,660,0, + 1198,660,0,664,660,0,664,659,0,9963, + 75,0,9962,75,0,767,75,0,1364,75, + 0,1707,75,0,1839,75,0,1,662,0, + 1,480,0,494,949,0,493,1306,0,35, + 33,0,47,37,0,2056,190,0,6299,126, + 0,9912,419,0,9911,419,0,1358,662,0, + 1227,662,0,1198,662,0,1198,695,0,1227, + 695,0,1358,695,0,10581,695,0,537,3057, + 0,9938,1,263,0,39,1,263,0,263, + 452,0,1,1653,0,1,10575,0,1,10574, + 0,1,10573,0,1,10207,0,1,10206,0, + 1,10205,0,1,10204,0,1,10203,0,1, + 10202,0,1,10201,0,1,10200,0,1,10199, + 0,1,10198,0,1,10197,0,1,10567,0, + 1,10566,0,10602,37,0,10601,37,0,9915, + 37,0,9914,37,0,43,9936,0,43,37, + 0,2601,91,0,32,34,0,9908,1,0, + 39,818,0,1358,366,0,1227,366,0,1198, + 366,0,39,275,10601,0,1,1209,0,1, + 2586,0,263,254,0,10168,691,0,10167,691, + 0,1198,691,0,1227,691,0,1358,691,0, + 1439,691,0,10273,691,0,10272,691,0,10195, + 691,0,10194,691,0,10193,691,0,10192,691, + 0,10191,691,0,10190,691,0,10189,691,0, + 10188,691,0,1198,694,0,1227,694,0,1358, + 694,0,10581,694,0,9910,441,0,9909,441, + 0,263,451,0,1,6613,0,1,7282,0, + 1,7711,0,1,7750,0,1,7773,0,1, + 7796,0,1,7819,0,1,7842,0,1,7865, + 0,1,7888,0,1,7911,0,1,9922,0, + 1,9921,0,1,9920,0,1,9919,0,1, + 9918,0,1,9917,0,1,9916,0,1,2050, + 0,1,2053,0,1,2100,0,1,2147,0, + 1,2205,0,1,2658,0,39,1,0,9912, + 649,419,0,9911,649,419,0,1,263,3817, + 0,9909,263,0,3818,263,0,9906,1,0, + 9905,1,0,271,1220,0,424,32,0,423, + 29,0,1358,481,0,1227,481,0,1198,481, + 0,9938,481,0,39,481,0,366,481,0, + 6299,128,0,6299,127,0,1198,570,0,1227, + 570,0,1358,570,0,1198,571,0,1227,571, + 0,1358,571,0,1198,572,0,1227,572,0, + 1358,572,0,1198,573,0,1227,573,0,1358, + 573,0,1198,574,0,1227,574,0,1358,574, + 0,275,10602,0,275,10601,0,275,9915,0, + 275,9914,0,9936,45,0,37,45,0,9912, + 638,419,0,9911,638,419,0,9912,636,419, + 0,9911,636,419,0,9912,87,419,0,9911, + 87,419,0,1,92,0,4000,263,0,10, + 12,0,9938,1,0,648,637,0,1439,371, + 0,10273,371,0,10272,371,0,2401,100,0, + 8,10,12,0,4101,227,0,10602,2,37, + 0,10601,2,37,0,9915,2,37,0,9914, + 2,37,0,10602,36,0,10601,36,0,9915, + 36,0,9914,36,0,1358,657,0,1227,657, + 0,1198,657,0,1358,656,0,1227,656,0, + 1198,656,0,600,601,0,5078,103,0,4050, + 99,0,1358,95,0,1227,95,0,1198,95, + 0,9938,95,0,39,95,0,366,95,0, + 9912,649,638,419,0,649,638,0,35,73, + 0,4155,419,0,1358,657,658,0,1227,657, + 658,0,1198,657,658,0,657,658,0,313, + 4350,0,8,12,0,218,5723,0 }; }; @@ -1638,581 +1952,649 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,56,57,58,59, 60,61,62,63,64,65,66,0,68,69, - 70,71,72,0,74,0,3,0,78,79, - 80,81,82,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 100,101,102,103,104,105,106,107,108,109, + 70,71,72,73,74,75,0,0,78,79, + 3,14,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,102,103,104,105,106,107,108,109, 110,111,112,113,114,115,116,117,118,119, 120,121,122,123,124,125,126,127,128,129, - 0,1,0,0,134,0,1,2,3,4, + 0,1,65,0,134,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,58,59,60,61,62,63,64, - 65,66,135,68,69,70,0,72,73,74, - 75,76,77,7,8,9,81,82,0,0, - 85,88,87,88,89,90,91,92,93,0, - 95,96,97,98,99,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,58,59,60,61,62,63,64, - 65,66,83,68,69,70,0,72,73,74, - 75,76,77,7,8,9,81,82,100,101, - 85,102,87,88,89,90,91,92,93,0, - 95,96,97,98,99,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,58,59,60,61,62,63,64, - 65,66,0,68,69,70,0,72,73,74, - 75,76,77,7,8,9,81,82,0,0, - 85,0,87,88,89,90,91,92,93,0, - 95,96,97,98,99,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,58,59,60,61,62,63,64, - 65,66,83,68,69,70,0,72,73,74, - 75,76,77,7,8,9,81,82,100,101, - 85,100,101,88,89,90,91,92,93,0, - 95,96,97,98,99,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,58,59,60,61,62,63,64, - 65,66,0,68,69,70,0,72,73,74, - 75,76,77,7,8,9,81,82,0,0, - 85,0,0,88,89,90,91,92,93,0, - 95,96,97,98,99,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,58,59,60,61,62,63,64, - 65,66,83,68,69,70,0,72,73,74, - 75,76,77,7,8,9,81,82,100,101, - 85,100,101,88,89,90,91,92,93,0, - 95,96,97,98,99,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,58,59,60,61,62,63,64, - 65,66,0,68,69,70,0,72,73,74, - 75,76,77,7,8,9,81,82,0,0, - 85,0,0,88,89,90,91,92,93,0, - 95,96,97,98,99,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,58,59,60,61,62,63,64, - 65,66,83,68,69,70,0,72,73,74, - 75,76,77,7,8,9,81,82,100,101, - 85,100,101,88,89,90,91,92,93,0, - 95,96,97,98,99,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,58,59,60,61,62,63,64, - 65,66,0,68,69,70,0,72,73,74, - 75,76,77,7,8,9,81,82,0,0, - 85,0,0,88,89,90,91,92,93,0, - 95,96,97,98,99,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,58,59,60,61,62,63,64, - 65,66,84,68,69,70,0,72,73,74, - 75,76,77,7,8,9,81,82,0,0, - 85,102,0,88,89,90,91,92,93,0, - 95,96,97,98,99,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,58,59,60,61,62,63,64, - 65,66,84,68,69,70,0,72,73,74, - 75,76,77,7,8,9,81,82,0,0, - 85,102,0,88,89,90,91,92,93,10, - 95,96,97,98,99,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,58,59,60,61,62,63,64, - 65,66,84,68,69,70,0,72,73,74, - 75,76,77,7,8,9,81,82,0,0, - 85,0,0,88,89,90,91,92,93,0, - 95,96,97,98,99,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,58,59,60,61,62,63,64, - 65,66,84,68,69,70,0,72,73,74, - 75,76,77,7,8,9,81,82,0,0, - 85,0,0,88,89,90,91,92,93,0, - 95,96,97,98,99,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,58,59,60,61,62,63,64, - 65,66,0,68,69,70,85,72,73,74, - 75,76,77,0,12,0,81,82,5,0, - 85,6,0,88,89,90,91,92,93,0, - 95,96,97,98,99,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 131,132,133,51,0,0,1,2,3,4, - 0,7,8,9,0,10,11,0,33,34, - 35,36,37,38,39,40,41,42,43,44, - 45,79,47,48,49,50,51,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 0,0,1,2,3,4,71,72,7,8, - 9,0,0,78,79,80,5,5,83,84, - 85,86,87,0,1,2,3,4,5,6, - 7,8,9,10,11,100,101,102,103,104, - 105,106,107,108,109,110,111,112,113,114, - 115,116,117,118,119,120,121,122,123,124, - 125,126,127,128,129,0,0,67,0,134, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,0,0,0,0,0, - 78,0,6,7,8,9,7,8,9,13, - 14,13,14,33,34,35,36,37,38,39, - 40,41,42,43,44,45,0,47,48,49, - 50,51,33,34,35,36,37,38,39,40, - 41,42,43,44,45,0,1,2,3,4, - 0,71,72,0,78,10,11,79,78,79, - 80,86,84,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,114,115,116,117,118,119, - 120,121,122,123,124,125,126,127,128,129, - 0,110,111,0,134,0,1,2,3,4, - 5,6,7,8,9,10,11,14,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,113,52,53,54, - 55,56,57,58,59,60,61,62,63,64, - 65,66,0,68,69,70,136,5,78,74, - 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,45,46,47,48,49, - 50,0,52,53,54,55,56,57,58,59, - 60,61,62,63,64,65,66,0,68,69, - 70,0,5,0,74,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,0,1,2,3,4,51,0,1,2, + 65,66,0,68,69,70,73,0,1,74, + 75,76,77,0,12,80,81,82,83,12, + 85,0,87,0,0,90,91,92,93,94, + 95,0,97,98,99,100,101,0,1,2, 3,4,5,6,7,8,9,10,11,12, - 67,66,67,68,69,70,0,0,73,78, - 75,76,77,7,8,9,0,0,83,0, - 13,0,87,7,8,9,7,8,9,94, - 0,15,16,17,18,19,20,21,51,23, - 24,25,26,27,28,29,30,31,0,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,81,82,47,48,131,132,133,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,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,60,61,62, + 63,64,65,66,73,68,69,70,85,78, + 86,74,75,76,77,113,114,80,81,82, + 83,0,85,0,87,0,105,90,91,92, + 93,94,95,112,97,98,99,100,101,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,0,1,2,3,4, - 51,6,7,8,9,0,78,0,13,14, - 0,1,2,3,4,66,67,68,69,70, - 10,0,73,0,75,76,77,6,7,8, - 9,0,83,2,0,0,87,0,7,8, - 9,34,5,94,0,0,15,16,17,18, - 19,20,21,0,23,0,33,34,35,0, - 0,6,0,0,33,34,35,36,37,38, - 39,40,41,42,43,44,45,67,0,0, - 131,132,133,0,1,2,3,4,5,6, + 41,42,43,44,45,46,47,48,49,50, + 51,52,53,54,55,56,57,58,59,60, + 61,62,63,64,65,66,0,68,69,70, + 0,88,89,74,75,76,77,0,0,80, + 81,82,83,5,85,0,87,106,107,90, + 91,92,93,94,95,110,97,98,99,100, + 101,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,58, + 59,60,61,62,63,64,65,66,0,68, + 69,70,0,88,89,74,75,76,77,0, + 0,80,81,82,83,6,85,7,8,9, + 0,90,91,92,93,94,95,0,97,98, + 99,100,101,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,67, - 71,86,0,0,51,0,1,5,6,7, - 8,9,0,84,12,13,14,12,0,66, - 67,68,69,70,12,22,73,79,75,76, - 77,0,84,103,0,105,2,108,109,0, - 87,7,8,9,13,116,117,94,0,15, - 16,17,18,19,20,21,0,23,0,1, - 2,3,4,114,6,47,48,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 78,79,80,0,72,80,84,0,135,0, + 37,38,39,40,41,42,43,44,45,46, + 47,48,49,50,51,52,53,54,55,56, + 57,58,59,60,61,62,63,64,65,66, + 0,68,69,70,106,107,0,74,75,76, + 77,5,0,80,81,82,83,0,85,7, + 8,9,5,90,91,92,93,94,95,109, + 97,98,99,100,101,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,58,59,60,61,62,63,64, + 65,66,0,68,69,70,106,107,0,74, + 75,76,77,5,0,80,81,82,83,0, + 85,7,8,9,5,90,91,92,93,94, + 95,0,97,98,99,100,101,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,58,59,60,61,62, + 63,64,65,66,73,68,69,70,106,107, + 0,74,75,76,77,5,0,80,81,82, + 83,0,85,7,8,9,5,90,91,92, + 93,94,95,0,97,98,99,100,101,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,0,0,106,107,83, - 51,5,7,8,9,0,1,2,3,4, - 67,6,7,8,9,66,67,68,69,70, - 0,0,73,115,75,76,77,119,33,34, - 35,36,37,38,39,40,41,42,43,44, - 45,0,0,94,0,1,2,3,4,0, - 1,2,3,4,5,6,7,8,9,10, - 11,114,13,14,0,1,2,3,4,5, - 6,7,8,9,10,11,0,13,14,0, - 1,2,3,4,135,0,1,2,3,4, + 41,42,43,44,45,46,47,48,49,50, + 51,52,53,54,55,56,57,58,59,60, + 61,62,63,64,65,66,73,68,69,70, + 0,78,0,74,75,76,77,0,0,80, + 81,82,83,6,85,7,8,9,0,90, + 91,92,93,94,95,0,97,98,99,100, + 101,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,58, + 59,60,61,62,63,64,65,66,0,68, + 69,70,84,78,0,74,75,76,77,5, + 0,80,81,82,83,0,85,7,8,9, + 5,90,91,92,93,94,95,0,97,98, + 99,100,101,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,58,59,60,61,62,63,64,65,66, + 73,68,69,70,0,0,108,74,75,76, + 77,6,0,80,81,82,83,13,85,7, + 8,9,0,90,91,92,93,94,95,0, + 97,98,99,100,101,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,0,83,112,0,0,51,0,7,8, - 9,0,1,2,3,4,67,83,14,0, - 130,66,67,68,69,70,71,0,73,83, - 75,76,77,6,33,34,35,36,37,38, - 39,40,41,42,43,44,45,0,0,94, - 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,0,1,2,3, - 4,51,6,7,8,9,0,0,0,13, - 14,0,1,2,3,4,66,67,68,69, - 70,10,103,73,105,75,76,77,0,1, - 2,3,4,5,6,130,0,87,10,11, - 12,33,34,35,94,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,0,1,2,3,4,51,6,7,8, - 9,0,0,67,13,14,78,0,80,102, - 0,66,67,68,69,70,110,111,73,12, - 75,76,77,0,1,2,3,4,5,6, - 0,0,87,10,11,33,34,35,0,94, - 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,0,1,2,3, - 4,51,6,7,8,9,86,0,0,13, - 14,78,0,0,0,2,66,67,68,69, - 70,104,0,73,12,75,76,77,15,16, - 17,18,19,20,21,0,23,87,0,0, - 1,2,3,4,94,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,0,80,71,86,83,51,83,7,8, - 9,0,1,2,3,4,67,6,7,8, - 9,66,67,68,69,70,0,0,73,0, - 75,76,77,6,33,34,35,36,37,38, - 39,40,41,42,43,44,45,130,22,94, - 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,0,0,71,73, - 71,51,0,7,8,9,0,5,0,1, - 0,1,2,3,4,0,66,67,68,69, - 70,13,0,73,0,75,76,77,6,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,0,46,94,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,81,82,0,79,71,51,0,1,2, - 3,4,5,6,0,0,13,10,11,0, - 5,66,67,68,69,70,74,0,73,113, - 75,76,77,0,1,2,3,4,5,6, - 7,8,9,10,11,0,13,14,0,94, - 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,0,1,2,3, - 4,51,0,1,2,3,4,5,6,106, - 107,78,10,11,0,0,66,67,68,69, - 70,6,103,73,105,75,76,77,0,1, - 2,3,4,5,6,7,8,9,10,11, - 0,13,14,0,94,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,0,1,2,3,4,51,0,1,2, - 3,4,5,6,0,0,1,10,11,5, - 67,66,67,68,69,70,0,103,73,105, - 75,76,77,0,1,2,3,4,5,6, - 7,8,9,10,11,0,13,14,33,94, - 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,0,1,2,3, - 4,51,6,0,1,2,3,4,5,6, - 7,8,9,10,11,0,66,67,68,69, - 70,0,0,73,0,75,76,77,83,0, - 0,1,2,3,4,0,1,2,3,4, - 5,6,12,0,94,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,46,0, - 46,36,0,0,52,53,54,55,56,57, - 0,46,47,48,49,50,83,52,53,54, + 45,46,47,48,49,50,51,52,53,54, 55,56,57,58,59,60,61,62,63,64, - 65,0,72,0,1,2,3,4,79,0, - 1,2,3,4,5,6,81,82,46,10, - 11,12,0,1,2,3,4,0,1,2, - 3,4,5,6,33,34,35,10,11,104, + 65,66,73,68,69,70,84,0,0,74, + 75,76,77,5,0,80,81,82,83,0, + 85,7,8,9,5,90,91,92,93,94, + 95,0,97,98,99,100,101,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, - 51,0,1,2,3,4,0,6,0,0, - 67,10,11,46,47,48,49,50,12,52, + 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,58,59,60,61,62, - 63,64,65,0,0,0,0,1,2,3, - 4,74,6,7,8,9,0,0,81,82, - 130,84,0,1,2,3,4,5,6,12, - 0,0,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,79,80,79,36,0, - 0,0,1,2,3,4,0,0,46,47, - 48,49,50,67,52,53,54,55,56,57, - 58,59,60,61,62,63,64,65,0,1, - 2,3,4,5,6,79,74,80,10,11, + 63,64,65,66,0,68,69,70,0,5, + 0,74,75,76,77,84,0,80,81,82, + 83,13,85,7,8,9,0,90,91,92, + 93,94,95,23,97,98,99,100,101,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,58,59,60, + 61,62,63,64,65,66,0,68,69,70, + 0,0,0,74,75,76,77,5,0,80, + 81,82,83,0,85,7,8,9,5,90, + 91,92,93,94,95,109,97,98,99,100, + 101,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,58, + 59,60,61,62,63,64,65,66,0,68, + 69,70,0,5,0,74,75,76,77,108, + 110,80,81,82,83,0,85,0,14,0, + 0,90,91,92,93,94,95,0,97,98, + 99,100,101,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,46,32, + 33,34,0,51,52,53,54,55,56,7, + 8,9,47,48,0,32,33,34,35,36, + 72,38,39,40,41,42,43,44,45,75, + 47,48,49,50,32,33,34,35,36,0, + 38,39,40,41,42,43,44,45,65,0, + 1,2,3,4,71,72,73,0,75,10, + 11,78,79,6,7,8,9,84,85,86, + 87,88,89,0,1,2,3,4,5,6, + 7,8,9,10,11,102,103,104,105,106, + 107,108,109,110,111,112,113,114,115,116, + 117,118,119,120,121,122,123,124,125,126, + 127,128,129,136,0,0,0,134,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,0,0,0,0,0,0,1, + 2,3,4,0,7,8,9,12,10,11, + 32,33,34,35,36,12,38,39,40,41, + 42,43,44,45,0,47,48,49,50,32, + 33,34,35,36,135,38,39,40,41,42, + 43,44,45,65,0,1,2,3,4,71, + 72,73,0,75,10,0,78,79,84,7, + 8,9,84,85,86,87,88,89,0,1, + 2,3,4,5,6,7,8,9,10,11, + 102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119,120,121, + 122,123,124,125,126,127,128,129,113,114, + 86,67,134,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,72,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,58,59,60,61,62,63,64,0,66, + 0,68,69,70,6,5,0,74,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,0,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,58,59,60,61, + 62,63,64,67,66,0,68,69,70,0, + 5,0,74,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,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,0,1,2,3,4,65,66, + 67,68,69,70,0,1,2,3,4,76, + 77,86,0,80,81,0,0,84,0,0, + 87,90,7,8,9,7,8,9,0,96, + 15,16,17,18,19,20,21,22,0,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,33,38,39,40,41,42,43,44, + 45,0,46,84,131,132,133,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,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,0,1,2, + 3,4,65,66,67,68,69,70,0,1, + 2,3,4,76,77,0,108,80,81,0, + 0,84,0,0,87,0,7,8,9,7, + 8,9,0,96,15,16,17,18,19,20, + 21,22,0,24,25,26,27,28,29,30, + 31,32,33,34,35,36,0,38,39,40, + 41,42,43,44,45,23,46,84,131,132, + 133,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,0,76,104, + 0,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,65,66,67,68, + 69,70,0,1,2,3,4,76,77,0, + 0,80,81,32,33,34,35,36,87,38, + 39,40,41,42,43,44,45,96,0,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,0,67,0,65,0,1,2, + 3,4,71,72,7,8,9,12,13,12, + 79,0,1,2,3,4,135,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,84,67,72,0,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,65,66,67,68,69,70,0,1, + 2,3,4,76,77,0,0,80,81,32, + 33,34,35,36,0,38,39,40,41,42, + 43,44,45,96,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,32,33, + 34,0,65,67,0,1,2,3,4,72, + 6,46,75,0,10,11,79,0,1,2, + 3,4,135,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,0, + 0,67,71,0,5,0,1,2,3,4, + 7,8,9,0,67,10,73,0,65,66, + 67,68,69,70,71,0,0,14,0,76, + 77,5,0,80,81,32,33,34,35,36, + 14,38,39,40,41,42,43,44,45,96, + 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,71,0,72,73, + 0,0,5,0,78,79,78,7,8,9, + 0,1,2,3,4,65,66,67,68,69, + 70,0,105,0,111,0,76,77,5,112, + 80,81,32,33,34,35,36,87,38,39, + 40,41,42,43,44,45,96,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,72,0,72,73,0,0,5, + 0,78,0,78,7,8,9,7,8,9, + 109,0,65,66,67,68,69,70,115,116, + 0,0,0,76,77,14,5,80,81,32, + 33,34,35,36,87,38,39,40,41,42, + 43,44,45,96,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, + 79,71,0,72,0,73,0,0,78,88, + 89,7,8,9,0,1,2,3,4,65, + 66,67,68,69,70,0,0,0,0,0, + 76,77,102,103,80,81,32,33,34,35, + 36,87,38,39,40,41,42,43,44,45, + 96,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,0,0,1, + 71,0,0,78,7,8,9,105,7,8, + 9,84,0,84,112,0,65,66,67,68, + 69,70,0,0,0,0,14,76,77,5, + 32,80,81,32,33,34,35,36,14,38, + 39,40,41,42,43,44,45,96,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,0,1,2,3,4,104,6,67,0, - 71,10,11,0,46,47,48,49,50,6, - 52,53,54,55,56,57,58,59,60,61, - 62,63,64,65,0,1,2,3,4,0, - 72,0,74,0,1,2,3,4,5,6, - 37,12,112,10,11,87,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,0,1,2,3, - 4,5,6,7,8,9,10,11,79,46, - 47,48,49,50,0,52,53,54,55,56, - 57,58,59,60,61,62,63,64,65,0, - 0,1,2,3,4,0,6,74,0,80, - 10,11,0,5,81,82,0,1,2,3, - 4,5,6,0,12,0,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,83, - 0,1,2,3,4,71,0,49,50,0, - 0,5,46,47,48,49,50,67,52,53, - 54,55,56,57,58,59,60,61,62,63, - 64,65,0,84,72,0,78,5,72,84, - 74,0,1,2,3,4,5,6,0,0, - 0,10,11,5,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,0,0,118,0,1,2, - 3,4,0,1,2,3,4,46,47,48, - 49,50,134,52,53,54,55,56,57,58, - 59,60,61,62,63,64,65,0,0,1, - 2,3,4,0,6,74,0,0,10,11, - 71,5,81,82,0,1,2,3,4,5, - 6,0,0,84,10,11,5,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,108,109,84, - 47,48,0,0,0,116,117,5,5,5, - 46,47,48,49,50,67,52,53,54,55, - 56,57,58,59,60,61,62,63,64,65, - 83,0,0,0,0,0,79,5,74,0, - 0,0,86,71,13,81,82,0,1,2, - 3,4,5,6,0,0,84,10,11,0, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 108,109,78,0,0,0,0,0,116,117, - 0,5,5,46,47,48,49,50,12,52, - 53,54,55,56,57,58,59,60,61,62, - 63,64,65,79,0,1,2,3,4,84, - 79,74,83,83,0,71,71,0,81,82, - 0,1,2,3,4,5,6,106,107,12, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,0,78,79,80,0,5,79, - 84,86,5,0,0,12,46,47,48,49, - 50,67,52,53,54,55,56,57,58,59, - 60,61,62,63,64,65,0,0,0,72, - 0,5,72,5,74,0,1,2,3,4, - 5,6,12,0,0,10,11,12,13,14, + 32,33,34,35,36,37,38,39,40,41, + 42,43,44,45,71,0,72,73,0,87, + 0,0,78,79,0,7,8,9,13,0, + 88,89,110,65,66,67,68,69,70,0, + 105,0,0,14,76,77,5,112,80,81, + 32,33,34,35,36,14,38,39,40,41, + 42,43,44,45,96,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,0,1, - 2,3,4,80,6,7,8,9,0,0, - 0,46,47,48,49,50,0,52,53,54, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,44, + 45,72,0,72,0,0,87,5,0,5, + 79,0,7,8,9,0,84,0,104,108, + 65,66,67,68,69,70,0,0,0,12, + 0,76,77,5,0,80,81,32,33,34, + 35,36,14,38,39,40,41,42,43,44, + 45,96,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,71,88, + 89,71,0,88,89,71,0,79,0,7, + 8,9,104,5,88,89,10,65,66,67, + 68,69,70,0,0,0,0,0,76,77, + 113,114,80,81,32,33,34,35,36,0, + 38,39,40,41,42,43,44,45,96,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,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,84, + 71,88,89,0,65,66,67,68,69,70, + 0,0,0,0,0,76,77,14,5,80, + 81,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,96,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,79,0,0,1,0,84,5,6, + 7,8,9,72,0,12,13,14,14,88, + 89,65,66,67,68,69,70,0,14,0, + 0,0,76,77,5,5,80,81,32,33, + 34,109,0,0,1,2,3,4,5,6, + 46,0,96,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,72,73,0,35,65, + 37,78,79,79,0,1,2,3,4,46, + 47,48,49,50,51,52,53,54,55,56, + 57,58,59,60,61,62,63,64,0,1, + 2,3,4,0,6,7,8,9,0,1, + 2,3,4,5,6,82,83,0,10,11, + 12,13,0,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 0,67,110,0,111,37,6,7,8,9, + 47,48,12,13,46,47,48,49,50,51, + 52,53,54,55,56,57,58,59,60,61, + 62,63,64,0,1,2,3,4,5,6, + 0,0,74,10,11,0,78,0,71,67, + 82,83,0,1,2,3,4,5,6,14, + 0,14,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,0,1,2,3,4,37, + 6,7,8,9,0,0,12,13,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,59,60,61,62,63,64,0,1,2, + 3,4,75,6,7,8,9,75,0,12, + 13,71,87,130,82,83,0,1,2,3, + 4,5,6,0,0,0,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,0,0, + 130,35,78,37,0,1,2,3,4,84, + 6,0,46,47,48,49,50,51,52,53, + 54,55,56,57,58,59,60,61,62,63, + 64,73,0,1,2,3,4,5,6,0, + 74,67,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,0,1,2,3,4,37, + 6,7,8,9,0,0,78,111,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,59,60,61,62,63,64,86,0,1, + 2,3,4,5,6,0,74,75,10,11, + 0,1,2,3,4,5,6,78,0,87, + 10,11,12,13,6,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,0,1,2,3,4,37,6,7, + 8,9,47,48,12,13,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 60,61,62,63,64,0,1,2,3,4, + 0,6,0,0,74,0,1,2,3,4, + 5,6,82,83,0,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,0,1,2, + 3,4,37,6,7,8,9,0,0,12, + 13,46,47,48,49,50,51,52,53,54, 55,56,57,58,59,60,61,62,63,64, - 65,0,1,2,3,4,5,6,0,79, - 80,10,11,12,13,14,15,16,17,18, + 23,0,1,2,3,4,5,6,78,74, + 75,10,11,12,13,71,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,0,67,0,0,0,104, - 0,1,2,3,4,0,12,46,47,48, - 49,50,0,52,53,54,55,56,57,58, - 59,60,61,62,63,64,65,22,0,0, - 1,0,86,72,0,1,2,3,4,5, - 6,12,0,0,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,67,71,71, - 0,66,67,79,80,46,6,0,66,0, - 46,47,48,49,50,0,52,53,54,55, - 56,57,58,59,60,61,62,63,64,65, - 0,1,2,3,4,5,6,37,0,80, - 10,11,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,0,1,2,3,4,104,0, - 0,0,0,0,67,5,46,47,48,49, - 50,12,52,53,54,55,56,57,58,59, - 60,61,62,63,64,65,0,1,2,3, - 4,5,6,0,74,0,10,11,5,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,0, - 67,131,132,133,0,0,7,8,9,0, - 6,72,46,47,48,49,50,12,52,53, + 29,30,31,0,1,2,3,4,37,0, + 7,8,9,66,67,0,0,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 59,60,61,62,63,64,0,1,2,3, + 4,32,33,34,0,74,0,1,2,3, + 4,5,6,82,83,0,10,11,12,13, + 0,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,0,1, + 2,3,4,37,6,0,71,71,10,11, + 0,0,46,47,48,49,50,51,52,53, 54,55,56,57,58,59,60,61,62,63, - 64,65,0,1,2,3,4,5,6,0, - 0,0,10,11,78,13,14,15,16,17, + 64,0,1,2,3,4,0,73,82,83, + 74,0,1,2,3,4,5,6,82,83, + 14,10,11,12,13,0,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,0,1,2,3,4,37,6, + 0,0,72,10,11,0,5,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 59,60,61,62,63,64,131,132,133,0, + 130,75,0,82,83,74,0,1,2,3, + 4,5,6,82,83,13,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,0,1, + 2,3,4,37,6,7,8,9,73,0, + 0,0,46,47,48,49,50,51,52,53, + 54,55,56,57,58,59,60,61,62,63, + 64,72,0,1,2,3,4,5,6,0, + 74,75,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,0,0,0,0,0, - 71,0,0,6,6,71,0,72,46,47, - 48,49,50,12,52,53,54,55,56,57, - 58,59,60,61,62,63,64,65,0,1, - 2,3,4,5,6,0,74,0,10,11, - 71,13,14,15,16,17,18,19,20,21, + 28,29,30,31,0,67,0,0,0,37, + 0,5,5,0,1,2,3,4,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,59,60,61,62,63,64,86,0,1, + 2,3,4,5,6,66,0,0,10,11, + 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, - 32,0,0,0,0,0,71,0,71,71, - 6,0,0,72,46,47,48,49,50,12, + 0,1,2,3,4,37,6,7,8,9, + 67,73,72,111,46,47,48,49,50,51, 52,53,54,55,56,57,58,59,60,61, - 62,63,64,65,0,1,2,3,4,5, - 6,0,0,0,10,11,71,13,14,15, + 62,63,64,0,0,1,2,3,4,5, + 6,0,0,75,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,0,0,0, - 0,0,5,71,5,71,5,0,0,72, - 46,47,48,49,50,83,52,53,54,55, - 56,57,58,59,60,61,62,63,64,65, + 26,27,28,29,30,31,0,67,0,0, + 0,37,0,1,2,3,4,7,8,9, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,60,61,62,63,64,0, + 0,1,2,3,4,5,6,130,0,0, + 10,11,12,13,6,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,0,1,2,3,4,37,6,67, + 71,71,10,11,0,111,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 60,61,62,63,64,0,1,2,3,4, + 5,6,0,74,74,10,11,12,13,71, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,88,89,67, + 0,0,37,0,1,2,3,4,0,0, + 0,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,60,61,62,63,64, + 0,1,2,3,4,5,6,72,0,0, + 10,11,12,13,0,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,0,1,2,3,4,37,67,0, + 67,0,1,2,3,4,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 60,61,62,63,64,0,1,2,3,4, + 5,6,0,0,74,10,11,12,13,6, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,88,89,67, + 0,0,37,0,1,2,3,4,67,36, + 71,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,60,61,62,63,64, + 0,1,2,3,4,5,6,0,0,74, + 10,11,12,13,6,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,0,0,0,0,0,37,0,6, + 67,71,6,5,0,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 60,61,62,63,64,0,1,2,3,4, + 5,6,102,103,74,10,11,12,13,71, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,0,0,0, + 0,67,37,0,71,6,71,71,0,6, + 0,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,60,61,62,63,64, + 0,1,2,3,4,5,6,102,103,36, + 10,11,12,13,46,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,0,0,0,67,0,37,0,5, + 71,71,0,5,0,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 60,61,62,63,64,0,1,2,3,4, + 5,6,102,103,0,10,11,12,13,46, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,0,0,0, + 67,0,37,5,131,132,133,0,0,0, + 0,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,60,61,62,63,64, 0,1,2,3,4,5,6,0,0,0, - 10,11,5,13,14,15,16,17,18,19, + 10,11,12,13,0,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,31,32,0,0,0,0,0,0,5, - 5,71,5,0,0,0,46,47,48,49, - 50,0,52,53,54,55,56,57,58,59, - 60,61,62,63,64,65,0,1,2,3, - 4,5,6,0,0,0,10,11,5,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,0, - 0,0,0,0,0,0,5,71,0,0, - 0,78,46,47,48,49,50,79,52,53, - 54,55,56,57,58,59,60,61,62,63, - 64,65,0,1,2,3,4,5,6,0, - 0,0,10,11,0,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,0,0,0,0,0, - 0,0,0,0,0,0,0,78,46,47, - 48,49,50,78,52,53,54,55,56,57, - 58,59,60,61,62,63,64,65,0,1, - 2,3,4,5,6,0,0,0,10,11, - 0,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,0,0,0,0,0,0,0,0,0, - 0,0,0,0,46,47,48,49,50,0, - 52,53,54,55,56,57,58,59,60,61, - 62,63,64,65,0,1,2,3,4,5, - 6,0,0,0,10,11,0,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,0,22,0, - 0,0,0,0,0,0,0,0,5,12, - 46,47,48,49,50,12,52,53,54,55, - 56,57,58,59,60,61,62,63,64,65, - 0,1,2,3,4,86,6,7,8,9, - 0,0,66,67,0,15,16,17,18,19, + 30,31,88,89,0,0,0,37,0,0, + 0,0,0,0,0,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 60,61,62,63,64,0,1,2,3,4, + 5,6,0,0,0,10,11,12,13,0, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,0,0,0, + 86,0,37,0,0,0,0,0,0,0, + 0,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,60,61,62,63,64, + 0,1,2,3,4,5,6,0,0,0, + 10,11,12,13,0,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,0,0,0,86,0,37,0,0, + 0,0,0,0,0,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 60,61,62,63,64,0,1,2,3,4, + 5,6,0,0,0,10,11,12,13,0, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,0,84,0, + 0,0,37,0,0,0,0,0,0,0, + 0,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,60,61,62,63,64, + 0,1,2,3,4,5,6,0,0,0, + 10,11,12,13,0,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,0,0,0,86,0,37,0,0, + 0,0,0,0,0,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 60,61,62,63,64,0,1,2,3,4, + 5,6,0,0,0,10,11,12,13,0, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,23,84,0, + 0,0,37,0,0,0,0,0,0,0, + 0,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,60,61,62,63,64, + 0,1,2,3,4,0,6,7,8,9, + 66,67,0,0,0,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,79,0,0,0, - 0,78,0,80,87,0,0,1,2,3, - 4,86,6,7,8,9,66,12,68,69, + 40,41,42,43,44,45,0,0,0,0, + 0,0,0,84,0,0,0,1,2,3, + 4,86,6,7,8,9,66,0,68,69, 70,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,0,0,0,0,51,0,0,0, + 44,45,0,0,0,0,0,0,0,0, 0,0,0,1,2,3,4,0,6,7, - 8,9,66,12,68,69,70,15,16,17, + 8,9,66,0,68,69,70,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,0,0, - 0,0,51,0,0,0,0,0,0,1, - 2,3,4,0,6,7,8,9,66,12, + 0,0,0,0,0,0,0,0,0,1, + 2,3,4,0,6,7,8,9,66,0, 68,69,70,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,0,0,0,0,0,5, - 0,0,0,0,10,0,0,13,14,12, - 7,8,9,0,66,12,68,69,70,0, - 1,2,3,4,0,12,7,8,9,86, - 86,0,13,0,87,0,12,0,0,0, - 0,47,48,49,50,12,46,46,0,12, - 0,0,58,0,51,0,0,0,0,0, - 0,0,0,0,51,71,0,67,67,0, - 0,0,78,79,0,81,82,80,84,0, - 86,12,79,12,51,0,67,0,51,0, - 0,0,79,0,100,101,0,103,0,102, - 106,107,108,109,110,111,112,113,114,115, - 0,87,118,0,120,121,122,123,124,125, - 126,127,128,129,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,0, - 1,2,3,4,5,6,7,8,9,10, - 11,80,13,14,0,0,87,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 0,0,0,0,0,51,0,1,2,3, + 42,43,44,45,0,0,0,1,2,3, + 4,0,0,0,0,1,2,3,4,0, + 14,7,8,9,66,0,68,69,70,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,0,38,39,40,41,42,43,44,45, + 0,0,0,0,0,14,0,0,0,0, + 0,1,2,3,4,0,14,7,8,9, + 66,75,68,69,70,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,0,38,39, + 40,41,42,43,44,45,0,0,1,0, + 0,5,0,0,73,0,10,65,12,13, + 79,14,0,14,14,73,66,0,68,69, + 70,0,0,0,0,0,86,0,1,2, + 3,4,5,6,7,8,9,10,11,14, + 0,14,0,47,48,49,50,0,0,0, + 0,0,0,57,0,115,116,117,118,119, + 120,121,122,123,124,125,126,71,72,73, + 0,0,73,86,78,75,79,0,82,83, + 0,0,86,0,88,89,87,0,86,0, + 0,14,65,0,0,0,0,0,102,103, + 75,105,106,107,108,109,110,14,0,113, + 114,115,0,117,118,119,120,121,122,123, + 124,125,126,0,0,129,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, - 14,0,0,0,0,71,0,0,0,0, - 0,0,78,0,80,0,12,0,12,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,83,0,0,0,0,51,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,0,0,0,0,0,72,0, - 0,0,0,0,78,0,80,0,0,0, - 0,33,34,35,36,37,38,39,40,41, - 42,43,44,45,80,0,80,0,0,51, + 14,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,79,0,32,33, + 34,35,36,0,38,39,40,41,42,43, + 44,45,79,32,33,34,35,36,0,38, + 39,40,41,42,43,44,45,0,0,0, + 0,65,84,0,0,0,0,104,72,0, + 0,14,0,0,0,79,65,14,0,0, + 0,0,104,72,0,0,14,0,0,0, + 79,0,1,2,3,4,5,6,7,8, + 9,14,14,12,13,0,1,2,3,4, + 5,6,7,8,9,0,0,12,13,0, + 0,0,65,32,33,34,35,36,0,38, + 39,40,41,42,43,44,45,32,33,34, + 35,36,79,38,39,40,41,42,43,44, + 45,79,65,0,1,2,3,4,5,6, + 7,8,9,72,73,12,13,79,0,78, + 0,1,2,3,4,5,6,72,73,0, + 10,11,0,78,0,32,33,34,35,36, + 0,38,39,40,41,42,43,44,45,0, 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,0,0,0,0,0, - 1,2,3,4,5,6,78,0,80,10, - 11,12,86,33,34,35,36,37,38,39, - 40,41,42,43,44,45,0,1,2,3, - 4,51,6,7,8,9,0,0,12,13, - 14,115,0,0,0,119,120,121,122,123, - 124,125,126,127,128,129,0,0,78,0, - 80,5,0,0,0,0,0,0,12,0, - 0,0,0,0,0,0,0,78,79,80, - 0,0,0,84,0,86,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,102,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,102,0, - 0,0,0,0,78,79,80,0,0,0, - 84,0,0,0,0,0,0,0,0,0, + 0,0,12,13,0,0,1,2,3,4, + 0,6,7,8,9,72,73,12,13,14, + 0,78,32,33,34,35,36,0,38,39, + 40,41,42,43,44,45,0,0,0,2, + 0,14,0,0,7,8,9,0,0,0, + 0,0,15,16,17,18,19,20,21,22, + 0,14,72,73,0,0,0,0,78,32, + 33,34,35,36,0,38,39,40,41,42, + 43,44,45,0,79,2,0,0,0,0, + 7,8,9,0,0,0,0,0,15,16, + 17,18,19,20,21,22,79,0,0,104, + 0,0,65,0,0,32,33,34,35,36, + 73,38,39,40,41,42,43,44,45,0, + 1,2,3,4,5,6,86,0,0,10, + 11,0,0,14,0,1,2,3,4,5, + 6,7,8,9,10,11,0,0,0,0, + 0,0,0,0,0,115,116,117,118,119, + 120,121,122,123,124,125,126,0,1,2, + 3,4,5,6,7,8,9,10,11,0, + 1,2,3,4,5,6,0,0,0,10, + 11,72,73,14,0,0,0,78,79,0, + 0,0,0,0,5,86,0,1,2,3, + 4,5,6,0,14,2,10,11,84,0, + 14,0,0,104,0,0,0,0,15,16, + 17,18,19,20,21,22,0,1,2,3, + 4,5,6,0,65,0,10,11,49,50, + 0,84,0,0,0,0,0,71,0,71, + 7,8,9,0,78,71,78,14,0,14, + 14,72,78,73,0,0,0,14,72,79, + 0,0,0,0,0,79,0,0,102,103, + 102,103,0,0,0,0,102,103,0,0, + 0,0,0,0,0,0,0,0,72,0, + 0,0,0,127,128,127,128,0,65,0, + 0,127,128,0,0,0,73,0,129,73, + 75,0,0,134,0,79,0,0,75,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,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 char termCheck[] = TermCheck.termCheck; @@ -2220,583 +2602,649 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface TermAction { public final static char termAction[] = {0, - 8332,7399,7399,7399,7399,7399,7399,7399,7399,7399, - 7399,7399,7399,7399,7399,7399,7399,7399,7399,7399, - 7399,7399,7399,7399,7399,7399,7399,7399,7399,7399, - 7399,7399,7399,7399,7399,7399,7399,7399,7399,7399, - 7399,7399,7399,7399,7399,7399,7399,7399,7399,7399, - 7399,7399,7399,7399,7399,7399,7399,7399,7399,7399, - 7399,7399,7399,7399,7399,7399,7399,8332,7399,7399, - 7399,7399,7399,8332,7399,1,750,387,7399,7399, - 7399,7399,7399,7399,7399,7399,7399,7399,1,7329, - 7317,7321,7325,3202,7314,7348,7342,7345,856,3412, - 7399,7399,7399,7399,7399,7399,7399,7399,7399,7399, - 7399,7399,7399,7399,7399,7399,7399,7399,7399,7399, - 7399,7399,7399,7399,7399,7399,7399,7399,7399,7399, - 8332,3530,8332,194,7399,8332,8105,7295,7295,7295, - 7295,7295,7288,7295,7295,7295,7295,8187,7295,7295, + 9900,8841,8841,8841,8841,8841,8841,8841,8841,8841, + 8841,8841,8841,8841,8841,8841,8841,8841,8841,8841, + 8841,8841,8841,8841,8841,8841,8841,8841,8841,8841, + 8841,8841,8841,8841,8841,8841,8841,8841,8841,8841, + 8841,8841,8841,8841,8841,8841,8841,8841,8841,8841, + 8841,8841,8841,8841,8841,8841,8841,8841,8841,8841, + 8841,8841,8841,8841,8841,8841,8841,9900,8841,8841, + 8841,8841,8841,8841,8841,8841,1,9900,8841,8841, + 756,9910,8841,8841,8841,8841,8841,8841,8841,8841, + 1,8771,8759,8763,8767,860,8756,8790,8784,8787, + 818,5597,8841,8841,8841,8841,8841,8841,8841,8841, + 8841,8841,8841,8841,8841,8841,8841,8841,8841,8841, + 8841,8841,8841,8841,8841,8841,8841,8841,8841,8841, + 9900,3598,9909,9900,8841,9900,9619,8737,8737,8737, + 8737,8737,8730,8737,8737,8737,8737,8737,8737,9758, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,8109,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,7287,1,1,1,300,8343,2424,1, - 739,704,8507,1005,847,914,1,1,121,8332, - 839,8218,8339,3965,2012,2547,1999,3941,3933,8332, - 3959,1984,3953,3729,3952,10,8190,8190,8190,8190, - 8190,8190,8190,8190,8190,8190,8190,8190,8190,8190, - 8190,8190,8190,8190,8190,8190,8190,8190,8190,8190, - 8190,8190,8190,8190,8190,8190,8190,8190,8190,8190, - 8190,8190,8190,8190,8190,8190,8190,8190,8190,8190, - 8190,8190,8190,8190,8190,8190,8190,8190,8190,8190, - 8190,8190,8190,8190,8190,8190,8190,8190,8190,8190, - 8190,8190,4198,8190,8190,8190,607,8190,8190,8190, - 8190,8190,8190,1005,847,914,8190,8190,5249,5280, - 8190,3036,8190,8190,8190,8190,8190,8190,8190,8332, - 8190,8190,8190,8190,8190,8,8214,8214,8214,8214, - 8214,8214,8214,8214,8214,8214,8214,8214,8214,8214, - 8214,8214,8214,8214,8214,8214,8214,8214,8214,8214, - 8214,8214,8214,8214,8214,8214,8214,8214,8214,8214, - 8214,8214,8214,8214,8214,8214,8214,8214,8214,8214, - 8214,8214,8214,8214,8214,8214,8214,8214,8214,8214, - 8214,8214,8214,8214,8214,8214,8214,8214,8214,8214, - 8214,8214,8332,8214,8214,8214,315,8214,8214,8214, - 8214,8214,8214,1005,847,914,8214,8214,582,451, - 8214,581,8214,8214,8214,8214,8214,8214,8214,8332, - 8214,8214,8214,8214,8214,8332,8105,7295,7295,7295, - 7295,7295,7288,7295,7295,7295,7295,8112,7295,7295, 1,1,1,1,1,1,1,1,1,1, + 9623,1,115,1,1,1,748,9900,3262,1, + 9911,2489,721,420,7352,757,10108,1,1,3762, + 2655,111,9907,1,35,3863,3260,3389,3054,3816, + 5147,9900,3861,1108,3837,1789,3826,10,9761,9761, + 9761,9761,9761,9761,9761,9761,9761,9761,9761,9761, + 9761,9761,9761,9761,9761,9761,9761,9761,9761,9761, + 9761,9761,9761,9761,9761,9761,9761,9761,9761,9761, + 9761,9761,9761,9761,9761,9761,9761,9761,9761,9761, + 9761,9761,9761,9761,9761,9761,9761,9761,9761,9761, + 9761,9761,9761,9761,9761,9761,9761,9761,9761,9761, + 9761,9761,9761,9761,3862,9761,9761,9761,1983,8149, + 1774,9761,9761,9761,9761,7321,5153,9761,9761,9761, + 9761,129,9761,121,9761,137,8080,9761,9761,9761, + 9761,9761,9761,8103,9761,9761,9761,9761,9761,8, + 9782,9782,9782,9782,9782,9782,9782,9782,9782,9782, + 9782,9782,9782,9782,9782,9782,9782,9782,9782,9782, + 9782,9782,9782,9782,9782,9782,9782,9782,9782,9782, + 9782,9782,9782,9782,9782,9782,9782,9782,9782,9782, + 9782,9782,9782,9782,9782,9782,9782,9782,9782,9782, + 9782,9782,9782,9782,9782,9782,9782,9782,9782,9782, + 9782,9782,9782,9782,9782,9782,9900,9782,9782,9782, + 9900,6652,6683,9782,9782,9782,9782,9900,9900,9782, + 9782,9782,9782,782,9782,141,9782,5983,5954,9782, + 9782,9782,9782,9782,9782,3331,9782,9782,9782,9782, + 9782,9900,9619,8737,8737,8737,8737,8737,8730,8737, + 8737,8737,8737,8737,8737,9626,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,8109,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1070,1,1,1,604,8343,2424,1, - 739,704,8507,7887,7893,7890,1,1,5249,5280, - 839,5249,5280,3965,2012,2547,1999,3941,3933,8332, - 3959,1984,3953,3729,3952,8332,8105,7295,7295,7295, - 7295,7295,7288,7295,7295,7295,7295,8112,7295,7295, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,9623,1,149,1, + 1,1,9900,6652,6683,1,9911,2489,721,39, + 333,757,10108,1,1,9938,2655,1358,1198,1227, + 135,3863,3260,3389,3054,3816,5147,9900,3861,1108, + 3837,1789,3826,9900,9619,8737,8737,8737,8737,8737, + 8730,8737,8737,8737,8737,8737,8737,9626,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,8109,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,8332,1,1,1,595,8343,2424,1, - 739,704,8507,1005,847,914,1,1,125,1, - 839,124,8332,3965,2012,2547,1999,3941,3933,8332, - 3959,1984,3953,3729,3952,8332,8105,7295,7295,7295, - 7295,7295,7288,7295,7295,7295,7295,8112,7295,7295, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,9623,1, + 130,1,1,1,1166,1076,9900,1,9911,2489, + 721,4215,665,757,10108,1,1,9900,2655,1358, + 1198,1227,1741,3863,3260,3389,3054,3816,5147,3677, + 3861,1108,3837,1789,3826,9900,9619,8737,8737,8737, + 8737,8737,8730,8737,8737,8737,8737,8737,8737,9626, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,8109,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2,1,1,1,596,8343,2424,1, - 739,704,8507,1005,847,914,1,1,5249,5280, - 839,5249,5280,3965,2012,2547,1999,3941,3933,8332, - 3959,1984,3953,3729,3952,8332,8105,7295,7295,7295, - 7295,7295,7288,7295,7295,7295,7295,8112,7295,7295, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 9623,1,150,1,1,1,5983,5954,9900,1, + 9911,2489,721,4252,348,757,10108,1,1,9900, + 2655,1358,1198,1227,1939,3863,3260,3389,3054,3816, + 5147,343,3861,1108,3837,1789,3826,9900,9619,8737, + 8737,8737,8737,8737,8730,8737,8737,8737,8737,8737, + 8737,9626,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,8109,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,8332,1,1,1,398,8343,2424,1, - 739,704,8507,1005,847,914,1,1,123,8332, - 839,122,8332,3965,2012,2547,1999,3941,3933,8332, - 3959,1984,3953,3729,3952,8332,8105,7295,7295,7295, - 7295,7295,7288,7295,7295,7295,7295,8112,7295,7295, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,8109,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,8736,1,1,1,333,8343,2424,1, - 739,704,8507,8006,8012,8009,1,1,5249,5280, - 839,5249,5280,3965,2012,2547,1999,3941,3933,8332, - 3959,1984,3953,3729,3952,8332,8105,7295,7295,7295, - 7295,7295,7288,7295,7295,7295,7295,8112,7295,7295, + 1,1,9623,1,5871,1,1,1,1166,1076, + 9900,1,9911,2489,721,2193,662,757,10108,1, + 1,9900,2655,9329,9335,9332,5617,3863,3260,3389, + 3054,3816,5147,9900,3861,1108,3837,1789,3826,9900, + 9619,8737,8737,8737,8737,8737,8730,8737,8737,8737, + 8737,8737,8737,9626,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,8109,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,8332,1,1,1,333,8343,2424,1, - 739,704,8507,1005,847,914,1,1,8332,360, - 839,8332,8332,3965,2012,2547,1999,3941,3933,8332, - 3959,1984,3953,3729,3952,8332,8105,7295,7295,7295, - 7295,7295,7288,7295,7295,7295,7295,8112,7295,7295, + 1,1,1,1,9623,1,3862,1,1,1, + 9900,4154,9900,1,9911,2489,721,9900,653,757, + 10108,1,1,1120,2655,1358,1198,1227,484,3863, + 3260,3389,3054,3816,5147,9900,3861,1108,3837,1789, + 3826,9900,9619,8737,8737,8737,8737,8737,8730,8737, + 8737,8737,8737,8737,8737,9626,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,8109,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,6372,1,1,1,597,8343,2424,1, - 739,704,8507,1005,847,914,1,1,8332,1, - 839,8691,8332,3965,2012,2547,1999,3941,3933,8332, - 3959,1984,3953,3729,3952,8332,8105,7295,7295,7295, - 7295,7295,7288,7295,7295,7295,7295,8112,7295,7295, + 1,1,1,1,1,1,9623,1,133,1, + 1,1,4098,7934,9900,1,9911,2489,721,1220, + 654,757,10108,1,1,632,2655,1358,1198,1227, + 3017,3863,3260,3389,3054,3816,5147,190,3861,1108, + 3837,1789,3826,9900,9619,8737,8737,8737,8737,8737, + 8730,8737,8737,8737,8737,8737,8737,9626,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,8109,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,8847,1,1,1,603,8343,2424,1, - 739,704,8507,1005,847,914,1,1,8332,8332, - 839,8693,8332,3965,2012,2547,1999,3941,3933,2129, - 3959,1984,3953,3729,3952,8332,8105,7295,7295,7295, - 7295,7295,7288,7295,7295,7295,7295,8112,7295,7295, + 1,1,1,1,1,1,1,1,9623,1, + 9317,1,1,1,131,9900,4608,1,9911,2489, + 721,2213,431,757,10108,1,1,5050,2655,1358, + 1198,1227,1,3863,3260,3389,3054,3816,5147,629, + 3861,1108,3837,1789,3826,9900,9619,8737,8737,8737, + 8737,8737,8730,8737,8737,8737,8737,8737,8737,9626, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,8109,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3999,1,1,1,420,8343,2424,1, - 739,704,8507,1005,847,914,1,1,8332,8332, - 839,8332,8332,3965,2012,2547,1999,3941,3933,8332, - 3959,1984,3953,3729,3952,8332,8105,7295,7295,7295, - 7295,7295,7288,7295,7295,7295,7295,8112,7295,7295, 1,1,1,1,1,1,1,1,1,1, + 9623,1,1604,1,1,1,2,9900,619,1, + 9911,2489,721,2915,366,757,10108,1,1,91, + 2655,9445,9451,9448,9433,3863,3260,3389,3054,3816, + 5147,9900,3861,1108,3837,1789,3826,9900,9619,8737, + 8737,8737,8737,8737,8730,8737,8737,8737,8737,8737, + 8737,9626,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,8109,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,4002,1,1,1,599,8343,2424,1, - 739,704,8507,8249,8255,8252,1,1,8332,442, - 839,1,8332,3965,2012,2547,1999,3941,3933,8332, - 3959,1984,3953,3729,3952,8332,8105,7295,7295,7295, - 7295,7295,7288,7295,7295,7295,7295,8112,7295,7295, 1,1,1,1,1,1,1,1,1,1, + 1,1,9623,1,606,1,1,1,151,1510, + 337,1,9911,2489,721,10337,366,757,10108,1, + 1,5119,2655,1358,1198,1227,155,3863,3260,3389, + 3054,3816,5147,10236,3861,1108,3837,1789,3826,9900, + 9619,8737,8737,8737,8737,8737,8730,8737,8737,8737, + 8737,8737,8737,9626,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,8109,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,8332,1,1,1,1838,8343,2424,1, - 739,704,8507,8332,8342,39,1,1,1476,8332, - 839,8370,8332,3965,2012,2547,1999,3941,3933,8332, - 3959,1984,3953,3729,3952,8332,7869,7869,7869,7869, - 7869,7869,7869,7869,7869,7869,7869,7869,7869,7869, - 8770,8771,8772,8341,225,38,7806,7797,7800,7803, - 8332,7414,7408,7411,8332,7794,3412,8332,7869,7869, - 7869,7869,7869,7869,7869,7869,7869,7869,7869,7869, - 7869,4598,7869,7869,7869,7869,7869,7423,7420,7417, - 7441,7429,7447,7426,7438,7405,7432,7435,7444,7402, - 8332,300,8346,8976,8975,8347,7869,7869,1005,847, - 914,8332,320,7869,7869,7869,3030,7821,7869,7869, - 7869,7869,7869,333,7308,7298,7612,7305,3202,751, - 1005,847,914,856,3412,7869,7869,7869,7869,7869, - 7869,7869,7869,7869,7869,7869,7869,7869,7869,7869, - 7869,7869,7869,7869,7869,7869,7869,7869,7869,7869, - 7869,7869,7869,7869,7869,35,322,1488,8332,7869, - 8332,7997,7997,7997,7997,7997,7997,7997,7997,7997, - 7997,7997,7997,7997,7997,8332,39,8332,8332,226, - 1539,129,8370,1005,847,914,7462,7456,7459,333, - 333,4786,3454,7997,7997,7997,7997,7997,7997,7997, - 7997,7997,7997,7997,7997,7997,8332,7997,7997,7997, - 7997,7997,7471,7468,7465,7489,7477,7495,7474,7486, - 7453,7480,7483,7492,7450,8332,8346,8976,8975,8347, - 185,7997,7997,135,1539,856,3412,3690,7997,7997, - 7997,2488,6576,7997,7997,7997,7997,7997,604,7308, - 7298,7612,7305,3202,751,1005,847,914,856,3412, - 7997,7997,7997,7997,7997,7997,7997,7997,7997,7997, - 7997,7997,7997,7997,7997,7997,7997,7997,7997,7997, - 7997,7997,7997,7997,7997,7997,7997,7997,7997,7997, - 461,4731,4675,131,7997,39,7308,7298,7301,7305, - 4231,751,1005,847,914,6349,3412,3909,6257,6280, - 8598,8596,8604,8600,8601,8599,8602,1453,8603,8940, - 8941,8605,8606,8597,8947,8948,8949,6743,8671,8672, - 1273,8589,8593,8587,8594,8590,8566,8592,8591,8588, - 8567,8351,6234,6211,6326,6303,3536,8353,8354,8352, - 8348,8349,8350,6188,1938,2054,1991,6694,2051,1900, - 6672,8733,8332,5192,8734,8735,8329,835,7863,1910, - 39,7308,7298,7612,7305,4231,751,1005,847,914, - 6349,3412,8332,6257,6280,8598,8596,8604,8600,8601, - 8599,8602,1453,8603,8940,8941,8605,8606,8597,8947, - 8948,8949,6743,8671,8672,1273,8589,8593,8587,8594, - 8590,8566,8592,8591,8588,8567,8351,6234,6211,6326, - 6303,8332,8353,8354,8352,8348,8349,8350,6188,1938, - 2054,1991,6694,2051,1900,6672,8733,8332,5192,8734, - 8735,460,1177,8332,1910,8332,7915,7915,7915,7915, - 230,7911,7295,7295,7295,230,230,7919,230,230, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,8332,8346,8976,8975,8347,230,1,7329,7317, - 7321,7325,3202,7314,7348,7342,7345,856,3412,311, - 5986,1,7908,1,1,1,598,8332,5977,7866, - 1407,704,8747,8258,8264,8261,224,118,230,421, - 7104,8332,419,7363,7357,7360,1005,847,914,8835, - 8332,8598,8596,8604,8600,8601,8599,8602,311,8603, - 8940,8941,8605,8606,8597,8947,8948,8949,350,7372, - 7369,7366,7390,7378,7396,7375,7387,7354,7381,7384, - 7393,7351,6484,940,5781,5751,8770,8771,8772,8332, - 7915,7915,7915,7915,230,7911,7295,7295,7295,230, - 230,8094,230,230,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,447,7860,7860,7860,7860, - 230,7860,7860,7860,7860,8332,1539,568,7860,7860, - 37,7872,7872,7872,7872,1,7908,1,1,1, - 7872,398,5977,8332,1407,704,8747,391,1005,847, - 914,637,230,7905,8332,8332,418,8332,7902,7896, - 7899,8899,1702,8835,8332,295,8957,8960,8956,8962, - 8963,8961,8958,8332,8959,8332,8671,8672,1273,126, - 111,766,8332,8332,8671,8672,1273,8589,8593,8587, - 8594,8590,8566,8592,8591,8588,8567,2178,8332,137, - 8770,8771,8772,8332,7295,7295,7295,7295,230,7295, - 7288,7295,7295,230,230,7339,230,230,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,13407, - 1,1,1,14311,1,12243,1,1,1,6031, - 5035,2885,39,304,230,8332,3215,3184,8370,1005, - 847,914,8332,7878,347,333,333,8338,120,1, - 7292,1,1,1,8344,8635,3945,3690,739,704, - 8544,115,4102,6507,636,6530,8085,4971,4939,8332, - 220,8082,8076,8079,5946,4907,4869,8835,139,8957, - 8960,8956,8962,8963,8961,8958,8332,8959,8332,7308, - 7298,7612,7305,3498,8370,5781,5751,8671,8672,1273, - 8589,8593,8587,8594,8590,8566,8592,8591,8588,8567, - 1539,347,347,47,8343,8337,347,138,220,8332, - 7295,7295,7295,7295,230,7295,7288,7295,7295,230, - 230,230,230,230,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,13407,1,1,1,14311, - 1,12243,1,1,1,227,8332,5902,5110,2590, - 230,2183,7522,7516,7519,290,7558,7558,7558,7558, - 1833,285,1005,847,914,1,7292,1,1,1, - 525,133,3945,3318,739,704,8544,3022,7531,7528, - 7525,7549,7537,7555,7534,7546,7513,7540,7543,7552, - 7510,8332,8332,8835,8332,7624,7615,7618,7621,8332, - 7329,7317,7321,7325,3202,7314,7348,7342,7345,856, - 3412,3498,7791,7791,8332,7329,7317,7321,7325,3202, - 7314,7348,7342,7345,856,3412,8332,7857,7857,37, - 7872,7872,7872,7872,221,8332,7295,7295,7295,7295, - 230,7295,7288,7295,7295,230,230,230,230,230, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,13407,1,1,1,14311,1,12243,1,1, - 1,228,2842,3573,132,8332,230,8332,7573,7567, - 7570,8332,8346,8976,8975,8347,8368,2842,3909,114, - 1,1,7292,1,1,1,1567,8332,3945,2644, - 739,704,8544,1494,7582,7579,7576,7600,7588,7606, - 7585,7597,7564,7591,7594,7603,7561,8332,8332,8835, - 8332,7295,7295,7295,7295,230,7295,7288,7295,7295, - 230,230,8025,230,230,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,13407,1,1,1, - 14311,1,12243,1,1,1,448,8142,8142,8142, - 8142,230,8139,8130,8136,8133,130,1,653,8145, - 8145,8332,8346,8976,8975,8347,1,7292,1,1, - 1,2129,6507,3945,6530,739,704,8544,1,7329, - 7317,7321,7325,5082,7314,4083,37,221,856,3412, - 8115,8671,8672,1273,8835,8332,7295,7295,7295,7295, - 230,7295,7288,7295,7295,230,230,8025,230,230, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,13407,1,1,1,14311,1,12243,1,1, - 1,92,8184,8184,8184,8184,230,8184,8184,8184, - 8184,8332,338,8368,8184,8184,1539,8332,8118,3949, - 372,1,7292,1,1,1,4731,4675,3945,8336, - 739,704,8544,1,7329,7317,7321,7325,5082,7314, - 8332,8332,221,856,3412,8208,8205,8202,8332,8835, - 8332,7295,7295,7295,7295,230,7295,7288,7295,7295, - 230,230,8025,230,230,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,13407,1,1,1, - 14311,1,12243,1,1,1,95,8288,8288,8288, - 8288,230,8285,8276,8282,8279,1761,377,370,8291, - 8291,1539,8332,8332,431,8955,1,7292,1,1, - 1,8335,390,3945,8338,739,704,8544,8957,8960, - 8956,8962,8963,8961,8958,8332,8959,221,8332,8332, - 7985,7976,7979,7982,8835,8332,7295,7295,7295,7295, - 230,7295,7288,7295,7295,230,230,230,230,230, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,13407,1,1,1,14311,1,12243,1,1, - 1,592,8337,7609,1810,988,230,3896,7639,7633, - 7636,601,7836,7836,7836,7836,8368,606,1005,847, - 914,1,7292,1,1,1,304,399,3945,457, - 739,704,8544,390,7648,7645,7642,7666,7654,7672, - 7651,7663,7630,7657,7660,7669,7627,4083,8635,8835, - 8332,7295,7295,7295,7295,230,7295,7288,7295,7295, - 230,230,230,230,230,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,13407,1,1,1, - 14311,1,12243,1,1,1,633,573,1789,1168, - 7809,230,8332,8040,8034,8037,136,6965,8332,3415, - 8332,7624,7615,7618,7621,8332,1,7292,1,1, - 1,3906,8332,3945,443,739,704,8544,2572,8049, - 8046,8043,8067,8055,8073,8052,8064,8031,8058,8061, - 8070,8028,536,3187,8835,8332,7295,7295,7295,7295, - 230,7295,7288,7295,7295,230,230,230,230,230, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,13407,1,1,1,14311,1,12243,1,1, - 1,6484,940,117,1350,7812,230,1,7329,7317, - 7321,7325,7311,7314,8332,8332,5946,7336,7333,113, - 2575,1,7292,1,1,1,4108,8332,3945,3536, - 739,704,8544,347,7308,7298,7612,7305,5082,751, - 1005,847,914,856,3412,8332,333,333,8332,8835, - 8332,7295,7295,7295,7295,230,7295,7288,7295,7295, - 230,230,230,230,230,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,13407,1,1,1, - 14311,1,12243,1,1,1,8332,13664,13534,13597, - 13598,230,1,7329,7317,7321,7325,3202,7314,5902, - 5110,1539,856,3412,112,8332,1,7292,1,1, - 1,2718,6507,3945,6530,739,704,8544,311,7329, - 7317,7321,7325,3202,7314,7348,7342,7345,856,3412, - 8332,7791,7791,1,8835,8332,7295,7295,7295,7295, - 230,7295,7288,7295,7295,230,230,230,230,230, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,13407,1,1,1,14311,1,12243,1,1, - 1,48,7624,7615,7618,7621,230,1,7329,7317, - 7321,7325,3202,7314,574,550,8883,856,3412,3286, - 734,1,7292,1,1,1,8332,6507,3945,6530, - 739,704,8544,8332,7329,7317,7321,7325,3202,7314, - 7348,7342,7345,856,3412,8332,7857,7857,8884,8835, - 8332,7295,7295,7295,7295,230,7295,7288,7295,7295, - 230,230,230,230,230,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,13407,1,1,1, - 14311,1,12243,1,1,1,8332,7308,7298,7612, - 7305,230,8370,1,7329,7317,7321,7325,3202,7314, - 7348,7342,7345,856,3412,8332,1,7292,1,1, - 1,8332,8332,3945,8332,739,704,8544,4000,310, - 8332,8346,8976,8975,8347,1,7308,7298,7612,7305, - 4231,751,8344,8332,8835,6349,3412,8336,3871,6280, - 8598,8596,8604,8600,8601,8599,8602,1982,8603,8940, - 8941,8605,8606,8597,8947,8948,8949,6581,8351,8332, - 2492,1614,8332,8332,8353,8354,8352,8348,8349,8350, - 524,8351,6234,6211,6326,6303,2842,8353,8354,8352, - 8348,8349,8350,6188,1938,2054,1991,6694,2051,1900, - 6672,338,8343,43,7991,7991,7991,7991,4598,1, - 7329,7317,7321,7325,7311,7314,39,39,3187,7336, - 7333,8342,400,8346,8976,8975,8347,1,7329,7317, - 7321,7325,4231,7314,8671,8672,1273,6349,3412,8335, - 6257,6280,7958,7964,7940,7952,7949,7955,7946,7922, - 7943,7970,7967,7937,7934,7961,7931,7928,7925,7973, - 8341,8332,7308,7298,7612,7305,8332,751,157,8332, - 7988,856,3412,8351,6234,6211,6326,6303,8338,8353, - 8354,8352,8348,8349,8350,6188,1938,2054,1991,6694, - 2051,1900,6672,8332,8332,8332,397,7507,7507,7507, - 7507,1910,285,7498,7504,7501,571,8332,39,39, - 4083,519,39,7308,7298,7612,7305,4231,751,8338, - 8332,8332,6349,3412,8336,4637,6280,8598,8596,8604, - 8600,8601,8599,8602,1982,8603,8940,8941,8605,8606, - 8597,8947,8948,8949,6581,697,8337,7875,2744,29, - 134,8332,13796,13796,13796,13796,8332,8332,8351,6234, - 6211,6326,6303,285,8353,8354,8352,8348,8349,8350, - 6188,1938,2054,1991,6694,2051,1900,6672,39,7308, - 7298,7612,7305,4231,751,1105,1910,8337,6349,3412, - 8305,6257,6280,8598,8596,8604,8600,8601,8599,8602, - 1982,8603,8940,8941,8605,8606,8597,8947,8948,8949, - 6581,8332,7308,7298,7612,7305,8335,751,8368,518, - 7815,856,3412,39,8351,6234,6211,6326,6303,8370, - 8353,8354,8352,8348,8349,8350,6188,1938,2054,1991, - 6694,2051,1900,6672,8332,13664,13534,13597,13598,1, - 7884,8332,1910,141,7308,7298,7612,7305,4231,751, - 2832,161,3573,6349,3412,8339,6257,6280,8598,8596, - 8604,8600,8601,8599,8602,1982,8603,8940,8941,8605, - 8606,8597,8947,8948,8949,6581,1,7329,7317,7321, - 7325,3202,7314,7348,7342,7345,856,3412,1186,8351, - 6234,6211,6326,6303,8332,8353,8354,8352,8348,8349, - 8350,6188,1938,2054,1991,6694,2051,1900,6672,8332, - 8332,7308,7298,7612,7305,8332,751,1910,75,161, - 8003,3412,1,7851,39,39,39,7308,7298,7612, - 7305,4231,751,8332,7818,8332,6349,3412,7881,6257, - 6280,8598,8596,8604,8600,8601,8599,8602,1982,8603, - 8940,8941,8605,8606,8597,8947,8948,8949,6581,2842, - 294,8346,8976,8975,8347,2244,561,7842,7839,8332, - 8332,2930,8351,6234,6211,6326,6303,1585,8353,8354, - 8352,8348,8349,8350,6188,1938,2054,1991,6694,2051, - 1900,6672,91,4013,8343,8332,7854,7994,7884,4015, - 1910,1,7308,7298,7612,7305,4231,751,548,128, - 8332,6349,3412,1379,6257,6280,8598,8596,8604,8600, - 8601,8599,8602,1982,8603,8940,8941,8605,8606,8597, - 8947,8948,8949,6581,8332,8332,7845,36,8246,8237, - 8240,8243,293,790,790,790,790,8351,6234,6211, - 6326,6303,7848,8353,8354,8352,8348,8349,8350,6188, - 1938,2054,1991,6694,2051,1900,6672,8332,8332,7308, - 7298,7612,7305,119,751,1910,313,452,8003,3412, - 5035,698,39,39,556,7308,7298,7612,7305,4231, - 751,1,127,8148,6349,3412,7184,6257,6280,8598, - 8596,8604,8600,8601,8599,8602,1982,8603,8940,8941, - 8605,8606,8597,8947,8948,8949,6581,4971,4939,8790, - 5781,5751,238,8332,349,4907,4869,8121,2870,3564, - 8351,6234,6211,6326,6303,3254,8353,8354,8352,8348, - 8349,8350,6188,1938,2054,1991,6694,2051,1900,6672, - 4066,116,8332,8332,364,8332,1598,7120,1910,8332, - 8332,287,1430,5035,5946,39,39,1,7329,7317, - 7321,7325,4231,7314,8332,8332,8151,6349,3412,8332, - 6257,6280,7958,7964,7940,7952,7949,7955,7946,7922, - 7943,7970,7967,7937,7934,7961,7931,7928,7925,7973, - 4971,4939,1539,8332,8332,511,1,8332,4907,4869, - 293,3184,7121,8351,6234,6211,6326,6303,618,8353, - 8354,8352,8348,8349,8350,6188,1938,2054,1991,6694, - 2051,1900,6672,2739,45,8157,8157,8157,8157,8776, - 8618,1910,2939,4132,8332,7140,7152,1,39,39, - 39,7308,7298,7612,7305,4231,751,5902,5110,8344, - 6349,3412,7881,6257,6280,8598,8596,8604,8600,8601, - 8599,8602,1982,8603,8940,8941,8605,8606,8597,8947, - 8948,8949,6581,8332,1539,618,618,8332,951,12942, - 618,7185,3612,8332,8332,8338,8351,6234,6211,6326, - 6303,8154,8353,8354,8352,8348,8349,8350,6188,1938, - 2054,1991,6694,2051,1900,6672,8332,8332,8332,8343, - 8332,7137,7884,3239,1910,39,7308,7298,7612,7305, - 4231,751,8338,8332,8332,6349,3412,8336,6257,6280, - 8598,8596,8604,8600,8601,8599,8602,1982,8603,8940, - 8941,8605,8606,8597,8947,8948,8949,6581,602,7833, - 7833,7833,7833,8337,606,7824,7830,7827,8332,8332, - 8332,8351,6234,6211,6326,6303,509,8353,8354,8352, - 8348,8349,8350,6188,1938,2054,1991,6694,2051,1900, - 6672,39,7308,7298,7612,7305,4231,751,8332,1861, - 8337,6349,3412,7881,6257,6280,8598,8596,8604,8600, - 8601,8599,8602,1982,8603,8940,8941,8605,8606,8597, - 8947,8948,8949,6581,8332,606,8332,8332,8332,8335, - 37,7872,7872,7872,7872,1,8338,8351,6234,6211, - 6326,6303,8332,8353,8354,8352,8348,8349,8350,6188, - 1938,2054,1991,6694,2051,1900,6672,8019,8332,8332, - 3442,8332,7199,7884,39,7308,7298,7612,7305,4231, - 751,8338,8332,8332,6349,3412,8336,6257,6280,8598, - 8596,8604,8600,8601,8599,8602,1982,8603,8940,8941, - 8605,8606,8597,8947,8948,8949,6581,2080,7172,7178, - 39,8022,3618,7216,8337,3441,8370,1,3102,8332, - 8351,6234,6211,6326,6303,8332,8353,8354,8352,8348, - 8349,8350,6188,1938,2054,1991,6694,2051,1900,6672, - 39,7308,7298,7612,7305,4231,751,1469,8332,8337, - 6349,3412,8332,6257,6280,8598,8596,8604,8600,8601, - 8599,8602,1982,8603,8940,8941,8605,8606,8597,8947, - 8948,8949,6581,8332,8233,8221,8225,8229,8335,591, - 8332,8332,8332,8332,763,3697,8351,6234,6211,6326, - 6303,8097,8353,8354,8352,8348,8349,8350,6188,1938, - 2054,1991,6694,2051,1900,6672,39,7308,7298,7612, - 7305,4231,751,8332,1910,8332,6349,3412,3808,6257, - 6280,8598,8596,8604,8600,8601,8599,8602,1982,8603, - 8940,8941,8605,8606,8597,8947,8948,8949,6581,398, - 8368,8770,8771,8772,48,580,1005,847,914,8332, - 8976,8101,8351,6234,6211,6326,6303,8160,8353,8354, - 8352,8348,8349,8350,6188,1938,2054,1991,6694,2051, - 1900,6672,39,7308,7298,7612,7305,4231,751,8332, - 8332,8332,6349,3412,2838,6257,6280,8598,8596,8604, - 8600,8601,8599,8602,1982,8603,8940,8941,8605,8606, - 8597,8947,8948,8949,6581,8332,8332,48,48,8332, - 1789,578,8332,8975,8347,8976,8332,8164,8351,6234, - 6211,6326,6303,8168,8353,8354,8352,8348,8349,8350, - 6188,1938,2054,1991,6694,2051,1900,6672,39,7308, - 7298,7612,7305,4165,751,8332,1910,8332,6349,3412, - 1789,6257,6280,8598,8596,8604,8600,8601,8599,8602, - 1982,8603,8940,8941,8605,8606,8597,8947,8948,8949, - 6581,8332,29,8332,48,8332,1567,87,8975,8347, - 8346,8332,8332,8172,8351,6234,6211,6326,6303,8176, - 8353,8354,8352,8348,8349,8350,6188,1938,2054,1991, - 6694,2051,1900,6672,39,7308,7298,7612,7305,4297, - 751,8332,8332,8332,6349,3412,3613,6257,6280,8598, - 8596,8604,8600,8601,8599,8602,1982,8603,8940,8941, - 8605,8606,8597,8947,8948,8949,6581,8332,8332,8332, - 73,8332,3997,1789,2924,8346,3021,8332,8332,8180, - 8351,6234,6211,6326,6303,427,8353,8354,8352,8348, - 8349,8350,6188,1938,2054,1991,6694,2051,1900,6672, - 39,7308,7298,7612,7305,4363,751,103,8332,8332, - 6349,3412,8270,6257,6280,8598,8596,8604,8600,8601, - 8599,8602,1982,8603,8940,8941,8605,8606,8597,8947, - 8948,8949,6581,100,8332,8332,2,280,429,4133, - 4014,8302,8323,8332,8332,8332,8351,6234,6211,6326, - 6303,8332,8353,8354,8352,8348,8349,8350,6188,1938, - 2054,1991,6694,2051,1900,6672,39,7308,7298,7612, - 7305,4429,751,103,8332,8332,6349,3412,8270,6257, - 6280,8598,8596,8604,8600,8601,8599,8602,1982,8603, - 8940,8941,8605,8606,8597,8947,8948,8949,6581,99, - 8332,8332,8332,8332,8332,100,7028,37,8332,8332, - 8332,8211,8351,6234,6211,6326,6303,2613,8353,8354, - 8352,8348,8349,8350,6188,1938,2054,1991,6694,2051, - 1900,6672,39,7308,7298,7612,7305,4231,751,8332, - 8332,8332,6349,3412,8332,6257,6280,8598,8596,8604, - 8600,8601,8599,8602,1982,8603,8940,8941,8605,8606, - 8597,8947,8948,8949,6581,8332,8332,8332,8332,8332, - 8332,8332,8332,8332,8332,8332,8332,8273,8351,6234, - 6211,6326,6303,8211,8353,8354,8352,8348,8349,8350, - 6188,1938,2054,1991,6694,2051,1900,6672,39,7308, - 7298,7612,7305,4495,751,8332,8332,8332,6349,3412, - 8332,6257,6280,8598,8596,8604,8600,8601,8599,8602, - 1982,8603,8940,8941,8605,8606,8597,8947,8948,8949, - 6581,8332,8332,8332,8332,8332,8332,8332,8332,8332, - 8332,8332,8332,8332,8351,6234,6211,6326,6303,423, - 8353,8354,8352,8348,8349,8350,6188,1938,2054,1991, - 6694,2051,1900,6672,39,7308,7298,7612,7305,4231, - 751,8332,8332,8332,6349,3412,1,6257,6280,8598, - 8596,8604,8600,8601,8599,8602,1982,8603,8940,8941, - 8605,8606,8597,8947,8948,8949,6581,8332,8019,8332, - 8332,8332,8332,1,8332,8332,8332,8332,3184,8340, - 8351,6234,6211,6326,6303,8115,8353,8354,8352,8348, - 8349,8350,6188,1938,2054,1991,6694,2051,1900,6672, - 8332,7308,7298,7301,7305,2982,8370,1005,847,914, - 8332,8332,8022,3618,8332,8598,8596,8604,8600,8601, - 8599,8602,1160,8603,8940,8941,8605,8606,8597,8947, - 8948,8949,5811,8671,8672,1273,8589,8593,8587,8594, - 8590,8566,8592,8591,8588,8567,1325,8332,8332,8332, - 8332,1539,8332,8118,8339,8332,242,7784,7771,7775, - 7780,2488,7788,7687,7681,7684,8733,8342,5192,8734, - 8735,7756,7762,7738,7750,7747,7753,7744,1160,7741, - 7768,7765,7735,7732,7759,7729,7726,7723,5811,7696, - 7693,7690,7714,7702,7720,7699,7711,7678,7705,7708, - 7717,7675,8332,8332,8332,8332,8341,8332,8332,8332, - 8332,408,8332,7308,7298,7612,7305,8332,8370,1005, - 847,914,8733,8088,5192,8734,8735,8598,8596,8604, - 8600,8601,8599,8602,1160,8603,8940,8941,8605,8606, - 8597,8947,8948,8949,5811,8671,8672,1273,8589,8593, - 8587,8594,8590,8566,8592,8591,8588,8567,8332,8332, - 8332,8332,8091,8332,513,8332,8332,1,242,7784, - 7771,8015,7780,8332,7788,7687,7681,7684,8733,8000, - 5192,8734,8735,7756,7762,7738,7750,7747,7753,7744, - 1160,7741,7768,7765,7735,7732,7759,7729,7726,7723, - 5811,7696,7693,7690,7714,7702,7720,7699,7711,7678, - 7705,7708,7717,7675,1,8332,8332,1,8332,2342, - 8332,1,8332,8332,8804,8332,8332,8798,8802,365, - 8308,8316,8312,8332,8733,8320,5192,8734,8735,37, - 7872,7872,7872,7872,8332,8342,1005,847,914,2793, - 1238,8332,333,1,8339,8332,8340,1,8332,8332, - 8332,8796,8797,8827,8828,8342,1602,781,8332,191, - 8332,8332,8805,8332,8320,8332,8332,8332,8332,8332, - 8332,8332,8332,8332,8341,8807,8332,6092,781,8, - 8332,1,1787,8829,8332,2481,2586,365,8808,8332, - 8806,8326,8320,163,8341,8332,8368,8332,191,8332, - 8332,8332,4765,8332,8818,8817,8332,8830,8332,365, - 8799,8800,8823,8824,8821,8822,8801,8803,8825,8826, - 8332,8339,8831,8332,8811,8812,8813,8809,8810,8819, - 8820,8815,8814,8816,29,390,390,390,390,8127, - 390,390,390,390,390,390,8127,8127,8127,8332, - 8267,8267,8267,8267,8267,8267,8267,8267,8267,8267, - 8267,163,8267,8267,8332,8332,8326,390,390,390, - 390,390,390,390,390,390,390,390,390,390, - 8332,8332,8332,8332,8332,8127,580,591,591,591, - 591,591,591,591,591,591,591,591,8294,8299, - 8299,8332,8332,8332,1,7815,1,8332,8332,8332, - 8332,8332,8127,8332,8127,8332,532,8332,8338,591, - 591,591,591,591,591,591,591,591,591,591, - 591,591,8267,8332,8332,8332,139,8299,32,391, - 391,391,391,8124,391,391,391,391,391,391, - 8124,8124,8124,8332,8332,8332,8332,8332,7884,8332, - 8332,8332,8332,8332,591,8332,8299,8332,8332,8332, - 8332,391,391,391,391,391,391,391,391,391, - 391,391,391,391,532,8332,8337,8332,8332,8124, - 579,590,590,590,590,590,590,590,590,590, - 590,590,8199,8199,8199,8332,8332,8332,8332,1, - 7329,7317,7321,7325,5082,7314,8124,8332,8124,856, - 3412,369,2498,590,590,590,590,590,590,590, - 590,590,590,590,590,590,1,8196,8196,8196, - 8196,8199,8193,7348,7342,7345,8332,8332,365,333, - 333,3318,8332,8332,8332,3022,2449,2400,2351,2302, - 2253,2204,2155,2106,2057,2008,1,8332,590,8332, - 8199,3184,8332,8332,8332,8332,8332,8332,343,8332, - 8332,8332,8332,8332,8332,8332,8332,1539,369,369, - 8332,8332,8332,369,8332,1712,8332,8332,8332,8332, - 8332,8332,8332,8332,8332,8332,8332,8332,8332,8332, - 8332,369,8332,8332,8332,8332,365,8332,8332,8332, - 8332,8332,8332,8332,8332,8332,8332,8332,8332,8332, - 8332,8332,8332,8332,8332,8332,8332,8332,365,8332, - 8332,8332,8332,8332,1539,343,343,8332,8332,8332, - 343 + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,9623,1,9900,1,1,1, + 157,153,1,1,9911,2489,721,7949,655,757, + 10108,1,1,271,2655,1358,1198,1227,9635,3863, + 3260,3389,3054,3816,5147,4531,3861,1108,3837,1789, + 3826,9900,9619,8737,8737,8737,8737,8737,8730,8737, + 8737,8737,8737,8737,8737,9626,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,9623,1,353,1, + 1,1,9900,9263,9900,1,9911,2489,721,4703, + 4500,757,10108,1,1,118,2655,9900,9912,9900, + 9900,3863,3260,3389,3054,3816,5147,218,3861,1108, + 3837,1789,3826,9900,9311,9311,9311,9311,9311,9311, + 9311,9311,9311,9311,9311,9311,9311,9311,9919,10272, + 10273,1439,258,9921,9922,9920,9916,9917,9918,8856, + 8850,8853,7189,4159,9900,9311,9311,9311,9311,9311, + 1613,9311,9311,9311,9311,9311,9311,9311,9311,9911, + 9311,9311,9311,9311,8865,8862,8859,8883,8871,9900, + 8889,8868,8880,8847,8874,8877,8886,8844,9311,38, + 9248,9239,9242,9245,9311,9311,9311,431,9311,9236, + 5597,9311,9311,424,1358,1198,1227,9311,9311,9311, + 9311,9311,9311,366,8750,8740,9054,8747,860,849, + 1358,1198,1227,818,5597,9311,9311,9311,9311,9311, + 9311,9311,9311,9311,9311,9311,9311,9311,9311,9311, + 9311,9311,9311,9311,9311,9311,9311,9311,9311,9311, + 9311,9311,9311,9897,9900,9900,9900,9311,9900,9436, + 9436,9436,9436,9436,9436,9436,9436,9436,9436,9436, + 9436,9436,9436,9900,9900,117,9900,259,9900,9914, + 10602,10601,9915,9900,8904,8898,8901,7352,818,5597, + 9436,9436,9436,9436,9436,5769,9436,9436,9436,9436, + 9436,9436,9436,9436,328,9436,9436,9436,9436,8913, + 8910,8907,8931,8919,8729,8937,8916,8928,8895,8922, + 8925,8934,8892,9436,37,9314,9314,9314,9314,9436, + 9436,9436,661,9436,9314,355,9436,9436,3436,1358, + 1198,1227,9436,9436,9436,9436,9436,9436,662,8750, + 8740,9054,8747,860,849,1358,1198,1227,818,5597, + 9436,9436,9436,9436,9436,9436,9436,9436,9436,9436, + 9436,9436,9436,9436,9436,9436,9436,9436,9436,9436, + 9436,9436,9436,9436,9436,9436,9436,9436,7321,5153, + 3832,2335,9436,39,8750,8740,8743,8747,6776,849, + 1358,1198,1227,7911,5597,7819,7842,1613,10199,10197, + 10205,10201,10202,10200,10203,10204,1193,10566,10567,10206, + 10207,10198,10573,10574,10575,10272,10273,1439,10190,10194, + 8155,10188,10195,10191,10167,10193,10192,10189,10168,9919, + 7796,7773,7888,7865,9921,9922,9920,9916,9917,9918, + 7750,2053,2205,2100,7711,2147,2050,7282,9900,10334, + 9900,4893,10335,10336,2393,3705,9900,2006,39,8750, + 8740,9054,8747,6776,849,1358,1198,1227,7911,5597, + 7819,7842,9900,10199,10197,10205,10201,10202,10200,10203, + 10204,1193,10566,10567,10206,10207,10198,10573,10574,10575, + 10272,10273,1439,10190,10194,8155,10188,10195,10191,10167, + 10193,10192,10189,10168,9919,7796,7773,7888,7865,9921, + 9922,9920,9916,9917,9918,7750,2053,2205,2100,7711, + 2147,2050,7282,1725,10334,346,4893,10335,10336,9900, + 1130,227,2006,9900,9357,9357,9357,9357,263,9353, + 8737,8737,8737,263,263,263,263,9361,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,9900, + 8771,8759,8763,8767,860,8756,8790,8784,8787,818, + 5597,9233,9233,9900,9066,9057,9060,9063,263,1, + 9350,1,1,1,9900,9914,10602,10601,9915,4210, + 2202,1445,9900,757,10348,257,631,263,453,626, + 452,9786,8805,8799,8802,1358,1198,1227,9900,10436, + 10199,10197,10205,10201,10202,10200,10203,10204,134,10566, + 10567,10206,10207,10198,10573,10574,10575,8814,8811,8808, + 8832,8820,10525,8838,8817,8829,8796,8823,8826,8835, + 8793,9900,2826,3785,10371,10372,10373,9900,9357,9357, + 9357,9357,263,9353,8737,8737,8737,263,263,263, + 263,9533,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,9900,8771,8759,8763,8767,860,8756, + 8790,8784,8787,818,5597,9299,9299,9900,15475,15384, + 15409,15412,263,1,9350,1,1,1,48,9066, + 9057,9060,9063,4210,2202,393,4608,757,10348,570, + 9900,263,657,9900,451,9900,9674,9668,9671,9817, + 9823,9820,9900,10436,10199,10197,10205,10201,10202,10200, + 10203,10204,337,10566,10567,10206,10207,10198,10573,10574, + 10575,10272,10273,1439,10190,10194,9900,10188,10195,10191, + 10167,10193,10192,10189,10168,10236,2355,3785,10371,10372, + 10373,9900,8737,8737,8737,8737,263,8737,8730,8737, + 8737,263,263,263,263,8781,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,15410,1,1,1, + 1,15539,1,15217,1,1,1,9900,836,10292, + 9900,29,423,423,423,423,9641,423,423,423, + 423,423,423,9641,9641,9641,263,1,8734,1, + 1,1,433,9914,10602,10601,9915,3256,721,9900, + 9900,757,10145,423,423,423,423,423,253,423, + 423,423,423,423,423,423,423,10436,9900,9900, + 9835,9835,9835,9835,9835,9835,9835,9835,9835,9835, + 9835,9835,9835,494,7510,9900,9641,37,9314,9314, + 9314,9314,9257,9641,1358,1198,1227,4954,4910,366, + 9641,9900,15475,15384,15409,15412,253,9900,8737,8737, + 8737,8737,263,8737,8730,8737,8737,263,263,263, + 263,263,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,15410,1,1,1,1,15539,1,15217, + 1,1,1,9835,9936,9305,9900,638,649,649, + 649,649,649,649,649,649,649,649,649,9867, + 9867,9862,263,1,8734,1,1,1,327,9914, + 10602,10601,9915,3256,721,9900,711,757,10145,649, + 649,649,649,649,9900,649,649,649,649,649, + 649,649,649,10436,344,8771,8759,8763,8767,860, + 8756,8790,8784,8787,818,5597,9233,9233,10272,10273, + 1439,423,9867,7577,9900,8750,8740,9054,8747,649, + 849,2826,9326,551,9442,5597,9867,37,9314,9314, + 9314,9314,254,9900,8737,8737,8737,8737,263,8737, + 8730,8737,8737,263,263,263,263,263,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,15410,1, + 1,1,1,15539,1,15217,1,1,1,9900, + 9900,2700,9051,260,8444,9900,9914,10602,10601,9915, + 8964,8958,8961,9900,9936,2237,1228,114,263,1, + 8734,1,1,1,1786,490,1,9904,9900,3256, + 721,4473,9900,757,10145,8973,8970,8967,8991,8979, + 676,8997,8976,8988,8955,8982,8985,8994,8952,10436, + 9900,8737,8737,8737,8737,263,8737,8730,8737,8737, + 263,263,263,263,9464,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,15410,1,1,1,1, + 15539,1,15217,1,1,1,9251,9900,1613,676, + 261,136,8507,139,676,676,10448,9015,9009,9012, + 36,9814,9805,9808,9811,263,1,8734,1,1, + 1,493,8080,1,9903,9900,3256,721,4473,8103, + 757,10145,9024,9021,9018,9042,9030,254,9048,9027, + 9039,9006,9033,9036,9045,9003,10436,9900,8737,8737, + 8737,8737,263,8737,8730,8737,8737,263,263,263, + 263,9464,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,15410,1,1,1,1,15539,1,15217, + 1,1,1,9308,9900,1613,576,650,9900,8505, + 656,576,9900,3873,9081,9075,9078,9826,9832,9829, + 3677,9900,263,1,8734,1,1,1,788,781, + 9900,382,485,3256,721,9906,3141,757,10145,9090, + 9087,9084,9108,9096,254,9114,9093,9105,9072,9099, + 9102,9111,9069,10436,9900,8737,8737,8737,8737,263, + 8737,8730,8737,8737,263,263,263,263,9464,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,15410, + 1,1,1,1,15539,1,15217,1,1,1, + 9905,6454,113,1613,691,4147,9900,9900,6508,6652, + 6683,9479,9473,9476,326,1378,1378,1378,1378,263, + 1,8734,1,1,1,9900,9900,9900,9900,29, + 3256,721,6427,6400,757,10145,9488,9485,9482,9506, + 9494,254,9512,9491,9503,9470,9497,9500,9509,9467, + 10436,9900,8737,8737,8737,8737,263,8737,8730,8737, + 8737,263,263,263,263,263,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,15410,1,1,1, + 1,15539,1,15217,1,1,1,454,608,10509, + 1495,571,138,3876,1358,1198,1227,8080,9683,9677, + 9680,3498,1,460,8103,112,263,1,8734,1, + 1,1,640,476,1,9900,9439,3256,721,4473, + 10510,757,10145,10272,10273,1439,10190,10194,376,10188, + 10195,10191,10167,10193,10192,10189,10168,10436,9900,8737, + 8737,8737,8737,263,8737,8730,8737,8737,263,263, + 263,263,263,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,15410,1,1,1,1,15539,1, + 15217,1,1,1,9254,132,1613,376,572,9907, + 9900,154,376,376,1,9692,9686,9689,5050,9900, + 6652,6683,3331,263,1,8734,1,1,1,383, + 8080,1,464,9908,3256,721,4473,8103,757,10145, + 10272,10273,1439,10190,10194,9629,10188,10195,10191,10167, + 10193,10192,10189,10168,10436,9900,8737,8737,8737,8737, + 263,8737,8730,8737,8737,263,263,263,263,263, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 15410,1,1,1,1,15539,1,15217,1,1, + 1,1613,9900,1613,9900,573,9907,8514,1,2099, + 9632,639,9701,9695,9698,125,1591,116,10294,4703, + 263,1,8734,1,1,1,124,29,9900,7352, + 9900,3256,721,1137,9900,757,10145,10272,10273,1439, + 10190,10194,9906,10188,10195,10191,10167,10193,10192,10189, + 10168,10436,9900,8737,8737,8737,8737,263,8737,8730, + 8737,8737,263,263,263,263,263,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,15410,1,1, + 1,1,15539,1,15217,1,1,1,9257,6652, + 6683,2343,574,6652,6683,5329,9900,9905,9900,9710, + 9704,9707,4360,2201,6652,6683,2237,263,1,8734, + 1,1,1,123,9900,9900,9900,9900,3256,721, + 7321,5153,757,10145,10272,10273,1439,10190,10194,9900, + 10188,10195,10191,10167,10193,10192,10189,10168,10436,9900, + 8737,8737,8737,8737,263,8737,8730,8737,8737,263, + 263,263,263,263,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,15410,1,1,1,1,15539, + 1,15217,1,1,1,9900,8771,8759,8763,8767, + 860,8756,8790,8784,8787,818,5597,9299,9299,5219, + 6751,6652,6683,9900,263,1,8734,1,1,1, + 9900,122,156,9900,9900,3256,721,9906,2251,757, + 10145,380,8750,8740,9054,8747,6481,849,1358,1198, + 1227,818,5597,366,366,10436,9900,8737,8737,8737, + 8737,263,8737,8730,8737,8737,263,263,263,263, + 263,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,15410,1,1,1,1,15539,1,15217,1, + 1,1,9905,39,9900,3545,371,1722,4473,9938, + 1358,1198,1227,1613,441,366,366,380,9906,6652, + 6683,263,1,8734,1,1,1,9900,9527,9900, + 9900,9900,3256,721,2351,4350,757,10145,9776,9773, + 9770,4531,158,1,8750,8740,9054,8747,6776,849, + 3465,9900,10436,7911,5597,7376,7842,9904,10199,10197, + 10205,10201,10202,10200,10203,10204,1653,10566,10567,10206, + 10207,10198,10573,10574,10575,1613,380,9900,1660,9530, + 6613,380,380,9905,9900,9424,9415,9418,9421,9919, + 7796,7773,7888,7865,9921,9922,9920,9916,9917,9918, + 7750,2053,2205,2100,7711,2147,2050,7282,323,9000, + 9000,9000,9000,120,318,1358,1198,1227,1,8771, + 8759,8763,8767,2658,849,39,39,9900,7911,5597, + 7819,7842,47,9400,9406,9382,9394,9391,9397,9388, + 9385,9364,9412,9409,9379,9376,9403,9373,9370,9367, + 39,9936,4500,583,9903,6613,9938,1358,1198,1227, + 7189,4159,366,366,9919,7796,7773,7888,7865,9921, + 9922,9920,9916,9917,9918,7750,2053,2205,2100,7711, + 2147,2050,7282,1,8771,8759,8763,8767,8753,8756, + 9900,9900,2006,8778,8775,8,552,1,7555,1474, + 39,39,1,8771,8759,8763,8767,9605,8756,9894, + 9900,9260,9566,8775,9554,9557,9912,9400,9406,9382, + 9394,9391,9397,9388,9385,9364,9412,9409,9379,9376, + 9403,9373,9370,9367,480,9302,9302,9302,9302,9536, + 9302,9302,9302,9302,9900,9900,9302,9302,9578,9551, + 9548,9563,9560,9572,9569,9575,9587,9584,9581,9545, + 9593,9602,9596,9542,9599,9590,9539,481,9656,9656, + 9656,9656,9911,9653,9644,9650,9647,9911,397,9659, + 9659,7579,9894,1,9608,9608,39,8750,8740,9054, + 8747,6776,849,9900,37,9900,7911,5597,7399,7842, + 9904,10199,10197,10205,10201,10202,10200,10203,10204,1653, + 10566,10567,10206,10207,10198,10573,10574,10575,9900,9900, + 4113,3599,3879,6613,9900,8750,8740,9054,8747,5291, + 9938,405,9919,7796,7773,7888,7865,9921,9922,9920, + 9916,9917,9918,7750,2053,2205,2100,7711,2147,2050, + 7282,4445,39,8750,8740,9054,8747,6776,849,9900, + 2006,9936,7911,5597,7819,7842,9873,10199,10197,10205, + 10201,10202,10200,10203,10204,1653,10566,10567,10206,10207, + 10198,10573,10574,10575,659,9278,9278,9278,9278,6613, + 664,1358,1198,1227,9900,9900,3881,9903,9919,7796, + 7773,7888,7865,9921,9922,9920,9916,9917,9918,7750, + 2053,2205,2100,7711,2147,2050,7282,1846,1,8771, + 8759,8763,8767,860,8756,119,2006,9326,818,5597, + 174,8750,8740,9054,8747,6776,849,10391,9900,9907, + 7911,5597,7819,7842,2493,10199,10197,10205,10201,10202, + 10200,10203,10204,1653,10566,10567,10206,10207,10198,10573, + 10574,10575,92,9755,9755,9755,9755,6613,9755,9755, + 9755,9755,7189,4159,9755,9755,9919,7796,7773,7888, + 7865,9921,9922,9920,9916,9917,9918,7750,2053,2205, + 2100,7711,2147,2050,7282,9900,8750,8740,9054,8747, + 9900,9938,9900,9900,2006,39,8750,8740,9054,8747, + 6776,849,39,39,9900,7911,5597,7819,7842,9323, + 10199,10197,10205,10201,10202,10200,10203,10204,1653,10566, + 10567,10206,10207,10198,10573,10574,10575,95,9856,9856, + 9856,9856,6613,9853,9844,9850,9847,1,9900,9859, + 9859,9919,7796,7773,7888,7865,9921,9922,9920,9916, + 9917,9918,7750,2053,2205,2100,7711,2147,2050,7282, + 9458,1,8750,8740,9054,8747,6776,849,10377,2006, + 9326,7911,5597,7819,7842,1495,10199,10197,10205,10201, + 10202,10200,10203,10204,1653,10566,10567,10206,10207,10198, + 10573,10574,10575,333,9914,10602,10601,9915,6613,371, + 1358,1198,1227,9461,3468,9900,9900,9919,7796,7773, + 7888,7865,9921,9922,9920,9916,9917,9918,7750,2053, + 2205,2100,7711,2147,2050,7282,9900,9914,10602,10601, + 9915,10272,10273,1439,320,2006,614,8750,8740,9054, + 8747,6776,849,39,39,475,7911,5597,7819,7842, + 410,10199,10197,10205,10201,10202,10200,10203,10204,1653, + 10566,10567,10206,10207,10198,10573,10574,10575,9900,8750, + 8740,9054,8747,6613,849,9900,1786,3264,818,5597, + 100,9900,9919,7796,7773,7888,7865,9921,9922,9920, + 9916,9917,9918,7750,2053,2205,2100,7711,2147,2050, + 7282,9900,9066,9057,9060,9063,1,10219,8057,921, + 2006,1,8771,8759,8763,8767,2658,849,39,39, + 9912,7911,5597,7819,7842,9900,9400,9406,9382,9394, + 9391,9397,9388,9385,9364,9412,9409,9379,9376,9403, + 9373,9370,9367,9900,8750,8740,9054,8747,6613,849, + 9900,9900,9779,818,5597,326,4651,9919,7796,7773, + 7888,7865,9921,9922,9920,9916,9917,9918,7750,2053, + 2205,2100,7711,2147,2050,7282,10371,10372,10373,99, + 4113,9911,152,8057,921,2006,39,8750,8740,9054, + 8747,6776,849,39,39,5119,7911,5597,7819,7842, + 9323,10199,10197,10205,10201,10202,10200,10203,10204,1653, + 10566,10567,10206,10207,10198,10573,10574,10575,430,8949, + 8949,8949,8949,6613,318,8940,8946,8943,13490,9900, + 9900,403,9919,7796,7773,7888,7865,9921,9922,9920, + 9916,9917,9918,7750,2053,2205,2100,7711,2147,2050, + 7282,9841,39,8750,8740,9054,8747,6776,849,9900, + 2006,9326,7911,5597,7819,7842,9904,10199,10197,10205, + 10201,10202,10200,10203,10204,1653,10566,10567,10206,10207, + 10198,10573,10574,10575,9900,318,103,9900,462,6613, + 100,9838,3778,43,9430,9430,9430,9430,9919,7796, + 7773,7888,7865,9921,9922,9920,9916,9917,9918,7750, + 2053,2205,2100,7711,2147,2050,7282,1896,39,8750, + 8740,9054,8747,6776,849,2685,9900,582,7911,5597, + 7819,7842,9323,10199,10197,10205,10201,10202,10200,10203, + 10204,1653,10566,10567,10206,10207,10198,10573,10574,10575, + 660,9275,9275,9275,9275,6613,664,9266,9272,9269, + 9427,2452,9779,9903,9919,7796,7773,7888,7865,9921, + 9922,9920,9916,9917,9918,7750,2053,2205,2100,7711, + 2147,2050,7282,9900,39,8750,8740,9054,8747,6776, + 849,9900,9900,9326,7911,5597,7819,7842,9904,10199, + 10197,10205,10201,10202,10200,10203,10204,1653,10566,10567, + 10206,10207,10198,10573,10574,10575,9900,664,9900,73, + 431,6613,9900,15285,15285,15285,15285,1358,1198,1227, + 9919,7796,7773,7888,7865,9921,9922,9920,9916,9917, + 9918,7750,2053,2205,2100,7711,2147,2050,7282,594, + 39,8750,8740,9054,8747,6776,849,4113,432,145, + 7911,5597,7819,7842,423,10199,10197,10205,10201,10202, + 10200,10203,10204,1653,10566,10567,10206,10207,10198,10573, + 10574,10575,9900,8750,8740,9054,8747,6613,849,9936, + 9870,1495,9442,5597,9900,9903,9919,7796,7773,7888, + 7865,9921,9922,9920,9916,9917,9918,7750,2053,2205, + 2100,7711,2147,2050,7282,39,8750,8740,9054,8747, + 6776,849,9900,4157,2006,7911,5597,7819,7842,1495, + 10199,10197,10205,10201,10202,10200,10203,10204,1653,10566, + 10567,10206,10207,10198,10573,10574,10575,6652,6683,2718, + 9900,1,6613,45,9728,9728,9728,9728,9900,9900, + 9900,9919,7796,7773,7888,7865,9921,9922,9920,9916, + 9917,9918,7750,2053,2205,2100,7711,2147,2050,7282, + 39,8750,8740,9054,8747,2658,849,1711,9900,144, + 7911,5597,7819,7842,9900,10199,10197,10205,10201,10202, + 10200,10203,10204,1653,10566,10567,10206,10207,10198,10573, + 10574,10575,37,9314,9314,9314,9314,6613,835,2, + 9725,9900,9801,9789,9793,9797,9919,7796,7773,7888, + 7865,9921,9922,9920,9916,9917,9918,7750,2053,2205, + 2100,7711,2147,2050,7282,39,8750,8740,9054,8747, + 2658,849,9900,39,2006,7911,5597,7819,7842,9938, + 10199,10197,10205,10201,10202,10200,10203,10204,1653,10566, + 10567,10206,10207,10198,10573,10574,10575,6652,6683,2185, + 146,9900,6613,9900,16686,16577,16591,16639,9936,1996, + 37,9919,7796,7773,7888,7865,9921,9922,9920,9916, + 9917,9918,7750,2053,2205,2100,7711,2147,2050,7282, + 39,8750,8740,9054,8747,6776,849,9900,48,2006, + 7911,5597,7819,7842,10602,10199,10197,10205,10201,10202, + 10200,10203,10204,1653,10566,10567,10206,10207,10198,10573, + 10574,10575,9900,48,1,148,48,6613,9900,10601, + 9936,6454,9915,1537,9900,9900,9919,7796,7773,7888, + 7865,9921,9922,9920,9916,9917,9918,7750,2053,2205, + 2100,7711,2147,2050,7282,39,8750,8740,9054,8747, + 6029,849,6427,6400,2006,7911,5597,7819,7842,10602, + 10199,10197,10205,10201,10202,10200,10203,10204,1653,10566, + 10567,10206,10207,10198,10573,10574,10575,9900,9900,48, + 147,874,6613,39,10601,9914,6454,9915,9900,9938, + 9900,9919,7796,7773,7888,7865,9921,9922,9920,9916, + 9917,9918,7750,2053,2205,2100,7711,2147,2050,7282, + 39,8750,8740,9054,8747,6971,849,6427,6400,1610, + 7911,5597,7819,7842,2149,10199,10197,10205,10201,10202, + 10200,10203,10204,1653,10566,10567,10206,10207,10198,10573, + 10574,10575,9900,1,313,7644,9900,6613,103,9891, + 9914,6454,9900,9838,9900,9900,9919,7796,7773,7888, + 7865,9921,9922,9920,9916,9917,9918,7750,2053,2205, + 2100,7711,2147,2050,7282,39,8750,8740,9054,8747, + 8336,849,6427,6400,142,7911,5597,7819,7842,877, + 10199,10197,10205,10201,10202,10200,10203,10204,1653,10566, + 10567,10206,10207,10198,10573,10574,10575,9900,9900,9900, + 877,9900,6613,7230,10371,10372,10373,9900,9900,9900, + 9900,9919,7796,7773,7888,7865,9921,9922,9920,9916, + 9917,9918,7750,2053,2205,2100,7711,2147,2050,7282, + 39,8750,8740,9054,8747,8363,849,9900,9900,9900, + 7911,5597,7819,7842,544,10199,10197,10205,10201,10202, + 10200,10203,10204,1653,10566,10567,10206,10207,10198,10573, + 10574,10575,6652,6683,9900,9900,9900,6613,9900,9900, + 9900,9900,9900,9900,9900,9900,9919,7796,7773,7888, + 7865,9921,9922,9920,9916,9917,9918,7750,2053,2205, + 2100,7711,2147,2050,7282,39,8750,8740,9054,8747, + 6776,849,9900,9900,9900,7911,5597,7819,7842,542, + 10199,10197,10205,10201,10202,10200,10203,10204,1653,10566, + 10567,10206,10207,10198,10573,10574,10575,9900,9900,9900, + 7953,9900,6613,9900,9900,9900,9900,9900,9900,9900, + 9900,9919,7796,7773,7888,7865,9921,9922,9920,9916, + 9917,9918,7750,2053,2205,2100,7711,2147,2050,7282, + 39,8750,8740,9054,8747,8433,849,9900,9900,9900, + 7911,5597,7819,7842,9900,10199,10197,10205,10201,10202, + 10200,10203,10204,1653,10566,10567,10206,10207,10198,10573, + 10574,10575,9900,9900,9900,8273,9900,6613,9900,9900, + 9900,9900,9900,9900,9900,9900,9919,7796,7773,7888, + 7865,9921,9922,9920,9916,9917,9918,7750,2053,2205, + 2100,7711,2147,2050,7282,39,8750,8740,9054,8747, + 2658,849,9900,9900,9900,7911,5597,7819,7842,456, + 10199,10197,10205,10201,10202,10200,10203,10204,1653,10566, + 10567,10206,10207,10198,10573,10574,10575,9900,3894,9900, + 9900,9900,6613,9900,9900,9900,9900,9900,9900,9900, + 9900,9919,7796,7773,7888,7865,9921,9922,9920,9916, + 9917,9918,7750,2053,2205,2100,7711,2147,2050,7282, + 39,8750,8740,9054,8747,2658,849,9900,9900,9900, + 7911,5597,7819,7842,9900,10199,10197,10205,10201,10202, + 10200,10203,10204,1653,10566,10567,10206,10207,10198,10573, + 10574,10575,9900,9900,9900,3941,9900,6613,9900,9900, + 9900,9900,9900,9900,9900,9900,9919,7796,7773,7888, + 7865,9921,9922,9920,9916,9917,9918,7750,2053,2205, + 2100,7711,2147,2050,7282,39,8750,8740,9054,8747, + 6776,849,9900,9900,1,7911,5597,7819,7842,9900, + 10199,10197,10205,10201,10202,10200,10203,10204,1653,10566, + 10567,10206,10207,10198,10573,10574,10575,9458,3649,9900, + 9900,9900,6613,9900,9900,9900,9900,9900,9900,9900, + 9900,9919,7796,7773,7888,7865,9921,9922,9920,9916, + 9917,9918,7750,2053,2205,2100,7711,2147,2050,7282, + 9900,8750,8740,8743,8747,9900,9938,1358,1198,1227, + 9461,3468,9900,9900,9900,10199,10197,10205,10201,10202, + 10200,10203,10204,1103,10566,10567,10206,10207,10198,10573, + 10574,10575,10272,10273,1439,10190,10194,4122,10188,10195, + 10191,10167,10193,10192,10189,10168,9900,9900,9900,9900, + 9900,9900,9900,5363,9900,9900,275,9226,9213,9217, + 9222,1774,9230,9129,9123,9126,10334,9900,4893,10335, + 10336,9198,9204,9180,9192,9189,9195,9186,9183,1103, + 9210,9207,9177,9174,9201,9171,9168,9165,9138,9135, + 9132,9156,9144,4122,9162,9141,9153,9120,9147,9150, + 9159,9117,9900,9900,9900,9900,9900,9900,9900,9900, + 9900,9900,9900,8750,8740,9054,8747,9900,9938,1358, + 1198,1227,10334,9900,4893,10335,10336,10199,10197,10205, + 10201,10202,10200,10203,10204,1103,10566,10567,10206,10207, + 10198,10573,10574,10575,10272,10273,1439,10190,10194,4122, + 10188,10195,10191,10167,10193,10192,10189,10168,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,275,9226, + 9213,9454,9222,9900,9230,9129,9123,9126,10334,9900, + 4893,10335,10336,9198,9204,9180,9192,9189,9195,9186, + 9183,1103,9210,9207,9177,9174,9201,9171,9168,9165, + 9138,9135,9132,9156,9144,4122,9162,9141,9153,9120, + 9147,9150,9159,9117,9900,9900,9900,9914,10602,10601, + 9915,9900,9900,9900,9900,9914,10602,10601,9915,9900, + 9912,1358,1198,1227,10334,9900,4893,10335,10336,10199, + 10197,10205,10201,10202,10200,10203,10204,1299,10566,10567, + 10206,10207,10198,10573,10574,10575,10272,10273,1439,10190, + 10194,9900,10188,10195,10191,10167,10193,10192,10189,10168, + 139,9900,9900,9900,9900,9906,9900,9900,9900,9900, + 275,9722,9713,9716,9719,9900,9910,9129,9123,9126, + 10334,9911,4893,10335,10336,9198,9204,9180,9192,9189, + 9195,9186,9183,1299,9210,9207,9177,9174,9201,9171, + 9168,9165,9138,9135,9132,9156,9144,9900,9162,9141, + 9153,9120,9147,9150,9159,9117,1,9900,2903,9900, + 649,2157,546,9900,1345,9900,10405,9909,10399,10403, + 9905,9906,9900,9908,9611,5871,10334,9900,4893,10335, + 10336,9900,9900,9900,9900,638,2608,1,8771,8759, + 8763,8767,860,8756,8790,8784,8787,818,5597,9731, + 9900,344,9900,10397,10398,10428,10429,9900,9900,9900, + 9900,9900,9900,10406,9900,788,781,2558,2508,2458, + 2408,2358,2308,2258,2208,2158,2106,10408,793,10430, + 9900,9900,1395,3735,10409,9615,9905,9900,2302,2339, + 9900,9900,10407,9900,10419,10418,9907,9900,1728,9900, + 9900,9906,344,1,9900,9900,9900,9900,10424,10425, + 9735,10431,10422,10423,10402,10404,10426,398,9900,10400, + 10401,10427,9900,10412,10413,10414,10410,10411,10420,10421, + 10416,10415,10417,9900,9900,10432,32,424,424,424, + 424,9638,424,424,424,424,424,424,9638,9638, + 9638,637,648,648,648,648,648,648,648,648, + 648,648,648,9767,9767,9767,9905,9900,424,424, + 424,424,424,9900,424,424,424,424,424,424, + 424,424,398,648,648,648,648,648,9900,648, + 648,648,648,648,648,648,648,1,9900,9900, + 9900,9638,5435,1,9900,9900,9900,398,9638,9900, + 9900,9910,1,9900,9900,9638,9767,194,9900,9900, + 9900,9900,4003,648,9900,9900,196,1,1,9900, + 9767,37,10602,10602,10602,10602,10602,10602,10602,10602, + 10602,224,590,10602,10602,37,10601,10601,10601,10601, + 10601,10601,10601,10601,10601,9900,9900,10601,10601,9900, + 9900,9900,9909,10602,10602,10602,10602,10602,9900,10602, + 10602,10602,10602,10602,10602,10602,10602,10601,10601,10601, + 10601,10601,194,10601,10601,10601,10601,10601,10601,10601, + 10601,196,224,37,9915,9915,9915,9915,9915,9915, + 9915,9915,9915,10602,10602,9915,9915,590,9900,10602, + 1,8771,8759,8763,8767,860,8756,10601,10601,9900, + 818,5597,9900,10601,9900,9915,9915,9915,9915,9915, + 9900,9915,9915,9915,9915,9915,9915,9915,9915,9900, + 37,9914,9914,9914,9914,9914,9914,9914,9914,9914, + 9900,9900,9914,9914,9900,1,9608,9608,9608,9608, + 9900,9764,8790,8784,8787,9915,9915,366,366,398, + 9900,9915,9914,9914,9914,9914,9914,1,9914,9914, + 9914,9914,9914,9914,9914,9914,9900,695,9900,9347, + 9900,9906,9900,9900,9344,9338,9341,9900,9900,9900, + 159,9900,10583,10586,10582,10588,10589,10587,10584,10585, + 9900,9910,9914,9914,9900,9900,9900,9900,9914,10272, + 10273,1439,10190,10194,9900,10188,10195,10191,10167,10193, + 10192,10189,10168,694,398,9524,9900,9900,9900,9900, + 9521,9515,9518,9900,9900,9900,9900,9900,10583,10586, + 10582,10588,10589,10587,10584,10585,9905,9900,9900,398, + 9900,9900,9909,9900,9900,10272,10273,1439,10190,10194, + 6096,10188,10195,10191,10167,10193,10192,10189,10168,1, + 8771,8759,8763,8767,6481,8756,3303,9900,9900,818, + 5597,9900,9900,402,1,8771,8759,8763,8767,860, + 8756,8790,8784,8787,818,5597,9900,9900,9900,9900, + 9900,9900,9900,9900,9900,4307,1999,3217,3189,3103, + 3075,2989,2961,2875,2847,2761,2733,1,8771,8759, + 8763,8767,860,8756,8790,8784,8787,818,5597,1, + 8771,8759,8763,8767,8753,8756,126,9900,128,8778, + 8775,1613,402,9910,127,9900,9900,402,402,75, + 9900,9900,9900,9900,9293,1796,1,8771,8759,8763, + 8767,6481,8756,9900,9906,10581,818,5597,3785,9900, + 9629,9900,9900,402,9900,9900,9900,9900,10583,10586, + 10582,10588,10589,10587,10584,10585,1,8771,8759,8763, + 8767,6481,8756,9900,9909,9900,818,5597,9284,9281, + 9900,3785,9900,9900,9900,636,9900,6326,9900,6326, + 9876,9884,9880,87,9320,6326,9662,9888,9900,9739, + 9906,9296,9665,1956,9900,9900,9900,9747,1613,9905, + 9900,9900,9900,9900,9900,9632,9900,9900,6251,5909, + 6251,5909,9900,9900,9900,9900,6251,5909,9900,9900, + 9900,9900,9900,9900,9900,9900,9900,9900,1613,9900, + 9900,9900,9900,4255,1256,4255,1256,9900,9888,9900, + 9900,4255,1256,9900,9900,9900,9888,9900,9287,8396, + 9743,9900,9900,9290,9900,9905,9900,9900,9751 }; }; public final static char termAction[] = TermAction.termAction; @@ -2804,73 +3252,78 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface Asb { public final static char asb[] = {0, - 1462,1,1569,196,1426,264,888,1504,453,453, - 453,1378,27,1039,1461,1111,196,204,1230,1569, - 525,120,1569,1569,1569,96,136,261,136,1036, - 136,1312,136,136,204,205,136,1112,1323,269, - 1504,196,518,136,136,848,205,136,205,1569, - 267,398,398,1019,398,274,261,21,332,21, - 1609,1111,767,1055,199,11,11,196,948,205, - 1231,828,1152,835,1374,588,393,1038,448,1036, - 257,204,1312,455,205,205,449,930,1112,1112, - 1112,1112,1112,1112,1112,1112,1112,1112,520,1112, - 1165,1569,267,267,267,267,204,1569,136,844, - 844,768,767,196,196,205,1007,662,455,455, - 136,888,390,662,136,136,267,136,205,324, - 1265,410,398,398,397,397,261,204,582,673, - 1165,725,730,727,734,732,741,739,743,742, - 744,527,745,196,1111,1185,196,136,205,40, - 948,948,205,1231,676,833,675,1571,1605,1374, - 1373,662,393,205,20,1436,839,449,261,665, - 205,455,449,205,320,1165,1165,1165,1520,887, - 324,136,662,662,662,1071,648,648,1091,1091, - 888,888,888,888,205,537,30,30,537,1111, - 844,261,204,320,136,136,455,455,199,114, - 390,390,1231,1265,410,397,397,397,205,662, - 1111,662,1112,1112,1112,1112,1112,1112,1112,1112, - 1112,1112,1112,1112,1112,1112,1112,1112,1112,1112, - 1112,1112,1112,1111,1111,1111,1111,1111,1111,1111, - 1111,1111,1111,1111,776,1112,662,670,261,196, - 1515,1108,1308,390,44,758,948,768,768,828, - 768,93,588,1571,1571,661,660,771,670,205, - 393,826,1039,267,1229,1444,393,20,840,844, - 20,844,449,665,665,205,1019,1018,205,930, - 205,662,662,662,390,887,1111,136,1072,199, - 1261,1251,1250,1331,142,142,204,520,1112,662, - 662,1019,1019,1019,1019,449,662,1230,1232,1230, - 662,390,261,932,205,1569,1518,136,1019,1019, - 136,662,1255,1238,1254,1018,267,3,3,670, - 670,397,205,768,1186,727,727,725,725,725, - 732,732,732,732,732,732,730,730,739,734, - 734,742,741,743,826,826,744,670,1185,1308, - 390,339,39,208,662,1605,662,536,662,662, - 324,1446,844,844,844,844,205,665,669,1031, - 669,1091,320,136,136,136,1112,888,136,136, - 662,1071,826,1112,826,768,1070,1569,1569,1569, - 1072,1569,205,957,768,768,205,261,648,662, - 1263,1265,205,324,146,1165,1569,1569,1569,1569, - 205,205,205,1232,324,936,204,205,537,136, - 136,938,1111,1252,1252,1259,199,680,410,398, - 410,1017,1017,670,768,1111,1111,1185,1111,1111, - 390,44,662,661,1231,767,1112,826,949,1049, - 764,1446,844,844,1021,669,670,1112,205,662, - 136,199,1061,1072,826,1162,1072,1091,1091,1089, - 1070,1091,768,768,955,1069,662,1265,449,1231, - 662,1111,1111,1111,1111,1569,1569,930,205,1231, - 936,662,136,590,938,1111,1111,1263,1238,410, - 888,888,669,390,390,536,768,1446,1112,1112, - 764,764,1446,1446,932,925,1022,205,670,136, - 136,136,1111,136,1072,1112,1072,662,196,1091, - 662,1089,1504,1569,662,936,1010,662,205,600, - 662,662,662,662,537,537,1236,136,930,1062, - 1569,136,941,1018,136,210,764,764,1021,205, - 204,204,205,136,537,1112,390,1072,955,1072, - 768,1504,1111,1072,1069,1010,1010,179,662,662, - 1236,680,941,723,136,136,205,205,205,136, - 662,390,1111,1070,537,768,662,1013,1010,662, - 662,193,1569,3,205,205,1072,662,768,1013, - 1013,261,261,195,1266,1017,1072,1013,661,1230, - 888 + 1459,4,1566,321,1448,1,363,1501,707,707, + 707,1400,67,878,1458,994,321,329,1263,1566, + 649,245,1566,1566,1566,221,261,156,261,875, + 261,1103,261,261,329,330,261,995,1345,100, + 1501,321,642,261,261,1114,330,261,330,1566, + 930,164,164,920,164,651,156,80,581,80, + 782,994,833,938,324,70,70,321,898,330, + 1264,1053,1035,847,1396,579,159,877,8,875, + 152,329,1103,335,330,330,703,219,995,995, + 995,995,995,995,995,995,995,995,644,995, + 1198,1566,930,930,930,930,329,1566,261,861, + 861,834,833,321,321,330,521,1397,335,335, + 261,363,468,1397,261,261,930,261,330,701, + 1298,176,164,164,163,163,156,329,573,784, + 1198,791,796,793,800,798,807,805,809,808, + 810,588,811,321,994,1218,321,261,330,525, + 898,898,330,1264,787,845,786,1585,86,1396, + 1395,1397,159,330,79,865,856,703,156,837, + 330,335,703,330,697,1198,1198,1198,1517,362, + 701,261,1397,1397,1397,954,1608,1608,974,974, + 363,363,363,363,330,598,6,6,598,994, + 861,156,329,697,261,261,335,335,324,239, + 468,468,1264,1298,176,163,163,163,330,1397, + 994,1397,995,995,995,995,995,995,995,995, + 995,995,995,995,995,995,995,995,995,995, + 995,995,995,994,994,994,994,994,994,994, + 994,994,994,994,15,995,1397,842,156,321, + 1193,991,403,468,529,824,898,834,834,1053, + 834,1514,579,1585,1585,1621,1620,851,842,330, + 159,65,878,930,1262,1568,159,79,857,861, + 79,861,703,837,837,330,920,365,1183,1198, + 759,757,764,762,766,765,767,768,781,330, + 219,330,1397,1397,1397,468,362,994,261,955, + 324,1294,1284,1283,1353,267,267,329,644,995, + 1397,1397,920,920,920,920,703,1397,1263,1265, + 1263,1397,468,156,907,330,1566,1196,261,920, + 920,261,1397,1288,1271,1287,781,930,92,92, + 842,842,163,330,834,1219,793,793,791,791, + 791,798,798,798,798,798,798,796,796,805, + 800,800,808,807,809,65,65,810,842,1218, + 403,468,417,524,333,1397,86,1397,597,1397, + 1397,701,1570,861,861,861,861,330,837,841, + 922,841,1154,1170,1170,1170,1170,1149,329,927, + 995,995,995,995,995,995,995,995,995,994, + 994,994,994,994,994,994,994,994,994,994, + 994,995,974,697,261,261,261,995,363,261, + 261,1397,954,65,995,65,834,953,1566,1566, + 1566,955,1566,330,471,834,834,330,156,1608, + 1397,1296,1298,330,701,271,1198,1566,1566,1566, + 1566,330,330,330,1265,701,873,329,330,598, + 261,261,888,994,1285,1285,1292,324,1058,176, + 164,176,780,780,842,834,994,994,1218,994, + 994,468,529,1397,1621,1264,833,995,65,899, + 932,830,1570,861,861,407,841,842,995,330, + 330,995,757,757,757,762,759,759,765,764, + 766,65,767,1397,261,324,944,955,65,1045, + 955,974,974,972,953,974,834,834,905,952, + 1397,1298,703,1264,1397,994,994,994,994,1566, + 1566,219,330,1264,873,1397,261,709,888,994, + 994,1296,1271,176,363,363,841,468,468,597, + 834,1570,995,995,830,830,1570,1570,907,214, + 408,330,842,703,1048,994,261,261,261,994, + 261,955,995,955,1397,321,974,1397,972,1501, + 1566,1397,873,911,1397,330,719,1397,1397,1397, + 1397,598,598,1269,261,219,945,1566,261,891, + 781,261,105,830,830,407,330,329,329,330, + 330,261,598,995,468,955,905,955,834,1501, + 994,955,952,911,911,304,1397,1397,1269,1058, + 891,1343,261,261,330,330,330,261,1397,468, + 994,953,598,834,1397,914,911,1397,1397,318, + 1566,92,330,330,955,1397,834,914,914,156, + 156,320,1299,780,955,914,1621,1263,363 }; }; public final static char asb[] = Asb.asb; @@ -2878,167 +3331,169 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface Asr { public final static char asr[] = {0, - 135,0,84,86,79,1,4,3,2,0, - 85,5,84,102,86,79,80,51,78,83, - 12,72,8,9,7,0,46,67,0,11, - 6,67,10,1,4,3,2,0,74,35, - 33,34,36,81,82,104,12,49,50,14, - 47,48,10,58,62,65,32,5,6,11, - 55,56,57,46,54,52,53,24,25,16, - 28,15,20,18,19,21,23,17,26,27, - 29,30,31,22,60,63,61,59,64,4, - 3,2,1,13,0,59,81,60,52,82, - 61,62,63,53,74,54,64,55,56,57, - 46,58,65,32,22,68,66,69,70,16, - 28,15,20,18,19,21,23,17,26,27, - 29,30,31,24,25,85,83,102,104,87, - 72,134,118,49,50,105,103,47,48,106, - 107,100,101,71,84,108,109,110,111,112, - 113,114,115,119,86,120,121,122,123,124, - 125,126,127,128,129,79,116,117,35,38, - 33,39,40,41,42,43,44,36,45,37, - 34,51,12,80,78,11,5,10,14,13, - 8,9,7,6,4,3,2,1,0,81, - 82,74,49,50,14,13,47,48,10,58, - 62,65,32,5,6,11,55,56,57,46, - 54,52,53,24,25,16,28,15,20,18, - 19,21,23,17,26,27,29,30,31,22, - 60,63,61,59,64,87,1,4,3,2, - 72,12,0,5,34,0,71,0,12,83, - 72,85,0,24,25,35,38,15,16,66, - 33,26,68,39,94,40,17,41,42,18, - 19,43,73,44,20,21,36,69,45,22, - 70,23,75,37,27,34,28,5,14,6, - 51,32,29,30,31,76,77,72,12,13, - 8,9,7,11,10,67,1,4,3,2, - 0,7,12,72,8,9,86,0,81,82, - 5,22,60,63,61,59,64,16,28,15, - 20,18,19,21,23,17,26,27,29,30, - 31,24,25,55,56,57,46,54,52,53, - 10,11,6,49,50,14,13,47,48,58, - 62,65,32,74,36,1,4,3,2,104, - 12,0,131,132,133,83,87,11,12,5, - 14,13,10,51,77,73,94,75,76,24, - 25,35,7,38,15,16,66,33,26,68, - 39,40,17,41,42,18,19,43,44,20, - 21,36,69,45,22,70,23,37,27,34, - 28,32,8,9,29,30,31,6,1,4, - 3,2,67,0,24,25,35,7,38,15, - 16,66,33,59,26,60,68,39,40,52, - 17,41,42,18,19,43,44,61,20,21, - 62,36,63,69,53,74,54,45,64,22, - 70,23,37,27,34,28,55,56,57,46, - 5,49,50,14,13,47,48,58,84,6, - 32,65,8,9,29,30,31,11,10,1, - 4,2,82,81,3,0,7,84,83,102, - 104,87,51,8,9,79,12,80,24,25, - 15,16,59,81,26,60,17,18,19,82, - 11,61,20,21,62,63,74,64,22,23, - 27,28,1,4,5,49,50,14,13,47, - 48,10,58,6,32,65,3,2,29,30, - 31,55,56,57,54,52,53,46,0,74, - 85,134,118,49,50,83,102,104,87,39, - 40,41,42,43,11,44,36,45,37,34, - 33,38,10,35,105,103,47,48,106,107, - 100,101,71,108,109,110,111,112,113,114, - 115,119,86,120,121,122,123,124,125,126, - 127,128,129,116,117,51,72,84,7,1, - 4,14,13,6,8,9,3,2,78,5, - 79,80,12,0,1,4,3,2,79,12, - 87,0,104,51,79,80,12,83,0,24, - 25,35,7,38,15,16,33,26,68,39, - 40,17,41,42,18,19,43,44,20,21, - 36,69,45,22,70,23,37,27,34,28, - 1,4,6,32,8,9,3,2,29,30, - 31,102,66,0,105,103,13,106,107,47, - 48,101,100,71,108,109,116,117,110,111, - 14,112,113,114,84,80,86,120,121,122, - 123,124,125,126,127,128,129,83,102,104, - 87,115,119,8,9,7,79,51,12,0, - 80,12,1,46,0,24,25,15,16,59, - 81,26,60,52,17,18,19,82,11,61, - 20,21,62,63,53,74,54,64,22,23, - 27,28,55,56,57,46,1,4,5,49, - 50,14,13,47,48,10,58,6,32,65, - 3,2,29,30,31,83,0,12,83,80, - 46,0,83,79,80,12,5,0,6,8, - 9,7,71,12,83,72,0,82,81,47, - 48,13,106,107,112,14,113,10,58,86, - 71,84,123,124,120,121,122,128,127,129, - 101,100,125,126,110,111,108,109,114,115, - 49,50,79,103,118,78,5,32,22,68, + 5,33,0,135,0,11,10,67,1,4, + 3,2,6,0,24,25,15,16,58,82, + 26,59,51,17,18,19,83,11,60,20, + 21,61,62,52,74,53,63,23,22,27, + 28,54,55,56,46,1,4,5,49,50, + 13,12,47,48,10,57,6,37,64,3, + 2,29,30,31,84,0,46,67,0,85, + 5,78,104,86,73,79,65,72,84,14, + 75,8,9,7,0,14,73,79,1,32, + 0,78,86,73,1,4,3,2,0,14, + 84,75,85,0,82,83,74,49,50,13, + 12,47,48,10,57,61,64,37,5,6, + 11,54,55,56,46,53,51,52,24,25, + 16,28,15,20,18,19,21,22,17,26, + 27,29,30,31,23,59,62,60,58,63, + 87,1,4,3,2,75,14,0,131,132, + 133,84,87,11,14,5,13,12,10,65, + 81,76,96,77,80,24,25,34,7,38, + 15,16,66,32,26,68,39,40,17,41, + 42,18,19,43,44,20,21,35,69,67, + 45,23,70,22,27,33,28,37,8,9, + 29,30,31,1,4,3,2,36,6,0, + 58,82,59,51,83,60,61,62,52,74, + 53,63,54,55,56,46,57,64,37,23, + 68,66,69,70,16,28,15,20,18,19, + 21,22,17,26,27,29,30,31,24,25, + 85,84,104,111,87,75,134,129,49,50, + 112,105,47,48,113,114,88,89,71,78, + 102,103,106,107,108,109,110,115,116,86, + 117,118,119,120,121,122,123,124,125,126, + 73,127,128,34,38,32,39,40,41,42, + 43,44,35,45,36,33,65,14,79,72, + 11,5,10,13,12,8,9,7,6,4, + 3,2,1,0,58,82,59,51,83,11, + 60,61,62,52,74,53,63,54,55,56, + 46,49,50,13,12,47,48,10,57,78, + 64,5,37,6,23,1,4,3,2,68, 66,69,70,24,25,16,28,15,20,18, - 19,21,23,17,26,27,29,30,31,38, - 44,36,40,43,42,39,33,34,35,7, - 9,8,41,45,1,4,3,2,37,6, - 0,12,72,79,0,130,0,35,33,34, - 74,85,84,83,102,80,72,5,7,12, - 79,51,8,9,86,0,24,25,15,16, - 59,81,26,60,52,17,18,19,82,11, - 61,20,21,62,63,53,74,54,64,22, - 23,27,28,55,56,57,46,1,4,5, - 49,50,47,48,10,58,6,32,65,3, - 2,29,30,31,51,12,13,14,0,35, - 33,34,74,12,102,80,86,79,84,0, - 37,1,4,6,3,2,131,132,133,0, - 12,79,87,86,0,6,67,83,12,72, - 8,9,7,1,4,3,2,0,83,7, - 78,8,9,71,12,79,51,86,5,0, - 80,94,131,132,133,67,83,135,130,136, - 87,77,85,76,75,73,89,91,98,96, - 88,93,95,97,99,72,90,92,51,12, - 68,66,69,70,38,44,36,40,43,42, - 37,39,7,9,8,41,45,35,33,34, - 74,81,82,22,60,63,61,59,64,5, - 28,26,27,29,30,31,24,25,55,56, - 57,46,54,52,53,10,11,6,49,50, - 14,13,47,48,58,62,65,32,1,4, - 3,2,17,15,21,23,16,20,18,19, - 0,83,102,0,35,7,38,66,33,68, - 39,40,41,42,43,44,36,69,45,70, - 37,34,8,9,74,81,82,49,50,14, - 13,47,48,58,62,65,32,5,55,56, - 57,46,54,52,53,24,25,16,28,15, - 20,18,19,21,23,17,26,27,29,30, - 31,60,63,61,59,64,72,12,22,6, - 11,1,4,3,2,10,0,7,14,13, - 8,9,11,10,6,1,4,3,2,5, - 78,84,86,79,12,80,102,0,10,11, - 5,78,13,14,102,24,25,7,38,15, - 16,66,26,68,39,40,17,41,42,18, - 19,43,44,20,21,36,69,45,22,70, - 23,37,27,28,1,4,6,32,8,9, - 3,2,29,30,31,80,12,33,34,35, - 0,6,12,72,8,9,7,1,4,3, - 2,0,84,79,32,22,68,66,69,70, - 24,25,35,7,38,15,16,33,26,39, - 40,17,41,42,18,19,43,11,44,20, - 21,36,45,23,37,27,34,28,4,78, - 14,13,10,6,51,8,9,3,2,29, - 30,31,5,80,12,1,0,33,26,68, - 39,17,41,18,19,43,44,20,21,69, - 45,70,23,37,27,34,28,66,16,15, - 32,38,35,25,24,29,30,31,12,5, - 14,13,51,76,75,94,40,36,42,77, - 71,8,9,7,67,11,1,4,10,6, - 3,2,22,73,0,6,12,83,72,8, - 9,7,0,51,12,5,11,10,83,14, - 13,6,1,4,3,2,8,9,7,0, - 87,24,25,35,38,15,16,66,33,26, - 68,39,17,41,18,19,43,44,20,21, - 69,45,22,70,23,37,27,34,28,32, - 29,30,31,135,77,73,40,36,42,94, - 75,76,67,12,14,51,10,11,1,4, - 3,2,6,5,8,9,7,13,0,81, - 82,49,50,14,13,47,48,10,58,62, - 65,32,6,11,55,56,57,46,54,52, - 53,24,25,16,28,15,20,18,19,21, - 23,17,26,27,29,30,31,22,60,63, - 61,59,64,78,1,4,3,2,5,0, - 11,4,78,5,14,13,10,84,6,3, - 17,15,21,23,16,20,18,19,38,44, - 36,40,43,42,37,39,34,35,41,45, - 2,7,9,8,12,80,1,33,79,0 + 19,21,22,17,26,27,29,30,31,38, + 44,35,40,43,42,36,39,7,9,8, + 41,45,32,33,34,0,36,1,4,6, + 3,2,131,132,133,0,82,83,5,23, + 59,62,60,58,63,16,28,15,20,18, + 19,21,22,17,26,27,29,30,31,24, + 25,54,55,56,46,53,51,52,10,11, + 6,49,50,13,12,47,48,57,61,64, + 37,74,35,1,4,3,2,111,14,0, + 24,25,15,16,58,82,26,59,51,17, + 18,19,83,11,60,20,21,61,62,52, + 74,53,63,23,22,27,28,54,55,56, + 46,1,4,5,49,50,47,48,10,57, + 6,37,64,3,2,29,30,31,65,14, + 12,13,0,74,34,32,33,35,82,83, + 111,14,49,50,13,12,47,48,10,57, + 61,64,37,5,6,11,24,25,16,28, + 15,20,18,19,21,22,17,26,27,29, + 30,31,23,59,62,60,58,63,1,4, + 3,2,54,55,56,53,51,52,46,0, + 7,14,75,8,9,86,0,7,78,84, + 104,111,87,65,8,9,73,14,79,24, + 25,15,16,58,26,59,51,17,18,19, + 60,20,21,61,62,52,74,53,63,23, + 22,27,28,54,55,56,46,5,49,50, + 13,12,47,48,57,6,37,64,29,30, + 31,11,10,1,4,2,83,82,3,0, + 24,25,34,38,15,16,66,32,26,68, + 39,96,40,17,41,42,18,19,43,76, + 44,20,21,35,69,45,23,70,22,77, + 36,27,33,28,5,13,6,65,37,29, + 30,31,80,81,75,14,12,8,9,7, + 11,10,1,4,3,2,67,0,74,85, + 134,129,49,50,84,104,111,87,39,40, + 41,42,43,11,44,35,45,36,33,1, + 4,72,5,32,38,10,6,7,34,8, + 9,3,2,112,105,47,48,113,114,127, + 128,12,79,65,75,14,89,88,71,102, + 103,106,107,13,108,109,110,115,116,117, + 118,119,120,121,122,123,124,125,126,86, + 78,73,0,111,65,73,79,14,84,0, + 112,105,12,113,114,47,48,89,88,71, + 102,103,127,128,106,107,13,108,109,110, + 78,79,86,117,118,119,120,121,122,123, + 124,125,126,84,104,111,87,115,116,8, + 9,7,73,65,14,0,1,4,3,2, + 73,14,87,0,84,73,79,14,5,0, + 79,14,1,46,0,6,8,9,7,71, + 14,84,75,0,6,14,84,75,8,9, + 7,0,130,0,6,67,84,14,75,8, + 9,7,1,4,3,2,0,34,32,33, + 74,85,78,84,104,79,75,5,7,14, + 73,65,8,9,86,0,14,75,73,0, + 34,32,33,74,14,104,86,73,79,78, + 0,14,73,87,86,0,78,102,103,71, + 0,84,7,72,8,9,71,14,73,65, + 86,5,0,79,96,131,132,133,67,84, + 135,130,136,87,81,85,80,77,76,91, + 93,100,98,90,95,97,99,101,75,92, + 94,65,14,68,66,69,70,38,44,35, + 40,43,42,36,39,7,9,8,41,45, + 34,32,33,74,82,83,23,59,62,60, + 58,63,5,28,26,27,29,30,31,24, + 25,54,55,56,46,53,51,52,10,11, + 6,49,50,13,12,47,48,57,61,64, + 37,1,4,3,2,17,15,21,22,16, + 20,18,19,0,84,104,0,79,14,89, + 88,0,14,84,79,46,0,24,25,34, + 7,38,15,16,66,32,26,68,39,40, + 17,41,42,18,19,43,44,20,21,35, + 69,45,23,70,22,36,27,33,28,1, + 4,6,37,8,9,3,2,29,30,31, + 104,0,6,14,75,8,9,7,1,4, + 3,2,0,37,83,82,47,48,113,114, + 108,109,10,57,86,71,120,121,117,118, + 119,125,124,126,89,88,122,123,106,107, + 102,103,110,115,49,50,105,129,23,68, + 66,69,70,16,28,15,20,18,19,21, + 22,17,26,27,29,30,31,24,25,38, + 44,35,40,43,42,36,39,32,33,34, + 41,45,78,73,1,4,13,6,3,2, + 5,72,8,9,7,12,0,34,7,38, + 66,32,68,39,40,41,42,43,44,35, + 69,45,70,36,33,8,9,74,82,83, + 49,50,13,12,47,48,57,61,64,37, + 5,54,55,56,46,53,51,52,24,25, + 16,28,15,20,18,19,21,22,17,26, + 27,29,30,31,59,62,60,58,63,75, + 14,23,6,11,1,4,3,2,10,0, + 7,13,12,8,9,11,10,6,1,4, + 3,2,5,72,78,86,73,14,79,104, + 0,10,11,5,72,12,13,104,24,25, + 34,7,38,15,16,32,26,68,39,40, + 17,41,42,18,19,43,44,20,21,35, + 69,45,23,70,22,36,27,33,28,1, + 4,6,37,8,9,3,2,29,30,31, + 79,14,66,0,78,73,37,23,68,66, + 69,70,24,25,34,7,38,15,16,32, + 26,39,40,17,41,42,18,19,43,11, + 44,20,21,35,45,22,36,27,33,28, + 4,72,13,12,10,6,65,8,9,3, + 2,29,30,31,5,1,79,14,0,32, + 26,68,39,17,41,18,19,43,44,20, + 21,69,45,70,22,36,27,33,28,66, + 16,15,37,38,34,25,24,29,30,31, + 14,5,13,12,65,80,77,96,40,35, + 42,81,71,8,9,7,67,11,1,4, + 10,6,3,2,23,76,0,87,24,25, + 34,38,15,16,66,32,26,68,39,17, + 41,18,19,43,44,20,21,69,45,23, + 70,22,36,27,33,28,37,29,30,31, + 135,81,76,40,35,42,96,77,80,67, + 7,14,13,65,8,9,10,11,4,3, + 2,6,5,1,12,0,82,83,49,50, + 13,12,47,48,10,57,61,64,37,6, + 11,54,55,56,46,53,51,52,24,25, + 16,28,15,20,18,19,21,22,17,26, + 27,29,30,31,23,59,62,60,58,63, + 72,1,4,3,2,5,0,65,14,5, + 11,10,84,13,12,6,1,4,3,2, + 8,9,7,0,11,10,17,15,21,22, + 16,20,18,19,38,44,35,40,43,42, + 36,39,32,33,34,41,45,78,7,1, + 4,13,12,6,8,9,3,2,72,5, + 79,14,73,0 }; }; public final static char asr[] = Asr.asr; @@ -3046,73 +3501,78 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface Nasb { public final static char nasb[] = {0, - 255,13,13,51,25,104,5,293,13,13, - 13,283,13,232,283,196,161,253,253,13, - 13,280,13,13,13,13,281,271,281,167, - 281,167,281,13,11,242,281,96,273,51, - 160,248,224,13,13,188,307,13,242,13, - 13,283,283,13,283,211,271,167,13,186, - 13,96,216,35,176,33,33,180,167,289, - 289,153,27,332,76,13,51,19,253,186, - 59,253,186,51,242,12,13,13,96,96, - 96,96,96,96,96,96,96,96,242,303, - 235,13,13,13,13,13,253,13,13,51, - 81,216,13,220,180,242,13,332,51,51, - 90,5,122,332,13,13,13,13,12,71, - 51,51,283,283,51,51,271,253,102,13, - 235,13,13,13,13,13,13,13,13,13, - 13,96,13,161,14,94,220,186,242,116, - 167,186,301,224,332,13,13,323,42,62, - 13,332,310,20,167,167,13,289,271,51, - 289,44,87,20,29,235,235,235,96,40, - 71,13,332,332,332,73,170,170,1,237, - 238,238,238,238,242,139,53,53,139,196, - 81,157,65,261,167,167,44,44,176,273, - 122,122,224,201,201,255,255,51,289,332, - 96,332,96,96,96,96,96,96,96,96, - 96,96,96,96,96,96,96,96,96,96, - 96,96,96,96,96,96,96,96,96,96, - 96,96,96,96,149,96,332,51,271,181, - 167,46,17,122,117,13,186,216,216,153, - 216,13,153,281,323,332,13,332,74,242, - 216,13,300,13,25,292,310,167,167,51, - 186,51,87,51,308,12,13,13,20,13, - 12,332,332,332,122,239,14,269,192,176, - 169,33,33,13,13,13,11,242,96,332, - 332,13,13,13,13,70,332,223,242,223, - 332,122,157,13,289,13,13,51,13,13, - 319,332,13,246,13,13,13,23,23,74, - 74,255,301,216,264,13,13,13,13,13, + 275,13,13,197,14,16,5,333,13,13, + 13,319,13,158,319,211,191,273,273,13, + 13,297,13,13,13,13,298,92,298,230, + 298,230,298,13,11,175,298,150,290,197, + 190,268,152,13,13,247,329,13,175,13, + 13,319,319,13,319,219,92,230,13,238, + 13,150,120,30,349,63,63,232,230,240, + 240,188,20,317,199,13,197,171,273,238, + 38,273,238,197,175,12,13,13,150,150, + 150,150,150,150,150,150,150,150,175,325, + 258,13,13,13,13,13,273,13,13,197, + 36,120,13,224,232,175,13,317,197,197, + 124,5,116,317,13,13,13,13,12,72, + 197,197,319,319,197,197,92,273,18,13, + 258,13,13,13,13,13,13,13,13,13, + 13,150,13,191,65,86,224,238,175,110, + 230,238,186,152,317,13,13,256,68,43, + 13,317,340,172,230,230,13,240,92,197, + 240,48,56,172,59,258,258,258,150,46, + 72,13,317,317,317,105,203,203,1,260, + 261,261,261,261,175,76,22,22,76,211, + 36,127,178,182,230,230,48,48,349,290, + 116,116,152,359,359,275,275,197,240,317, + 150,317,150,150,150,150,150,150,150,150, + 150,150,150,150,150,150,150,150,150,150, + 150,150,150,150,150,150,150,150,150,150, + 150,150,150,150,32,150,317,197,92,233, + 230,149,99,116,111,13,238,120,120,188, + 120,13,188,298,256,317,13,317,106,175, + 120,13,185,13,14,332,340,230,230,197, + 238,197,56,197,330,12,13,251,203,144, + 13,13,13,13,13,13,13,13,13,172, + 13,12,317,317,317,116,262,65,286,207, + 349,202,63,63,13,13,13,11,175,150, + 317,317,13,13,13,13,71,317,151,175, + 151,317,116,127,13,240,13,13,197,13, + 13,228,317,13,266,13,13,13,74,74, + 106,106,275,186,120,281,13,13,13,13, 13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,74,51,17, - 122,117,79,13,332,42,332,96,332,332, - 71,160,51,51,106,106,20,308,112,13, - 13,44,29,269,269,269,96,238,51,127, - 332,206,13,132,13,216,13,13,13,13, - 207,13,308,214,216,216,308,37,317,332, - 174,51,242,71,13,235,13,13,13,13, - 20,12,242,124,71,51,65,12,139,167, - 79,51,96,13,13,245,176,201,201,283, - 51,13,13,74,216,96,96,94,96,96, - 122,117,332,332,224,216,96,13,130,13, - 167,180,106,106,228,112,74,96,308,332, - 110,319,13,207,13,13,207,334,334,199, - 13,334,216,216,13,51,332,201,69,20, - 332,196,196,196,196,13,13,13,307,20, - 114,332,51,79,79,96,96,174,218,201, - 238,238,74,122,122,96,216,161,96,96, - 186,167,180,13,13,253,108,289,74,51, - 83,13,196,319,207,96,207,332,248,1, - 332,325,51,13,332,114,51,332,20,269, - 332,332,332,332,139,139,125,13,13,204, - 13,79,51,13,85,93,167,186,142,289, - 253,253,12,110,139,96,122,207,13,207, - 216,161,196,207,204,79,51,13,332,332, - 125,239,155,13,85,13,12,289,289,83, - 332,122,96,13,146,216,332,51,79,332, - 332,51,13,23,12,12,207,332,216,155, - 51,37,37,246,329,13,207,155,332,223, - 238 + 13,13,13,13,13,13,13,13,106,197, + 99,116,111,122,13,317,68,317,150,317, + 317,72,190,197,197,41,41,172,330,28, + 13,13,297,298,298,298,298,306,11,13, + 150,150,150,150,150,150,150,150,150,150, + 150,150,150,150,150,150,150,150,150,150, + 211,150,48,59,286,286,286,150,261,197, + 132,317,214,13,161,13,120,13,13,13, + 13,215,13,330,118,120,120,330,141,300, + 317,347,197,175,72,13,258,13,13,13, + 13,172,12,175,168,72,197,178,12,76, + 230,122,197,150,13,13,265,349,359,359, + 319,197,13,13,106,120,150,150,86,150, + 150,116,111,317,317,152,120,150,13,139, + 13,230,232,41,41,101,28,106,150,330, + 175,150,13,13,13,13,13,13,13,13, + 13,13,13,317,156,228,13,215,13,13, + 215,353,353,357,13,353,120,120,13,197, + 317,359,70,172,317,211,211,211,211,13, + 13,13,329,172,97,317,197,122,122,150, + 150,347,222,359,261,261,106,116,116,150, + 120,191,150,150,238,230,232,13,13,273, + 108,240,106,56,317,150,197,79,13,211, + 228,215,150,215,317,268,1,317,243,197, + 13,317,97,197,317,172,286,317,317,317, + 317,76,76,169,13,13,130,13,122,197, + 13,81,85,230,238,135,240,273,273,12, + 172,156,76,150,116,215,13,215,120,191, + 211,215,130,122,197,13,317,317,169,262, + 83,13,81,13,12,240,240,79,317,116, + 150,13,94,120,317,197,122,317,317,197, + 13,74,12,12,215,317,120,83,197,141, + 141,266,314,13,215,83,317,151,261 }; }; public final static char nasb[] = Nasb.nasb; @@ -3120,40 +3580,43 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface Nasr { public final static char nasr[] = {0, - 3,13,10,9,109,145,127,114,126,125, - 5,2,0,4,40,0,198,0,64,2, - 3,0,136,0,176,0,161,0,85,164, - 163,0,96,0,209,0,44,65,0,200, - 0,191,0,50,39,13,2,9,10,5, - 4,0,5,2,9,10,165,0,44,1, - 0,32,193,0,188,5,187,0,2,146, - 85,0,4,97,0,226,32,0,61,0, - 178,0,167,0,181,0,2,85,0,4, - 220,0,97,100,44,13,2,9,10,5, - 0,15,0,227,0,138,0,218,0,169, - 0,173,0,180,0,4,5,10,9,2, - 13,73,0,2,147,0,4,202,0,216, - 0,13,2,9,10,5,229,0,4,108, - 0,5,120,184,0,4,203,0,4,46, - 146,0,160,0,152,0,44,179,0,102, - 72,5,2,9,10,4,43,0,32,104, - 105,4,0,28,4,5,43,102,0,4, - 5,10,9,2,72,23,0,4,50,221, - 0,39,53,44,204,4,46,0,46,206, - 28,4,0,144,0,97,46,53,39,86, - 44,4,0,4,46,49,0,105,104,43, - 72,75,5,10,9,2,0,5,120,217, - 0,43,1,0,44,65,46,39,4,50, - 0,2,64,0,32,105,104,72,2,9, - 10,4,5,0,123,83,53,4,39,0, - 43,85,0,5,10,9,2,13,100,99, - 44,0,2,5,114,110,111,112,119,13, - 77,0,4,39,53,83,93,0,2,74, - 0,49,5,2,9,10,4,177,0,43, - 129,0,5,10,9,13,3,1,0,4, - 53,83,120,51,5,0,105,104,43,5, - 75,0,109,0,50,4,205,0,50,39, - 4,32,0,4,50,122,0 + 3,13,10,9,122,157,132,118,131,130, + 4,2,0,188,0,243,0,15,0,173, + 0,4,2,9,10,177,0,185,0,224, + 0,5,47,158,0,190,0,41,1,0, + 147,0,32,208,0,215,0,4,10,9, + 2,13,154,5,0,2,93,0,93,176, + 175,0,95,0,5,35,0,206,0,2, + 158,93,0,145,0,5,124,0,179,0, + 193,0,164,0,106,4,10,9,2,13, + 113,41,0,5,218,0,192,0,213,0, + 4,133,232,0,5,106,0,233,0,5, + 4,10,9,2,13,82,0,5,47,48, + 0,50,0,5,235,0,41,191,0,156, + 0,5,217,0,4,133,196,0,231,0, + 41,59,0,41,57,40,47,59,5,13, + 4,10,9,2,0,181,0,43,1,0, + 13,2,9,10,4,245,0,2,159,0, + 56,2,3,0,2,56,0,200,4,199, + 0,43,93,0,43,138,0,172,0,119, + 43,78,4,2,9,10,5,0,242,32, + 0,32,109,110,5,0,40,53,41,219, + 5,47,0,106,47,53,40,96,41,5, + 0,110,109,10,9,2,78,4,87,43, + 0,5,4,10,9,2,78,27,0,2, + 86,0,57,5,220,0,5,57,236,0, + 237,132,118,131,130,122,0,41,59,47, + 40,5,57,0,32,110,109,78,2,9, + 10,5,4,0,136,92,53,5,40,0, + 4,10,9,2,13,113,41,112,0,2, + 4,118,115,116,117,128,13,67,0,110, + 109,43,4,87,0,118,67,13,115,116, + 117,204,0,57,40,5,32,0,5,40, + 53,92,103,0,4,10,9,13,3,1, + 0,48,4,2,9,10,5,189,0,5, + 53,92,133,51,4,0,31,5,4,43, + 119,0,5,57,135,0,47,221,31,5, + 0 }; }; public final static char nasr[] = Nasr.nasr; @@ -3162,18 +3625,18 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface TerminalIndex { public final static char terminalIndex[] = {0, 118,132,131,119,2,31,51,129,130,13, - 84,120,10,9,53,57,73,79,80,91, - 92,105,107,48,49,65,110,112,133,134, - 135,127,59,111,50,94,109,52,69,71, + 84,10,9,120,53,57,73,79,80,91, + 92,107,105,48,49,65,110,112,133,134, + 135,59,111,50,94,109,127,52,69,71, 75,78,81,88,103,117,11,12,7,8, - 125,72,99,102,114,115,116,14,60,66, - 89,93,95,104,128,58,98,68,96,106, - 19,126,82,100,108,136,137,1,44,123, - 63,83,30,20,101,33,124,113,54,55, - 61,62,64,70,74,76,77,90,97,17, - 18,32,6,122,4,15,16,21,22,23, - 24,25,26,27,28,45,46,5,29,34, - 35,36,37,38,39,40,41,42,43,56, + 72,99,102,114,115,116,14,60,66,89, + 93,95,104,128,125,58,98,68,96,106, + 19,1,44,100,126,82,108,20,123,136, + 137,63,83,30,101,33,124,17,18,113, + 54,55,61,62,64,70,74,76,77,90, + 97,21,22,32,6,23,24,25,26,27, + 122,4,15,16,28,29,34,35,36,37, + 38,39,40,41,42,43,45,46,5,56, 85,86,87,3,138,67,121 }; }; @@ -3182,30 +3645,32 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 144,150,151,0,0,149,0,0,245,251, + 144,150,151,0,0,149,0,0,253,259, 148,0,158,0,145,147,0,157,163,0, - 0,164,260,0,0,0,173,195,174,175, - 176,140,177,178,179,180,181,182,269,166, - 183,0,261,143,156,146,184,0,142,167, - 192,0,0,0,153,0,0,0,0,0, - 202,0,0,152,187,0,219,0,160,0, - 216,220,139,0,170,190,201,0,0,0, - 0,0,0,0,0,186,0,0,0,0, - 0,0,193,0,0,221,141,161,233,0, - 172,217,223,224,225,0,227,0,203,204, - 205,206,207,208,0,0,222,235,268,236, - 0,189,194,196,197,198,199,200,211,213, - 0,214,0,0,226,0,0,0,240,0, - 242,0,256,257,267,0,162,185,210,0, - 212,0,229,232,0,254,0,255,0,265, - 270,0,154,155,159,0,0,169,171,0, - 0,0,0,0,209,0,218,0,230,231, - 0,0,237,244,0,248,249,250,253,0, - 262,0,264,0,0,271,273,274,0,0, - 165,168,0,188,0,191,0,0,215,228, - 234,0,0,238,239,241,243,0,246,247, - 252,258,259,0,0,263,0,0,266,0, - 272,0,0,0,0 + 0,164,173,174,175,176,271,0,0,0, + 203,140,0,177,166,178,179,180,181,280, + 143,182,272,156,183,0,146,142,184,210, + 200,0,0,0,153,152,167,185,195,0, + 0,0,0,0,0,0,209,0,0,186, + 0,227,0,187,0,188,224,228,189,160, + 190,139,191,0,192,0,170,198,0,0, + 0,0,0,0,229,194,0,0,0,0, + 0,0,201,0,0,141,161,231,232,233, + 0,241,0,172,212,213,214,216,225,235, + 243,211,230,0,215,0,0,279,204,205, + 206,207,244,0,197,202,208,219,221,0, + 222,0,0,234,0,0,0,248,0,250, + 0,264,0,267,0,268,278,0,162,193, + 218,0,220,0,237,240,0,262,0,263, + 0,276,281,0,154,155,159,0,0,169, + 171,0,0,0,0,0,217,0,226,0, + 238,239,0,0,245,252,0,256,257,258, + 261,0,0,265,0,273,0,275,0,0, + 282,284,285,0,0,165,168,0,196,0, + 199,0,0,223,236,242,0,0,246,247, + 249,251,0,254,255,260,266,269,270,0, + 0,274,0,0,277,0,283,0,0,0, + 0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -3213,22 +3678,23 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface ScopePrefix { public final static char scopePrefix[] = { - 299,461,757,776,450,479,708,724,735,746, - 546,10,18,405,419,436,499,169,430,566, - 604,307,765,651,28,147,178,198,207,212, - 217,270,335,492,507,512,122,284,411,425, - 679,154,284,556,512,784,154,357,386,24, - 40,58,90,90,114,118,130,141,188,203, - 231,517,535,539,622,644,673,700,704,794, - 798,802,222,134,222,584,600,613,631,692, - 1,241,241,369,457,613,715,731,742,753, - 347,662,70,82,111,183,183,296,362,64, - 183,383,402,64,64,183,543,641,648,296, - 183,817,46,52,64,105,235,521,588,628, - 52,33,183,250,442,521,250,250,469,575, - 317,469,75,75,96,229,96,96,96,96, - 626,806,813,75,75,100,378,806,813,192, - 594,277,229,378,229,391 + 314,476,778,797,465,494,729,745,756,767, + 548,10,18,420,434,451,512,184,445,568, + 606,322,786,672,28,149,162,193,213,222, + 227,232,285,350,507,518,149,640,122,299, + 426,440,700,169,299,558,149,805,169,372, + 401,24,40,58,90,90,114,118,130,141, + 156,203,218,246,156,537,541,624,665,694, + 721,725,815,819,823,237,134,237,586,602, + 615,633,652,713,1,256,256,384,472,615, + 736,752,763,774,362,683,70,82,111,198, + 198,311,377,64,198,398,417,64,64,198, + 545,662,669,311,198,838,46,52,64,105, + 250,523,590,630,52,33,645,198,265,457, + 523,265,265,484,577,332,484,75,75,96, + 96,244,96,96,96,96,628,827,834,75, + 75,100,393,827,834,207,596,292,244,393, + 244,406 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -3236,22 +3702,23 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface ScopeSuffix { public final static char scopeSuffix[] = { - 145,275,94,94,275,275,94,94,94,94, - 553,16,16,275,44,275,505,175,416,572, - 610,313,194,657,16,152,152,152,186,186, - 44,275,340,497,497,505,127,289,416,226, - 684,165,292,561,771,789,159,351,351,16, - 44,62,94,94,94,94,94,145,94,186, - 44,497,44,44,275,16,94,94,94,94, - 94,16,815,138,226,553,553,553,635,684, - 5,245,259,373,445,617,719,719,719,719, - 351,666,73,73,94,186,186,94,94,365, - 367,16,94,62,62,367,44,94,16,94, - 677,94,49,55,67,108,238,524,591,108, - 638,36,696,245,445,687,253,264,486,578, - 320,472,80,88,98,44,527,529,531,533, - 44,808,808,77,85,102,380,810,810,194, - 596,279,342,373,327,393 + 145,290,94,94,290,290,94,94,94,94, + 555,16,16,290,44,290,154,190,431,574, + 612,328,209,678,16,154,167,167,167,201, + 201,44,290,355,160,160,154,94,127,304, + 431,241,705,180,307,563,792,810,174,366, + 366,16,44,62,94,94,94,94,94,145, + 160,94,201,44,160,44,44,290,16,94, + 94,94,94,94,16,836,138,241,555,555, + 555,637,656,705,5,260,274,388,460,619, + 740,740,740,740,366,687,73,73,94,201, + 201,94,94,380,382,16,94,62,62,382, + 44,94,16,94,698,94,49,55,67,108, + 253,526,593,108,659,36,648,717,260,460, + 708,268,279,501,580,335,487,80,88,98, + 147,44,529,531,533,535,44,829,829,77, + 85,102,395,831,831,209,598,294,357,388, + 342,408 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -3259,22 +3726,23 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface ScopeLhs { public final static char scopeLhs[] = { - 51,112,18,18,82,112,18,18,18,18, - 89,96,96,95,52,82,111,80,59,89, - 88,51,18,20,96,3,7,8,184,184, - 183,110,51,111,111,113,24,99,60,52, - 165,157,99,89,18,18,157,106,66,96, - 63,76,119,19,19,190,159,92,187,184, - 183,113,207,57,65,169,19,18,18,18, - 18,18,12,144,183,89,88,88,42,165, - 54,118,118,75,82,88,18,18,18,18, - 106,20,139,132,17,188,184,209,104,117, - 68,96,67,177,76,113,90,170,169,200, - 165,17,63,18,76,87,183,113,122,87, - 22,39,165,118,82,165,118,118,112,89, - 51,112,139,132,145,183,128,127,126,125, - 84,163,64,139,132,229,75,163,64,187, - 122,110,51,75,51,66 + 51,117,18,18,91,117,18,18,18,18, + 99,95,95,105,52,91,116,89,63,99, + 98,51,18,20,95,204,3,7,8,196, + 196,195,115,51,116,116,125,58,28,112, + 64,52,177,169,112,99,18,18,169,111, + 71,95,66,88,128,19,19,205,171,102, + 204,199,196,195,125,222,61,59,181,19, + 18,18,18,18,18,12,156,195,99,98, + 98,84,46,177,54,121,121,87,91,98, + 18,18,18,18,111,20,148,141,17,200, + 196,224,109,123,73,95,72,189,88,125, + 100,182,181,215,177,17,66,18,88,97, + 195,125,135,97,22,40,58,177,121,91, + 177,121,121,117,99,51,117,148,141,157, + 237,195,137,132,131,130,94,175,56,148, + 141,245,87,175,56,199,135,115,51,87, + 51,71 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -3282,22 +3750,23 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface ScopeLa { public final static char scopeLa[] = { - 130,87,80,80,87,87,80,80,80,80, - 80,104,104,87,51,87,1,84,1,80, - 136,72,5,80,104,84,84,84,1,1, - 51,87,72,1,1,1,80,87,1,1, - 6,84,79,51,1,1,84,80,80,104, - 51,1,80,80,80,80,80,130,80,1, - 51,1,51,51,87,104,80,80,80,80, - 80,104,1,80,1,80,80,80,83,6, - 79,1,1,13,72,80,84,84,84,84, - 80,5,8,8,80,1,1,80,80,5, - 1,104,80,1,1,1,51,80,104,80, - 10,80,1,80,8,83,1,67,86,83, - 80,3,1,1,72,67,1,1,72,88, - 85,1,1,1,32,51,1,68,66,66, - 51,6,6,1,1,102,14,6,6,5, - 1,72,1,13,1,5 + 130,87,79,79,87,87,79,79,79,79, + 79,111,111,87,65,87,1,78,1,79, + 136,75,5,79,111,1,78,78,78,1, + 1,65,87,75,1,1,1,79,79,87, + 1,1,6,78,73,65,1,1,78,79, + 79,111,65,1,79,79,79,79,79,130, + 1,79,1,65,1,65,65,87,111,79, + 79,79,79,79,111,1,79,1,79,79, + 79,84,84,6,73,1,1,12,75,79, + 78,78,78,78,79,5,8,8,79,1, + 1,79,79,5,1,111,79,1,1,1, + 65,79,111,79,10,79,1,79,8,84, + 1,67,86,84,79,3,78,1,1,75, + 67,1,1,75,90,85,1,1,1,37, + 1,65,1,68,66,66,65,6,6,1, + 1,104,13,6,6,5,1,75,1,12, + 1,5 }; }; public final static char scopeLa[] = ScopeLa.scopeLa; @@ -3305,22 +3774,23 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface ScopeStateSet { public final static char scopeStateSet[] = { - 394,159,242,242,406,159,242,242,242,242, - 82,95,95,453,394,406,159,406,441,82, - 82,394,242,242,95,166,212,212,21,21, - 418,159,394,159,159,159,326,61,441,394, - 50,43,61,82,242,242,43,99,134,95, - 441,140,159,242,242,58,1,82,47,21, - 418,159,41,441,71,18,242,242,242,242, - 242,242,216,8,418,82,82,82,282,50, - 394,159,159,378,406,82,242,242,242,242, - 99,242,24,151,242,47,21,108,99,101, - 134,95,134,156,140,159,82,5,18,53, - 50,242,441,242,140,82,418,159,13,82, - 247,421,50,159,406,50,159,159,159,82, - 394,159,24,151,161,418,161,161,161,161, - 29,55,110,24,151,324,378,55,110,47, - 13,159,394,378,394,134 + 466,376,268,268,478,376,268,268,268,268, + 111,124,124,522,466,478,376,478,510,111, + 111,466,268,268,124,43,190,238,238,21, + 21,490,376,466,376,376,378,61,391,89, + 510,466,53,46,89,111,268,268,46,128, + 165,124,510,171,378,268,268,86,1,111, + 43,50,21,490,378,41,510,99,18,268, + 268,268,268,268,268,242,8,490,111,111, + 111,69,336,53,466,376,376,450,478,111, + 268,268,268,268,128,268,24,182,268,50, + 21,138,128,130,165,124,165,187,171,378, + 111,5,18,56,53,268,510,268,171,111, + 490,378,13,111,273,493,61,53,376,478, + 53,376,376,376,111,466,376,24,182,380, + 389,490,380,385,385,385,29,58,140,24, + 182,374,450,58,140,50,13,376,466,450, + 466,165 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -3328,88 +3798,90 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface ScopeRhs { public final static char scopeRhs[] = {0, - 183,5,76,0,44,145,140,142,0,184, - 36,334,141,78,0,139,0,184,334,141, - 36,78,0,184,36,78,0,184,334,141, - 78,0,332,141,0,131,270,0,0,288, - 141,176,0,142,0,141,176,0,212,142, - 0,206,5,0,140,233,0,180,239,141, - 0,216,0,239,141,0,261,216,0,276, - 180,0,261,0,180,0,240,261,0,240, - 0,213,180,0,190,261,0,190,0,206, - 5,32,0,140,0,246,0,268,0,238, - 0,32,172,0,366,90,0,30,186,0, - 202,5,0,206,5,65,0,362,5,328, - 0,361,5,5,8,0,140,140,0,360, - 5,74,0,359,5,130,0,140,187,0, - 141,202,85,0,231,0,292,141,71,139, - 0,20,0,326,141,71,67,0,20,58, - 0,33,147,0,20,58,0,0,326,141, - 71,67,220,0,20,193,0,292,141,71, - 147,0,211,142,0,156,0,245,5,325, - 0,325,0,2,0,140,0,292,141,71, - 146,0,211,142,257,0,211,142,37,257, - 0,211,142,355,37,0,143,222,201,142, - 0,222,201,142,0,149,142,0,190,0, - 351,141,190,0,141,190,0,238,142,0, - 201,350,251,0,151,0,0,0,0,350, - 251,0,152,151,0,0,0,0,150,0, - 0,0,0,152,150,0,0,0,0,349, - 141,181,255,0,141,0,255,0,143,0, - 0,141,0,348,141,181,237,0,141,0, - 0,44,141,0,0,177,5,0,141,316, - 315,141,85,314,190,0,315,141,85,314, - 190,0,230,0,231,0,314,190,0,101, - 0,0,230,0,231,0,218,101,0,0, - 230,0,231,0,315,141,314,190,0,230, - 0,218,0,0,230,0,270,141,5,0, - 140,0,0,0,0,0,270,141,5,241, - 0,254,5,0,223,0,161,0,207,201, - 142,0,10,0,0,0,0,207,0,9, - 0,0,238,78,0,270,141,5,204,0, - 204,0,2,0,0,140,0,0,0,0, - 0,213,5,0,258,141,181,46,40,0, - 211,142,73,75,0,211,142,0,143,211, - 142,313,75,0,211,142,313,75,0,211, - 142,86,138,73,0,258,141,181,287,73, - 0,287,73,0,143,0,0,141,0,258, - 141,181,287,266,73,0,287,266,73,0, - 310,311,141,181,138,345,68,0,345,68, - 0,144,143,0,0,0,141,0,310,311, - 141,181,345,68,0,143,0,0,0,141, - 0,211,142,309,68,0,150,0,222,211, - 142,309,251,0,151,0,211,142,309,251, - 0,222,201,142,22,0,201,142,22,0, - 201,142,0,98,151,0,207,0,206,0, - 205,0,204,0,308,141,165,0,308,141, - 190,0,183,98,0,340,186,342,343,5, - 95,0,140,186,0,342,343,5,95,0, - 142,0,140,186,0,183,5,88,223,93, - 0,140,142,0,223,93,0,113,2,146, - 140,142,0,259,5,88,0,213,187,0, - 33,184,0,187,0,190,33,184,0,259, - 5,99,0,223,169,259,5,97,0,67, - 186,0,259,5,97,0,140,186,67,186, - 0,341,141,181,0,183,0,238,90,0, - 183,119,178,0,30,184,0,140,164,0, - 245,5,0,238,78,306,0,183,78,0, - 206,5,337,82,142,0,140,0,0,0, - 0,337,82,142,0,2,160,140,0,0, - 0,0,206,5,62,0,162,0,140,67, - 201,142,0,31,162,0,98,151,31,162, - 0,235,211,142,0,161,31,162,0,206, - 5,64,0,183,5,64,0,183,5,84, - 206,71,59,0,206,71,59,0,20,2, - 146,140,0,183,5,84,206,71,61,0, - 206,71,61,0,183,5,84,206,71,63, - 0,206,71,63,0,183,5,84,206,71, - 60,0,206,71,60,0,245,5,140,222, - 201,142,22,0,140,222,201,142,22,0, - 151,2,0,140,0,245,5,139,283,201, - 142,22,0,283,201,142,22,0,150,2, - 0,140,0,245,5,150,0,245,5,155, - 0,183,78,155,0,301,0,31,0,31, - 154,0,192,0,149,0,183,5,0 + 184,5,80,0,44,145,140,142,0,186, + 35,349,142,72,0,139,0,186,349,142, + 35,72,0,186,35,72,0,186,349,142, + 72,0,347,142,0,131,281,0,0,300, + 142,177,0,142,0,142,177,0,220,142, + 0,217,5,0,140,241,0,180,256,142, + 0,224,0,256,142,0,272,224,0,285, + 180,0,272,0,180,0,248,272,0,248, + 0,225,180,0,198,272,0,198,0,217, + 5,37,0,140,0,259,0,279,0,251, + 0,32,172,0,382,92,0,30,194,0, + 196,5,0,217,5,64,0,378,5,343, + 0,377,5,5,8,0,140,140,0,376, + 5,74,0,375,5,130,0,140,195,0, + 142,196,85,0,239,0,265,0,230,193, + 141,23,0,151,0,193,141,23,0,150, + 0,304,142,71,139,0,20,0,338,142, + 71,67,0,20,58,0,33,147,0,20, + 58,0,0,338,142,71,67,229,0,20, + 201,0,304,142,71,147,0,223,141,0, + 156,0,261,5,337,0,337,0,2,0, + 140,0,304,142,71,146,0,223,141,270, + 0,223,141,36,270,0,223,141,370,36, + 0,143,230,193,141,0,230,193,141,0, + 149,142,0,190,0,366,142,190,0,142, + 190,0,246,142,0,193,365,255,0,151, + 0,0,0,0,365,255,0,152,151,0, + 0,0,0,150,0,0,0,0,152,150, + 0,0,0,0,364,142,178,258,0,141, + 0,258,0,143,0,0,141,0,363,142, + 178,250,0,141,0,0,44,141,0,0, + 172,5,0,142,328,327,142,85,326,190, + 0,327,142,85,326,190,0,238,0,239, + 0,326,190,0,101,0,0,238,0,239, + 0,226,101,0,0,238,0,239,0,327, + 142,326,190,0,238,0,226,0,0,238, + 0,279,142,5,0,140,0,0,0,0, + 0,279,142,5,246,0,260,5,0,231, + 0,161,0,212,193,141,0,10,0,0, + 0,0,212,0,9,0,0,251,72,0, + 279,142,5,209,0,209,0,2,0,0, + 140,0,0,0,0,0,225,5,0,271, + 142,178,46,40,0,223,141,76,77,0, + 219,142,0,143,223,141,325,77,0,223, + 141,325,77,0,223,141,86,138,76,0, + 271,142,178,299,76,0,299,76,0,143, + 0,0,141,0,271,142,178,299,275,76, + 0,299,275,76,0,322,323,142,178,138, + 360,68,0,360,68,0,144,143,0,0, + 0,141,0,322,323,142,178,360,68,0, + 143,0,0,0,141,0,223,141,321,68, + 0,230,223,141,321,255,0,223,141,321, + 255,0,193,141,0,98,151,0,215,0, + 214,0,213,0,212,0,320,142,168,0, + 320,142,190,0,184,100,0,355,185,357, + 358,5,97,0,140,194,0,357,358,5, + 97,0,142,0,140,194,0,184,5,90, + 233,95,0,140,142,0,233,95,0,113, + 2,146,140,142,0,272,5,90,0,225, + 194,0,33,184,0,194,0,198,33,184, + 0,272,5,101,0,233,169,272,5,99, + 0,67,194,0,272,5,99,0,140,194, + 67,194,0,356,142,178,0,184,0,251, + 92,0,184,116,220,0,30,192,0,163, + 78,195,5,0,195,5,0,20,176,140, + 0,184,116,182,0,30,184,0,140,164, + 0,261,5,0,251,72,318,0,184,72, + 0,217,5,352,83,141,0,140,0,0, + 0,0,352,83,141,0,2,160,140,0, + 0,0,0,217,5,61,0,162,0,140, + 67,193,141,0,31,162,0,98,151,31, + 162,0,244,223,141,0,161,31,162,0, + 217,5,63,0,184,5,63,0,184,5, + 78,217,71,58,0,217,71,58,0,20, + 2,146,140,0,184,5,78,217,71,60, + 0,217,71,60,0,184,5,78,217,71, + 62,0,217,71,62,0,184,5,78,217, + 71,59,0,217,71,59,0,261,5,140, + 230,193,141,23,0,140,230,193,141,23, + 0,151,2,0,140,0,261,5,139,295, + 193,141,23,0,295,193,141,23,0,150, + 2,0,140,0,261,5,150,0,261,5, + 155,0,184,72,155,0,313,0,31,0, + 31,154,0,192,0,149,0,184,5,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -3417,53 +3889,60 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface ScopeState { public final static char scopeState[] = {0, - 3225,3139,3034,0,2768,1235,0,3810,3626,3005, - 1515,0,6970,7137,7121,7120,0,2110,1473,0, - 2613,3896,0,4792,4765,721,3420,0,4528,4462, - 4396,4330,4264,4198,4132,4066,4000,3933,3663,3597, - 3612,0,6890,3690,4566,0,1598,1070,0,1077, - 1007,0,940,0,1494,766,0,697,951,0, - 1325,2297,1275,2199,2150,2052,5311,1112,1430,0, - 2477,2281,4495,839,3228,3126,4429,4363,4297,4231, - 4165,4528,4462,4396,4330,4264,4198,4132,4066,4000, - 3933,3663,3597,0,2475,2376,1252,773,3756,6766, - 5336,5082,5067,3184,5622,3700,0,802,0,7062, - 7041,7021,7006,7109,7098,6985,6981,6730,7087,6102, - 6074,6054,5930,5595,5538,5097,1049,710,5520,5391, - 5101,4779,0,3756,5552,6716,5506,5476,3783,5336, - 3668,4792,4765,721,5082,3420,5067,5869,3385,3202, - 3832,4598,3151,870,0,5552,3783,0,5566,5356, - 807,658,3357,3122,0,2100,2002,7062,7041,1953, - 1904,7021,2227,7006,2178,2129,2080,979,1562,7109, - 2031,7098,1933,6985,6981,6730,1804,1884,7087,6102, - 5566,6074,1833,6054,5930,1229,5595,1755,3357,5538, - 5097,1608,1049,710,5520,5391,5101,856,5356,4779, - 3122,1260,1100,900,751,1238,5336,3832,3668,4792, - 4765,3756,721,5082,3420,5067,3254,1585,5552,6716, - 1077,1007,5506,4598,5869,5476,3385,3202,3151,870, - 3783,6743,6694,6672,6581,5811,4637,6553,5311,3871, - 3318,3498,3573,3536,4731,4675,3909,5280,5249,5035, - 5003,4971,4939,4907,4869,5946,5902,5110,5781,5751, - 6530,6507,6484,6349,6326,6303,6280,6257,6234,6211, - 6188,2793,3079,1325,807,3036,2982,2939,1861,1810, - 1761,2885,2842,2744,2693,1275,2644,2590,1712,1186, - 1379,1663,1614,2498,2449,2400,2351,2302,2253,2204, - 2155,2106,2057,2008,1959,1116,1026,658,956,1539, - 1430,1910,1490,2547,0,3832,4138,6624,807,4792, - 6617,3748,4765,721,6116,7104,3375,5993,5697,5977, - 6805,6935,3342,6110,6716,5566,4786,3454,5157,658, - 5373,5197,6772,3284,5610,2908,4598,3357,5869,2616, - 924,5362,3385,775,3596,5356,6585,6395,5192,6382, - 3932,866,717,3118,870,3945,3122,6903,3756,4007, - 5582,6887,3271,6766,3420,4822,6874,6834,5506,5476, - 4073,3151,0,4528,4462,4396,4330,4264,4198,4132, - 4066,4000,3933,3663,3597,6576,5805,5654,5609,6388, - 6372,6092,6031,5986,5970,5367,5151,6773,6765,0, - 7216,7028,7199,7185,4495,7184,1186,1116,1026,7178, - 7172,7152,7140,6965,4429,4363,4297,956,4231,4165, - 4528,4462,4396,4330,4264,4198,4132,4066,4000,3933, - 3663,3597,6576,5805,5654,5609,6388,6372,6092,6031, - 5986,5970,5367,5151,0 + 2637,2385,1389,0,1708,1310,0,3709,2096,1745, + 1450,0,5518,8514,8507,8444,0,3251,2953,0, + 2452,1591,0,6148,6096,6044,4411,0,5795,5723, + 5651,5579,5507,5435,5363,5291,5219,5147,4739,4636, + 8505,0,7048,6013,0,4911,3862,4778,0,4147, + 4098,0,1364,767,0,921,0,2213,1120,0, + 4307,4500,4703,4531,1166,1076,5119,2658,3649,1228, + 3303,3217,3189,3103,3075,2989,2961,2875,2847,2761, + 2733,1138,1048,958,0,1345,1137,0,1395,4189, + 1314,3880,3779,3383,6709,910,1445,0,3135,3021, + 8433,2655,2097,2658,1944,8363,8336,6971,6776,6029, + 5795,5723,5651,5579,5507,5435,5363,5291,5219,5147, + 4739,4636,0,2694,2340,1199,1121,4819,6930,6732, + 6481,6282,4473,3055,2941,2827,0,780,0,7534, + 7465,6888,6501,6539,6187,6035,6494,5759,5724,6022, + 5687,5220,5580,5543,5148,5508,4863,3988,3486,5471, + 5436,5364,3882,0,4819,8216,5228,6912,6874,4745, + 6732,5370,6148,6096,6044,6481,4411,6282,7150,5016, + 860,4872,5871,4217,4961,0,8216,4745,0,3137, + 3027,7534,7465,3023,2535,1643,6888,2485,6501,2335, + 2237,2185,6539,986,3419,6187,2083,6035,1925,6494, + 5759,5724,2911,1713,6022,5687,6964,5220,1474,5580, + 5543,1044,5148,2795,4340,5508,4863,1947,3988,3486, + 5471,5436,5364,818,6745,3882,4077,1496,1384,1011, + 849,1728,6732,4872,5370,6148,6096,4819,6044,6481, + 4411,6282,2718,2700,8216,5228,1364,767,6912,5871, + 7150,6874,5016,860,4217,4961,4745,8155,7711,7282, + 6613,4122,3649,6508,7399,8126,1228,4307,3303,3217, + 3189,3103,3075,2989,2961,2875,2847,2761,2733,4500, + 4703,4531,1166,1076,5119,6454,6427,6400,6709,2658, + 7376,788,3331,4608,3677,5983,5954,5050,6683,6652, + 6326,6299,6251,5909,4255,1256,7352,7321,5153,7189, + 4159,8103,8080,1138,1048,8057,958,7911,7888,7865, + 7842,7819,7796,7773,7750,3735,4050,1395,878,4003, + 3941,3894,1956,1896,1846,3832,3785,3599,3548,1314, + 3498,3436,1796,1510,1746,1660,2608,2558,2508,2458, + 2408,2358,2308,2258,2208,2158,2106,2056,716,1613, + 1445,2006,1563,3389,0,7048,6013,6964,6745,878, + 716,4340,4077,0,878,716,4340,4077,6013,0, + 4872,4366,7099,878,6148,6865,4334,6096,6044,6356, + 5769,7048,8498,8466,8305,7940,6172,6013,4082,6535, + 4635,4210,7489,7623,3969,5265,5228,6964,4954,4910, + 4158,716,3142,2793,8297,3859,6084,3464,5871,4340, + 7150,1924,1691,997,5016,925,913,6745,7538,6769, + 4893,6180,3249,4784,4375,5837,4961,3256,4077,6757, + 4819,8271,4406,8454,8265,6930,4411,6136,8402,4767, + 6912,6874,4563,4217,0,5795,5723,5651,5579,5507, + 5435,5363,5291,5219,5147,4739,4636,8149,7215,7083, + 7004,7951,7934,7644,7577,7510,7439,7422,6546,4904, + 8229,0,8396,7230,8273,7953,8433,7949,2658,7579, + 7555,6751,5329,5617,8363,8336,6971,6776,6029,5795, + 5723,5651,5579,5507,5435,5363,5291,5219,5147,4739, + 4636,8149,7215,7083,7004,7951,7934,7644,7577,7510, + 7439,7422,6546,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -3471,73 +3950,78 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public interface InSymb { public final static char inSymb[] = {0, - 0,336,76,176,75,7,141,190,220,42, - 36,67,40,73,260,5,141,73,313,364, - 332,261,8,9,7,35,262,255,263,251, - 264,68,265,139,22,142,282,32,246,314, - 141,5,6,147,146,11,10,139,142,204, - 67,67,67,71,67,46,287,266,138,180, - 183,141,288,269,141,209,204,180,213,142, - 142,5,3,5,5,5,181,350,309,180, - 345,309,180,71,142,211,201,192,32,65, - 62,58,48,47,13,14,50,49,142,10, - 5,64,59,61,63,60,22,150,155,85, - 141,308,288,239,180,142,207,213,71,71, - 187,141,78,5,81,82,139,138,211,201, - 5,71,84,141,181,181,287,86,79,285, - 5,164,167,166,170,168,172,171,174,173, - 175,74,178,79,5,86,239,180,142,78, - 213,180,211,211,365,46,297,298,5,363, - 1,46,141,201,273,140,139,142,138,181, - 142,141,201,67,6,5,5,5,81,82, - 201,140,206,202,183,181,176,187,141,5, - 71,71,71,71,142,5,118,134,5,78, - 141,315,83,201,14,13,141,141,141,246, - 78,78,222,141,141,141,141,181,142,152, - 79,206,103,105,48,47,107,106,13,117, - 116,109,108,84,71,100,101,14,111,110, - 113,112,114,129,128,127,126,125,124,123, - 122,121,120,86,119,115,177,181,237,180, - 201,36,141,238,13,178,180,266,143,83, - 169,5,79,246,368,361,328,5,349,142, - 188,257,73,67,75,190,352,140,139,274, - 180,274,211,181,141,211,292,295,222,301, - 222,206,206,206,78,337,5,169,141,141, - 5,242,241,150,140,139,22,142,32,206, - 183,206,206,206,206,201,245,67,142,67, - 245,183,315,324,142,325,207,207,292,292, - 239,270,271,165,272,326,67,22,66,258, - 258,141,211,169,169,166,166,164,164,164, - 168,168,168,168,168,168,167,167,171,170, - 170,173,172,174,283,183,175,141,181,141, - 184,334,335,13,1,79,169,5,46,1, - 201,141,274,274,141,141,222,141,311,138, - 312,79,6,169,169,169,210,5,338,187, - 177,341,92,90,1,183,12,99,97,95, - 93,88,96,98,91,89,73,85,239,254, - 141,5,142,201,156,5,84,84,84,84, - 222,283,142,211,201,316,79,211,5,13, - 141,169,86,254,213,5,141,79,79,84, - 71,273,273,258,266,83,83,141,334,36, - 184,13,1,362,222,351,83,278,213,139, - 276,180,141,141,83,311,310,86,79,206, - 141,141,12,83,366,238,83,5,5,5, - 223,5,138,183,138,202,270,141,201,67, - 206,5,5,5,5,140,139,235,10,67, - 141,245,207,198,141,86,86,141,239,141, - 86,86,348,184,184,79,143,79,83,86, - 180,276,180,160,354,257,37,142,310,169, - 303,306,78,212,83,102,83,259,187,141, - 259,343,165,88,259,141,169,270,222,169, - 183,183,183,183,5,5,6,138,140,317, - 130,141,252,326,234,79,276,180,79,142, - 37,355,211,141,5,78,183,169,213,169, - 342,141,5,169,317,141,169,140,245,245, - 6,5,141,84,234,12,211,142,142,303, - 245,238,86,223,186,308,183,252,141,102, - 359,187,74,66,211,211,136,340,169,141, - 252,169,169,141,5,273,169,141,360,86, - 79 + 0,351,80,177,77,7,142,190,229,42, + 35,67,40,76,273,5,142,76,325,380, + 347,266,8,9,7,34,267,258,268,255, + 269,68,274,139,23,141,294,37,259,326, + 142,5,6,147,146,11,10,139,141,209, + 67,67,67,71,67,46,299,275,138,180, + 184,142,300,278,142,215,209,180,225,141, + 141,5,3,5,5,5,178,365,321,180, + 360,321,180,71,141,223,193,192,37,64, + 61,57,48,47,12,13,50,49,141,10, + 5,63,58,60,62,59,23,150,155,85, + 142,320,300,256,180,141,212,225,71,71, + 194,142,72,5,82,83,139,138,223,193, + 5,71,78,142,178,178,299,86,73,297, + 5,160,162,161,171,163,174,173,176,175, + 179,74,182,73,5,86,256,180,141,72, + 225,180,223,223,381,46,309,310,5,379, + 1,46,142,193,282,140,139,141,138,178, + 141,142,193,67,6,5,5,5,82,83, + 193,140,217,196,184,178,177,194,142,5, + 71,71,71,71,141,5,129,134,5,72, + 142,327,84,193,13,12,142,142,142,259, + 72,72,230,142,142,142,142,178,141,152, + 73,217,105,112,48,47,114,113,12,128, + 127,103,102,78,71,88,89,13,107,106, + 109,108,110,126,125,124,123,122,121,120, + 119,118,117,86,116,115,172,178,250,180, + 193,35,142,251,12,182,180,275,143,84, + 169,5,73,259,384,377,343,5,364,141, + 188,270,76,67,77,190,367,140,139,283, + 180,283,223,178,142,223,304,142,291,5, + 195,163,211,207,216,213,218,220,307,230, + 313,230,217,217,217,72,352,5,169,142, + 142,5,247,246,150,140,139,23,141,37, + 217,184,217,217,217,217,193,261,67,141, + 67,261,184,327,336,141,337,212,212,304, + 304,256,279,280,168,281,338,67,23,66, + 271,271,142,223,169,169,161,161,160,160, + 160,163,163,163,163,163,163,162,162,173, + 171,171,175,174,176,295,184,179,142,178, + 142,186,349,350,12,1,73,169,5,46, + 1,193,142,283,283,142,142,230,142,323, + 138,324,266,267,268,269,374,259,23,195, + 103,102,71,13,107,106,109,108,110,126, + 125,124,123,122,121,120,119,118,117,86, + 116,115,73,6,169,169,169,219,5,353, + 194,172,356,94,92,1,184,14,101,99, + 97,95,90,98,100,93,91,76,85,256, + 260,142,5,141,193,156,5,78,78,78, + 78,230,295,141,223,193,328,73,223,5, + 12,142,169,86,260,225,5,142,73,73, + 78,71,282,282,271,275,84,84,142,349, + 35,186,12,1,378,230,366,84,287,225, + 139,285,180,142,142,84,323,322,86,73, + 141,78,163,163,163,207,195,195,213,211, + 216,184,218,217,142,142,14,84,382,251, + 84,5,5,5,233,5,138,184,138,196, + 279,142,193,67,217,5,5,5,5,140, + 139,244,10,67,142,261,212,187,142,86, + 86,142,256,142,86,86,363,186,186,73, + 143,73,84,86,180,285,180,164,369,270, + 36,141,322,193,163,84,169,315,318,72, + 224,84,104,84,272,194,142,272,358,168, + 90,272,142,169,279,230,169,184,184,184, + 184,5,5,6,138,140,329,130,142,263, + 338,243,73,285,180,73,141,36,370,223, + 230,142,5,72,184,169,225,169,357,142, + 5,169,329,142,169,140,261,261,6,5, + 142,78,243,14,223,141,141,315,261,251, + 86,233,185,320,184,263,142,104,375,194, + 74,66,223,223,136,355,169,142,263,169, + 169,142,5,282,169,142,376,86,73 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -3732,6 +4216,20 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar "logical_and_expression", "logical_or_expression", "assignment_expression", + "relational_expression_inTempla" + + "te", + "equality_expression_inTemplate", + "and_expression_inTemplate", + "exclusive_or_expression_inTemp" + + "late", + "inclusive_or_expression_inTemp" + + "late", + "logical_and_expression_inTempl" + + "ate", + "logical_or_expression_inTempla" + + "te", + "assignment_expression_inTempla" + + "te", "expression_list_actual", "statement", "compound_statement", @@ -3808,6 +4306,10 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar "template_parameter", "template_argument_list", "template_argument", + "type_name_specifier_inTemplate", + "type_name_declaration_specifie" + + "rs_inTemplate", + "type_specifier_seq_inTemplate", "handler", "exception_declaration", "type_id_list", @@ -3833,10 +4335,10 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 77, - SCOPE_UBOUND = 155, - SCOPE_SIZE = 156, - MAX_NAME_LENGTH = 37; + ERROR_SYMBOL = 81, + SCOPE_UBOUND = 161, + SCOPE_SIZE = 162, + MAX_NAME_LENGTH = 43; public final int getErrorSymbol() { return ERROR_SYMBOL; } public final int getScopeUbound() { return SCOPE_UBOUND; } @@ -3844,20 +4346,20 @@ public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPPar public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 661, + NUM_STATES = 719, NT_OFFSET = 137, - LA_STATE_OFFSET = 8989, + LA_STATE_OFFSET = 10615, MAX_LA = 2147483647, - NUM_RULES = 657, - NUM_NONTERMINALS = 235, - NUM_SYMBOLS = 372, + NUM_RULES = 715, + NUM_NONTERMINALS = 256, + NUM_SYMBOLS = 393, SEGMENT_SIZE = 8192, - START_STATE = 5151, + START_STATE = 6546, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 135, EOLT_SYMBOL = 135, - ACCEPT_ACTION = 7287, - ERROR_ACTION = 8332; + ACCEPT_ACTION = 8729, + ERROR_ACTION = 9900; public final static boolean BACKTRACK = true; diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParsersym.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParsersym.java index aa2b986d8f8..66eb3f25f1b 100644 --- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParsersym.java +++ b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParsersym.java @@ -17,140 +17,140 @@ public interface XlcCPPParsersym { public final static int TK__Complex = 24, TK__Imaginary = 25, - TK_restrict = 35, + TK_restrict = 34, TK_asm = 7, TK_auto = 38, TK_bool = 15, - TK_break = 89, - TK_case = 90, + TK_break = 91, + TK_case = 92, TK_catch = 130, TK_char = 16, TK_class = 66, - TK_const = 33, - TK_const_cast = 59, - TK_continue = 91, - TK_default = 92, - TK_delete = 81, - TK_do = 93, + TK_const = 32, + TK_const_cast = 58, + TK_continue = 93, + TK_default = 94, + TK_delete = 82, + TK_do = 95, TK_double = 26, - TK_dynamic_cast = 60, + TK_dynamic_cast = 59, TK_else = 136, TK_enum = 68, TK_explicit = 39, - TK_export = 94, + TK_export = 96, TK_extern = 40, - TK_false = 52, + TK_false = 51, TK_float = 17, - TK_for = 95, + TK_for = 97, TK_friend = 41, - TK_goto = 96, - TK_if = 97, + TK_goto = 98, + TK_if = 99, TK_inline = 42, TK_int = 18, TK_long = 19, TK_mutable = 43, - TK_namespace = 73, - TK_new = 82, + TK_namespace = 76, + TK_new = 83, TK_operator = 11, TK_private = 131, TK_protected = 132, TK_public = 133, TK_register = 44, - TK_reinterpret_cast = 61, - TK_return = 98, + TK_reinterpret_cast = 60, + TK_return = 100, TK_short = 20, TK_signed = 21, - TK_sizeof = 62, - TK_static = 36, - TK_static_cast = 63, + TK_sizeof = 61, + TK_static = 35, + TK_static_cast = 62, TK_struct = 69, - TK_switch = 99, + TK_switch = 101, TK_template = 67, - TK_this = 53, + TK_this = 52, TK_throw = 74, TK_try = 85, - TK_true = 54, + TK_true = 53, TK_typedef = 45, - TK_typeid = 64, - TK_typename = 22, + TK_typeid = 63, + TK_typename = 23, TK_union = 70, - TK_unsigned = 23, - TK_using = 75, - TK_virtual = 37, + TK_unsigned = 22, + TK_using = 77, + TK_virtual = 36, TK_void = 27, - TK_volatile = 34, + TK_volatile = 33, TK_wchar_t = 28, - TK_while = 88, - TK_integer = 55, - TK_floating = 56, - TK_charconst = 57, + TK_while = 90, + TK_integer = 54, + TK_floating = 55, + TK_charconst = 56, TK_stringlit = 46, TK_identifier = 1, TK_Completion = 4, - TK_EndOfCompletion = 12, + TK_EndOfCompletion = 14, TK_Invalid = 137, - TK_LeftBracket = 78, + TK_LeftBracket = 72, TK_LeftParen = 5, TK_Dot = 134, - TK_DotStar = 105, - TK_Arrow = 118, - TK_ArrowStar = 103, + TK_DotStar = 112, + TK_Arrow = 129, + TK_ArrowStar = 105, TK_PlusPlus = 49, TK_MinusMinus = 50, - TK_And = 14, - TK_Star = 13, + TK_And = 13, + TK_Star = 12, TK_Plus = 47, TK_Minus = 48, TK_Tilde = 10, - TK_Bang = 58, - TK_Slash = 106, - TK_Percent = 107, - TK_RightShift = 100, - TK_LeftShift = 101, + TK_Bang = 57, + TK_Slash = 113, + TK_Percent = 114, + TK_RightShift = 88, + TK_LeftShift = 89, TK_LT = 71, - TK_GT = 84, - TK_LE = 108, - TK_GE = 109, - TK_EQ = 110, - TK_NE = 111, - TK_Caret = 112, - TK_Or = 113, - TK_AndAnd = 114, + TK_GT = 78, + TK_LE = 102, + TK_GE = 103, + TK_EQ = 106, + TK_NE = 107, + TK_Caret = 108, + TK_Or = 109, + TK_AndAnd = 110, TK_OrOr = 115, - TK_Question = 119, - TK_Colon = 83, + TK_Question = 116, + TK_Colon = 84, TK_ColonColon = 6, - TK_DotDotDot = 102, + TK_DotDotDot = 104, TK_Assign = 86, - TK_StarAssign = 120, - TK_SlashAssign = 121, - TK_PercentAssign = 122, - TK_PlusAssign = 123, - TK_MinusAssign = 124, - TK_RightShiftAssign = 125, - TK_LeftShiftAssign = 126, - TK_AndAssign = 127, - TK_CaretAssign = 128, - TK_OrAssign = 129, - TK_Comma = 79, - TK_RightBracket = 104, - TK_RightParen = 80, + TK_StarAssign = 117, + TK_SlashAssign = 118, + TK_PercentAssign = 119, + TK_PlusAssign = 120, + TK_MinusAssign = 121, + TK_RightShiftAssign = 122, + TK_LeftShiftAssign = 123, + TK_AndAssign = 124, + TK_CaretAssign = 125, + TK_OrAssign = 126, + TK_Comma = 73, + TK_RightBracket = 111, + TK_RightParen = 79, TK_RightBrace = 87, - TK_SemiColon = 51, - TK_LeftBrace = 72, - TK_typeof = 32, - TK___alignof__ = 65, + TK_SemiColon = 65, + TK_LeftBrace = 75, + TK_typeof = 37, + TK___alignof__ = 64, TK___attribute__ = 8, TK___declspec = 9, - TK_MAX = 116, - TK_MIN = 117, + TK_MAX = 127, + TK_MIN = 128, TK_vector = 3, TK_pixel = 2, TK__Decimal32 = 29, TK__Decimal64 = 30, TK__Decimal128 = 31, - TK___static_assert = 76, - TK_ERROR_TOKEN = 77, + TK___static_assert = 80, + TK_ERROR_TOKEN = 81, TK_EOF_TOKEN = 135; public final static String orderedTerminalSymbols[] = { @@ -166,9 +166,9 @@ public interface XlcCPPParsersym { "__declspec", "Tilde", "operator", - "EndOfCompletion", "Star", "And", + "EndOfCompletion", "bool", "char", "float", @@ -176,8 +176,8 @@ public interface XlcCPPParsersym { "long", "short", "signed", - "typename", "unsigned", + "typename", "_Complex", "_Imaginary", "double", @@ -186,12 +186,12 @@ public interface XlcCPPParsersym { "_Decimal32", "_Decimal64", "_Decimal128", - "typeof", "const", "volatile", "restrict", "static", "virtual", + "typeof", "auto", "explicit", "extern", @@ -205,7 +205,6 @@ public interface XlcCPPParsersym { "Minus", "PlusPlus", "MinusMinus", - "SemiColon", "false", "this", "true", @@ -220,28 +219,31 @@ public interface XlcCPPParsersym { "static_cast", "typeid", "__alignof__", + "SemiColon", "class", "template", "enum", "struct", "union", "LT", - "LeftBrace", - "namespace", - "throw", - "using", - "__static_assert", - "ERROR_TOKEN", "LeftBracket", "Comma", + "throw", + "LeftBrace", + "namespace", + "using", + "GT", "RightParen", + "__static_assert", + "ERROR_TOKEN", "delete", "new", "Colon", - "GT", "try", "Assign", "RightBrace", + "RightShift", + "LeftShift", "while", "break", "case", @@ -254,25 +256,20 @@ public interface XlcCPPParsersym { "if", "return", "switch", - "RightShift", - "LeftShift", - "DotDotDot", - "ArrowStar", - "RightBracket", - "DotStar", - "Slash", - "Percent", "LE", "GE", + "DotDotDot", + "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd", + "RightBracket", + "DotStar", + "Slash", + "Percent", "OrOr", - "MAX", - "MIN", - "Arrow", "Question", "StarAssign", "SlashAssign", @@ -284,6 +281,9 @@ public interface XlcCPPParsersym { "AndAssign", "CaretAssign", "OrAssign", + "MAX", + "MIN", + "Arrow", "catch", "private", "protected",