@ -3539,22 +3539,20 @@ out expr);
@@ -3539,22 +3539,20 @@ out expr);
pexpr = new IdentifierExpression ( t . val ) ;
break ;
}
case 1 0 : case 5 2 : case 5 4 : case 6 5 : case 7 6 : case 7 7 : case 8 4 : case 1 1 1 : case 1 1 7 : case 1 3 3 : case 1 5 9 : case 1 6 0 : case 1 6 5 : case 1 9 0 : case 1 9 1 : case 1 9 2 : case 1 9 3 : {
case 5 2 : case 5 4 : case 6 5 : case 7 6 : case 7 7 : case 8 4 : case 1 1 1 : case 1 1 7 : case 1 3 3 : case 1 5 9 : case 1 6 0 : case 1 6 5 : case 1 9 0 : case 1 9 1 : case 1 9 2 : case 1 9 3 : {
#line 1566 "VBNET.ATG"
string val = String . Empty ;
if ( StartOf ( 2 9 ) ) {
if ( StartOf ( 9 ) ) {
PrimitiveTypeName (
if ( StartOf ( 9 ) ) {
PrimitiveTypeName (
#line 1567 "VBNET.ATG"
out val ) ;
} else {
lexer . NextToken ( ) ;
} else if ( la . kind = = 1 3 3 ) {
lexer . NextToken ( ) ;
#line 1567 "VBNET.ATG"
val = "Object" ;
}
}
val = "Object" ;
} else SynErr ( 2 3 9 ) ;
Expect ( 1 0 ) ;
#line 1568 "VBNET.ATG"
@ -3586,7 +3584,7 @@ out val);
@@ -3586,7 +3584,7 @@ out val);
#line 1572 "VBNET.ATG"
retExpr = new ClassReferenceExpression ( ) ;
} else SynErr ( 2 3 9 ) ;
} else SynErr ( 2 4 0 ) ;
Expect ( 1 0 ) ;
IdentifierOrKeyword (
#line 1574 "VBNET.ATG"
@ -3636,7 +3634,7 @@ out expr);
@@ -3636,7 +3634,7 @@ out expr);
#line 1585 "VBNET.ATG"
castType = CastType . TryCast ;
} else SynErr ( 2 4 0 ) ;
} else SynErr ( 2 4 1 ) ;
Expect ( 2 4 ) ;
Expr (
#line 1587 "VBNET.ATG"
@ -3720,7 +3718,7 @@ out name);
@@ -3720,7 +3718,7 @@ out name);
#line 1598 "VBNET.ATG"
ref pexpr ) ;
}
} else SynErr ( 2 4 1 ) ;
} else SynErr ( 2 4 2 ) ;
}
void PrimitiveTypeName (
@ -3835,7 +3833,7 @@ out string type) {
@@ -3835,7 +3833,7 @@ out string type) {
type = "SByte" ;
break ;
}
default : SynErr ( 2 4 2 ) ; break ;
default : SynErr ( 2 4 3 ) ; break ;
}
}
@ -3967,7 +3965,7 @@ out TypeReference type) {
@@ -3967,7 +3965,7 @@ out TypeReference type) {
type = new TypeReference ( "System.String" ) ;
break ;
}
default : SynErr ( 2 4 3 ) ; break ;
default : SynErr ( 2 4 4 ) ; break ;
}
}
@ -4009,7 +4007,7 @@ out name);
@@ -4009,7 +4007,7 @@ out name);
InvocationExpression (
#line 1606 "VBNET.ATG"
ref pexpr ) ;
} else SynErr ( 2 4 4 ) ;
} else SynErr ( 2 4 5 ) ;
}
void InvocationExpression (
@ -4057,8 +4055,8 @@ out parameters);
@@ -4057,8 +4055,8 @@ out parameters);
#line 1628 "VBNET.ATG"
pexpr = new InvocationExpression ( pexpr , parameters , typeParameters ) ;
} else SynErr ( 2 4 5 ) ;
} else if ( StartOf ( 3 0 ) ) {
} else SynErr ( 2 4 6 ) ;
} else if ( StartOf ( 2 9 ) ) {
ArgumentList (
#line 1630 "VBNET.ATG"
out parameters ) ;
@ -4066,7 +4064,7 @@ out parameters);
@@ -4066,7 +4064,7 @@ out parameters);
#line 1632 "VBNET.ATG"
pexpr = new InvocationExpression ( pexpr , parameters , typeParameters ) ;
} else SynErr ( 2 4 6 ) ;
} else SynErr ( 2 4 7 ) ;
#line 1634 "VBNET.ATG"
pexpr . StartLocation = start ; pexpr . EndLocation = t . Location ;
@ -4169,7 +4167,7 @@ out Expression outExpr) {
@@ -4169,7 +4167,7 @@ out Expression outExpr) {
ShiftExpr (
#line 1706 "VBNET.ATG"
out outExpr ) ;
while ( StartOf ( 3 1 ) ) {
while ( StartOf ( 3 0 ) ) {
switch ( la . kind ) {
case 2 7 : {
lexer . NextToken ( ) ;
@ -4235,7 +4233,7 @@ out outExpr);
@@ -4235,7 +4233,7 @@ out outExpr);
break ;
}
}
if ( StartOf ( 3 2 ) ) {
if ( StartOf ( 3 1 ) ) {
ShiftExpr (
#line 1720 "VBNET.ATG"
out expr ) ;
@ -4250,7 +4248,7 @@ out expr);
@@ -4250,7 +4248,7 @@ out expr);
#line 1723 "VBNET.ATG"
outExpr = new BinaryOperatorExpression ( outExpr , op , new UnaryOperatorExpression ( expr , UnaryOperatorType . Not ) ) ;
} else SynErr ( 2 4 7 ) ;
} else SynErr ( 2 4 8 ) ;
}
}
@ -4530,7 +4528,7 @@ out expr);
@@ -4530,7 +4528,7 @@ out expr);
Expr (
#line 1873 "VBNET.ATG"
out argumentexpr ) ;
} else SynErr ( 2 4 8 ) ;
} else SynErr ( 2 4 9 ) ;
}
void QualIdentAndTypeArguments (
@ -4566,7 +4564,7 @@ canBeUnbound && (la.kind == Tokens.CloseParenthesis || la.kind == Tokens.Comma))
@@ -4566,7 +4564,7 @@ canBeUnbound && (la.kind == Tokens.CloseParenthesis || la.kind == Tokens.Comma))
TypeArgumentList (
#line 1929 "VBNET.ATG"
typeref . GenericTypes ) ;
} else SynErr ( 2 4 9 ) ;
} else SynErr ( 2 5 0 ) ;
Expect ( 2 5 ) ;
}
}
@ -4691,7 +4689,7 @@ out name);
@@ -4691,7 +4689,7 @@ out name);
#line 2042 "VBNET.ATG"
if ( nameFound ) Error ( "no positional argument after named argument" ) ;
} else SynErr ( 2 5 0 ) ;
} else SynErr ( 2 5 1 ) ;
Expr (
#line 2043 "VBNET.ATG"
out expr ) ;
@ -4716,7 +4714,7 @@ out ParameterDeclarationExpression p) {
@@ -4716,7 +4714,7 @@ out ParameterDeclarationExpression p) {
Expression expr = null ;
p = null ; ArrayList arrayModifiers = null ;
while ( StartOf ( 3 3 ) ) {
while ( StartOf ( 3 2 ) ) {
ParameterModifier (
#line 2119 "VBNET.ATG"
mod ) ;
@ -4788,7 +4786,7 @@ ParamModifiers m) {
@@ -4788,7 +4786,7 @@ ParamModifiers m) {
#line 2773 "VBNET.ATG"
m . Add ( ParamModifier . Params ) ;
} else SynErr ( 2 5 1 ) ;
} else SynErr ( 2 5 2 ) ;
}
void Statement ( ) {
@ -4812,21 +4810,21 @@ out label);
@@ -4812,21 +4810,21 @@ out label);
Expect ( 1 3 ) ;
Statement ( ) ;
} else if ( StartOf ( 3 4 ) ) {
} else if ( StartOf ( 3 3 ) ) {
EmbeddedStatement (
#line 2176 "VBNET.ATG"
out stmt ) ;
#line 2176 "VBNET.ATG"
compilationUnit . AddChild ( stmt ) ;
} else if ( StartOf ( 3 5 ) ) {
} else if ( StartOf ( 3 4 ) ) {
LocalDeclarationStatement (
#line 2177 "VBNET.ATG"
out stmt ) ;
#line 2177 "VBNET.ATG"
compilationUnit . AddChild ( stmt ) ;
} else SynErr ( 2 5 2 ) ;
} else SynErr ( 2 5 3 ) ;
#line 2180 "VBNET.ATG"
if ( stmt ! = null ) {
@ -4853,7 +4851,7 @@ out string name) {
@@ -4853,7 +4851,7 @@ out string name) {
#line 2561 "VBNET.ATG"
name = t . val ;
} else SynErr ( 2 5 3 ) ;
} else SynErr ( 2 5 4 ) ;
}
void EmbeddedStatement (
@ -4930,7 +4928,7 @@ out Statement statement) {
@@ -4930,7 +4928,7 @@ out Statement statement) {
exitType = ExitType . Select ;
break ;
}
default : SynErr ( 2 5 4 ) ; break ;
default : SynErr ( 2 5 5 ) ; break ;
}
#line 2245 "VBNET.ATG"
@ -5019,7 +5017,7 @@ out embeddedStatement);
@@ -5019,7 +5017,7 @@ out embeddedStatement);
name = t . val ;
if ( la . kind = = 2 4 ) {
lexer . NextToken ( ) ;
if ( StartOf ( 3 0 ) ) {
if ( StartOf ( 2 9 ) ) {
ArgumentList (
#line 2257 "VBNET.ATG"
out p ) ;
@ -5133,7 +5131,7 @@ out expr);
@@ -5133,7 +5131,7 @@ out expr);
#line 2299 "VBNET.ATG"
statement = new DoLoopStatement ( expr , embeddedStatement , conditionType , ConditionPosition . End ) ;
} else SynErr ( 2 5 5 ) ;
} else SynErr ( 2 5 6 ) ;
break ;
}
case 9 8 : {
@ -5226,7 +5224,7 @@ out nextExpr);
@@ -5226,7 +5224,7 @@ out nextExpr);
#line 2341 "VBNET.ATG"
statement = new ForNextStatement ( typeReference , typeName , start , end , step , embeddedStatement , nextExpressions ) ;
} else SynErr ( 2 5 6 ) ;
} else SynErr ( 2 5 7 ) ;
break ;
}
case 9 2 : {
@ -5377,7 +5375,7 @@ out embeddedStatement);
@@ -5377,7 +5375,7 @@ out embeddedStatement);
#line 2401 "VBNET.ATG"
statement = ifStatement ;
} else if ( StartOf ( 3 4 ) ) {
} else if ( StartOf ( 3 3 ) ) {
EmbeddedStatement (
#line 2404 "VBNET.ATG"
out embeddedStatement ) ;
@ -5396,7 +5394,7 @@ out embeddedStatement);
@@ -5396,7 +5394,7 @@ out embeddedStatement);
}
if ( la . kind = = 8 6 ) {
lexer . NextToken ( ) ;
if ( StartOf ( 3 4 ) ) {
if ( StartOf ( 3 3 ) ) {
EmbeddedStatement (
#line 2410 "VBNET.ATG"
out embeddedStatement ) ;
@ -5418,7 +5416,7 @@ out embeddedStatement);
@@ -5418,7 +5416,7 @@ out embeddedStatement);
#line 2419 "VBNET.ATG"
statement = ifStatement ;
} else SynErr ( 2 5 7 ) ;
} else SynErr ( 2 5 8 ) ;
break ;
}
case 1 5 5 : {
@ -5517,7 +5515,7 @@ out resumeStatement);
@@ -5517,7 +5515,7 @@ out resumeStatement);
SimpleExpr (
#line 2454 "VBNET.ATG"
out expr ) ;
if ( StartOf ( 3 6 ) ) {
if ( StartOf ( 3 5 ) ) {
AssignmentOperator (
#line 2456 "VBNET.ATG"
out op ) ;
@ -5531,7 +5529,7 @@ out val);
@@ -5531,7 +5529,7 @@ out val);
#line 2457 "VBNET.ATG"
if ( mustBeAssignment ) Error ( "error in assignment." ) ;
} else SynErr ( 2 5 8 ) ;
} else SynErr ( 2 5 9 ) ;
#line 2460 "VBNET.ATG"
// a field reference expression that stands alone is a
@ -5589,12 +5587,12 @@ out block);
@@ -5589,12 +5587,12 @@ out block);
#line 2480 "VBNET.ATG"
statement = new UsingStatement ( new StatementExpression ( expr ) , block ) ;
} else SynErr ( 2 5 9 ) ;
} else SynErr ( 2 6 0 ) ;
Expect ( 8 8 ) ;
Expect ( 1 8 8 ) ;
break ;
}
default : SynErr ( 2 6 0 ) ; break ;
default : SynErr ( 2 6 1 ) ; break ;
}
}
@ -5736,7 +5734,7 @@ out ConditionType conditionType) {
@@ -5736,7 +5734,7 @@ out ConditionType conditionType) {
#line 2642 "VBNET.ATG"
conditionType = ConditionType . Until ;
} else SynErr ( 2 6 1 ) ;
} else SynErr ( 2 6 2 ) ;
}
void LoopControlVariable (
@ -5852,7 +5850,7 @@ out goToStatement);
@@ -5852,7 +5850,7 @@ out goToStatement);
#line 2538 "VBNET.ATG"
stmt = new OnErrorStatement ( new ResumeStatement ( true ) ) ;
} else SynErr ( 2 6 2 ) ;
} else SynErr ( 2 6 3 ) ;
}
void GotoStatement (
@ -5890,7 +5888,7 @@ IsResumeNext()) {
@@ -5890,7 +5888,7 @@ IsResumeNext()) {
resumeStatement = new ResumeStatement ( true ) ;
} else if ( la . kind = = 1 5 3 ) {
lexer . NextToken ( ) ;
if ( StartOf ( 3 7 ) ) {
if ( StartOf ( 3 6 ) ) {
LabelName (
#line 2595 "VBNET.ATG"
out label ) ;
@ -5898,7 +5896,7 @@ out label);
@@ -5898,7 +5896,7 @@ out label);
#line 2595 "VBNET.ATG"
resumeStatement = new ResumeStatement ( label ) ;
} else SynErr ( 2 6 3 ) ;
} else SynErr ( 2 6 4 ) ;
}
void CaseClause (
@ -5916,7 +5914,7 @@ out CaseLabel caseClause) {
@@ -5916,7 +5914,7 @@ out CaseLabel caseClause) {
#line 2617 "VBNET.ATG"
caseClause = new CaseLabel ( ) ;
} else if ( StartOf ( 3 8 ) ) {
} else if ( StartOf ( 3 7 ) ) {
if ( la . kind = = 1 1 3 ) {
lexer . NextToken ( ) ;
}
@ -5963,7 +5961,7 @@ out CaseLabel caseClause) {
@@ -5963,7 +5961,7 @@ out CaseLabel caseClause) {
op = BinaryOperatorType . InEquality ;
break ;
}
default : SynErr ( 2 6 4 ) ; break ;
default : SynErr ( 2 6 5 ) ; break ;
}
Expr (
#line 2628 "VBNET.ATG"
@ -5986,7 +5984,7 @@ out sexpr);
@@ -5986,7 +5984,7 @@ out sexpr);
#line 2634 "VBNET.ATG"
caseClause = new CaseLabel ( expr , sexpr ) ;
} else SynErr ( 2 6 5 ) ;
} else SynErr ( 2 6 6 ) ;
}
void CatchClauses (
@ -6285,30 +6283,31 @@ out blockStmt);
@@ -6285,30 +6283,31 @@ out blockStmt);
case 2 3 9 : s = "invalid SimpleExpr" ; break ;
case 2 4 0 : s = "invalid SimpleExpr" ; break ;
case 2 4 1 : s = "invalid SimpleExpr" ; break ;
case 2 4 2 : s = "invalid PrimitiveTypeName " ; break ;
case 2 4 3 : s = "invalid CastTarget " ; break ;
case 2 4 4 : s = "invalid InvocationOrMemberReferenceExpression " ; break ;
case 2 4 5 : s = "invalid InvocationExpression" ; break ;
case 2 4 2 : s = "invalid SimpleExpr " ; break ;
case 2 4 3 : s = "invalid PrimitiveTypeName " ; break ;
case 2 4 4 : s = "invalid CastTarget " ; break ;
case 2 4 5 : s = "invalid InvocationOrMemberReference Expression" ; break ;
case 2 4 6 : s = "invalid InvocationExpression" ; break ;
case 2 4 7 : s = "invalid ComparisonExpr " ; break ;
case 2 4 8 : s = "invalid Argument " ; break ;
case 2 4 9 : s = "invalid QualIdentAndType Arguments " ; break ;
case 2 5 0 : s = "invalid Attribut eArguments" ; break ;
case 2 5 1 : s = "invalid ParameterModifier " ; break ;
case 2 5 2 : s = "invalid Statement " ; break ;
case 2 5 3 : s = "invalid LabelName " ; break ;
case 2 5 4 : s = "invalid EmbeddedStatement " ; break ;
case 2 4 7 : s = "invalid InvocationExpression " ; break ;
case 2 4 8 : s = "invalid ComparisonExpr " ; break ;
case 2 4 9 : s = "invalid Argument" ; break ;
case 2 5 0 : s = "invalid QualIdentAndTyp eArguments" ; break ;
case 2 5 1 : s = "invalid AttributeArguments " ; break ;
case 2 5 2 : s = "invalid ParameterModifier " ; break ;
case 2 5 3 : s = "invalid Statement " ; break ;
case 2 5 4 : s = "invalid LabelName " ; break ;
case 2 5 5 : s = "invalid EmbeddedStatement" ; break ;
case 2 5 6 : s = "invalid EmbeddedStatement" ; break ;
case 2 5 7 : s = "invalid EmbeddedStatement" ; break ;
case 2 5 8 : s = "invalid EmbeddedStatement" ; break ;
case 2 5 9 : s = "invalid EmbeddedStatement" ; break ;
case 2 6 0 : s = "invalid EmbeddedStatement" ; break ;
case 2 6 1 : s = "invalid WhileOrUntil " ; break ;
case 2 6 2 : s = "invalid OnErrorStatement " ; break ;
case 2 6 3 : s = "invalid Resume Statement" ; break ;
case 2 6 4 : s = "invalid CaseClause " ; break ;
case 2 6 1 : s = "invalid EmbeddedStatement " ; break ;
case 2 6 2 : s = "invalid WhileOrUntil " ; break ;
case 2 6 3 : s = "invalid OnError Statement" ; break ;
case 2 6 4 : s = "invalid ResumeStatement " ; break ;
case 2 6 5 : s = "invalid CaseClause" ; break ;
case 2 6 6 : s = "invalid CaseClause" ; break ;
default : s = "error " + errorNumber ; break ;
}
@ -6349,8 +6348,7 @@ out blockStmt);
@@ -6349,8 +6348,7 @@ out blockStmt);
{ x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , T , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x } ,
{ x , x , T , T , T , T , T , T , T , T , T , x , x , x , T , T , T , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , T , x , T , T , T , T , x , T , x , x , x , x , T , T , T , T , T , T , T , T , x , T , T , T , x , T , T , T , T , T , T , x , x , x , x , T , x , T , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , T , x , x , x , x , x , x , x , x , T , x , x , x , x , x , T , x , T , x , x , x , x , T , T , x , T , x , T , T , x , x , T , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , T , x , x , x , x , T , x , x , x , T , x , x , x , T , x , T , T , T , x , x , x , x , x , x , x , x , x , x , x , x , T , T , T , T , T , T , T , T , T , T , x , x , x , x , T , x , x } ,
{ x , x , T , T , T , T , T , T , T , T , T , x , x , x , T , T , T , x , x , x , x , x , T , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , T , x , T , T , T , T , x , T , x , x , x , x , T , T , T , T , T , T , T , T , x , T , T , T , x , T , T , T , T , T , T , x , x , x , x , T , x , T , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , T , x , x , x , x , x , x , x , x , T , x , x , x , x , x , T , x , T , x , x , x , x , T , T , x , T , x , T , T , x , x , T , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , T , x , x , x , x , T , x , x , x , T , x , x , x , T , x , T , T , T , x , x , x , x , x , x , x , x , x , x , x , x , T , T , T , T , T , T , T , T , T , T , x , x , x , x , T , x , x } ,
{ x , x , T , T , T , T , T , T , T , T , T , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , T , x , T , T , T , T , x , T , x , x , x , x , T , T , T , T , T , T , T , T , x , T , T , T , x , T , T , T , T , T , T , x , x , x , x , T , x , T , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , T , x , x , x , x , x , x , x , x , T , x , x , x , x , x , T , x , T , x , x , x , x , T , T , x , T , x , x , T , x , x , T , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , T , x , x , x , x , T , x , x , x , T , x , x , x , T , x , T , T , T , x , x , x , x , x , x , x , x , x , x , x , x , T , T , T , T , T , T , T , T , T , T , x , x , x , x , T , x , x } ,
{ x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , T , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , T , T , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , T , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , T , T , T , x , x , x , x , x , x , x , x , x , x , x , x , x } ,
{ x , x , T , T , T , T , T , T , T , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , T , x , T , T , T , T , x , T , x , x , x , x , T , T , T , T , T , T , T , T , x , T , T , T , x , T , T , T , T , T , T , x , x , x , x , T , x , T , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , T , x , x , x , x , x , x , x , x , T , x , x , x , x , x , T , x , T , x , x , x , x , T , T , x , T , x , x , T , x , x , T , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , T , x , x , x , x , T , x , x , x , T , x , x , x , T , x , T , T , T , x , x , x , x , x , x , x , x , x , x , x , x , T , T , T , T , T , T , T , T , T , T , x , x , x , x , T , x , x } ,
{ x , x , T , T , T , T , T , T , T , T , T , x , T , x , T , T , T , x , x , x , x , x , x , x , T , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , T , x , T , T , T , T , x , T , x , x , x , x , T , T , T , T , T , T , T , T , x , T , T , T , x , T , T , T , T , T , T , x , x , x , x , T , x , T , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , T , x , x , x , x , x , x , x , x , T , x , x , x , x , x , T , x , T , x , x , x , x , T , T , x , T , x , T , T , x , x , T , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , T , x , x , x , x , T , x , x , x , T , x , x , x , T , x , T , T , T , x , x , x , x , x , x , x , x , x , x , x , x , T , T , T , T , T , T , T , T , T , T , x , x , x , x , T , x , x } ,
{ x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , T , T , T , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x } ,
{ x , x , T , T , T , T , T , T , T , T , T , x , x , x , T , T , T , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , T , x , T , T , T , T , x , T , x , x , x , x , T , T , T , T , T , T , T , T , x , T , T , T , x , T , T , T , T , T , T , x , x , x , x , T , x , T , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , T , x , x , x , x , x , x , x , x , T , x , x , x , x , x , T , x , T , x , x , x , x , T , T , x , T , x , x , T , x , x , T , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , T , x , x , x , x , T , x , x , x , T , x , x , x , T , x , T , T , T , x , x , x , x , x , x , x , x , x , x , x , x , T , T , T , T , T , T , T , T , T , T , x , x , x , x , T , x , x } ,