/* Web Polygraph       http://www.web-polygraph.org/
 * (C) 2003-2006 The Measurement Factory
 * Licensed under the Apache License, Version 2.0 */

#include "pgl/pgl.h"

#include "xparser/ParsSym.h"
#include "pgl/PglParser.h"





static
SynSym *p_StatementSeq_1(SynSym **) {
	// StatementSeq = .
	ParsSym *p = new ParsSym("StatementSeq", 0);
	return p;
}

static
SynSym *p_SimpleStatement_2(SynSym **) {
	// SimpleStatement = .
	ParsSym *p = new ParsSym("SimpleStatement", 0);
	return p;
}

static
SynSym *p_Code_3(SynSym **base) {
	// Code = StatementSeq .
	ParsSym *p = new ParsSym("Code", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_StatementSeq_4(SynSym **base) {
	// StatementSeq = Statement StatementSeq .
	ParsSym *p = new ParsSym("StatementSeq", 2);
	p->append(*base[1]);
	p->append(*base[2]);
	return p;
}

static
SynSym *p_Statement_5(SynSym **base) {
	// Statement = SimpleStatement SEMICOLON .
	ParsSym *p = new ParsSym("Statement", 2);
	p->append(*base[1]);
	p->append(*base[2]);
	return p;
}

static
SynSym *p_Statement_6(SynSym **base) {
	// Statement = IfCode .
	ParsSym *p = new ParsSym("Statement", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Statement_7(SynSym **base) {
	// Statement = EveryCode .
	ParsSym *p = new ParsSym("Statement", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Statement_8(SynSym **base) {
	// Statement = LEFTBRACE Code RIGHTBRACE .
	ParsSym *p = new ParsSym("Statement", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_SimpleStatement_9(SynSym **base) {
	// SimpleStatement = ExprStatement .
	ParsSym *p = new ParsSym("SimpleStatement", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_SimpleStatement_10(SynSym **base) {
	// SimpleStatement = DeclStatement .
	ParsSym *p = new ParsSym("SimpleStatement", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_DeclStatement_11(SynSym **base) {
	// DeclStatement = PureDecl .
	ParsSym *p = new ParsSym("DeclStatement", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_DeclStatement_12(SynSym **base) {
	// DeclStatement = ExprInitDecl .
	ParsSym *p = new ParsSym("DeclStatement", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_DeclStatement_13(SynSym **base) {
	// DeclStatement = CodeInitDecl .
	ParsSym *p = new ParsSym("DeclStatement", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_ExprStatement_14(SynSym **base) {
	// ExprStatement = Assignment .
	ParsSym *p = new ParsSym("ExprStatement", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_ExprStatement_15(SynSym **base) {
	// ExprStatement = Call .
	ParsSym *p = new ParsSym("ExprStatement", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_PureDecl_16(SynSym **base) {
	// PureDecl = TypeName ObjName .
	ParsSym *p = new ParsSym("PureDecl", 2);
	p->append(*base[1]);
	p->append(*base[2]);
	return p;
}

static
SynSym *p_ExprInitDecl_17(SynSym **base) {
	// ExprInitDecl = TypeName ObjName ASGN Expression .
	ParsSym *p = new ParsSym("ExprInitDecl", 4);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	p->append(*base[4]);
	return p;
}

static
SynSym *p_Expression_18(SynSym **base) {
	// Expression = Bool .
	ParsSym *p = new ParsSym("Expression", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Expression_19(SynSym **base) {
	// Expression = Int .
	ParsSym *p = new ParsSym("Expression", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Expression_20(SynSym **base) {
	// Expression = Num .
	ParsSym *p = new ParsSym("Expression", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Expression_21(SynSym **base) {
	// Expression = Time .
	ParsSym *p = new ParsSym("Expression", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Expression_22(SynSym **base) {
	// Expression = Size .
	ParsSym *p = new ParsSym("Expression", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Expression_23(SynSym **base) {
	// Expression = DQW_STR .
	ParsSym *p = new ParsSym("Expression", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Expression_24(SynSym **base) {
	// Expression = SQW_STR .
	ParsSym *p = new ParsSym("Expression", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_ObjName_25(SynSym **base) {
	// ObjName = ID .
	ParsSym *p = new ParsSym("ObjName", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Expression_26(SynSym **base) {
	// Expression = ID RE_CUSTOM .
	ParsSym *p = new ParsSym("Expression", 2);
	p->append(*base[1]);
	p->append(*base[2]);
	return p;
}

static
SynSym *p_Expression_27(SynSym **base) {
	// Expression = ID RE_DEFAULT .
	ParsSym *p = new ParsSym("Expression", 2);
	p->append(*base[1]);
	p->append(*base[2]);
	return p;
}

static
SynSym *p_List_28(SynSym **) {
	// List = .
	ParsSym *p = new ParsSym("List", 0);
	return p;
}

static
SynSym *p_Expression_29(SynSym **base) {
	// Expression = Qualif .
	ParsSym *p = new ParsSym("Expression", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Expression_30(SynSym **base) {
	// Expression = ObjName .
	ParsSym *p = new ParsSym("Expression", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Expression_31(SynSym **base) {
	// Expression = PLUS Expression .
	ParsSym *p = new ParsSym("Expression", 2);
	p->append(*base[1]);
	p->append(*base[2]);
	return p;
}

static
SynSym *p_Expression_32(SynSym **base) {
	// Expression = MINUS Expression .
	ParsSym *p = new ParsSym("Expression", 2);
	p->append(*base[1]);
	p->append(*base[2]);
	return p;
}

static
SynSym *p_Expression_33(SynSym **base) {
	// Expression = NOT Expression .
	ParsSym *p = new ParsSym("Expression", 2);
	p->append(*base[1]);
	p->append(*base[2]);
	return p;
}

static
SynSym *p_Expression_34(SynSym **base) {
	// Expression = Expression DIV Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_35(SynSym **base) {
	// Expression = Expression BOOL_AND Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_36(SynSym **base) {
	// Expression = Expression BOOL_OR Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_37(SynSym **base) {
	// Expression = Expression BOOL_XOR Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_38(SynSym **base) {
	// Expression = Expression EQUAL Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_39(SynSym **base) {
	// Expression = Expression NEQUAL Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_40(SynSym **base) {
	// Expression = Expression LT Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_41(SynSym **base) {
	// Expression = Expression LTE Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_42(SynSym **base) {
	// Expression = Expression GT Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_43(SynSym **base) {
	// Expression = Expression GTE Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_44(SynSym **base) {
	// Expression = Expression POWER Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_45(SynSym **base) {
	// Expression = Expression CLONE Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_46(SynSym **base) {
	// Expression = Expression THRU Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Array_47(SynSym **) {
	// Array = .
	ParsSym *p = new ParsSym("Array", 0);
	return p;
}

static
SynSym *p_Array_48(SynSym **base) {
	// Array = Expression .
	ParsSym *p = new ParsSym("Array", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Array_49(SynSym **base) {
	// Array = Expression COLON Expression .
	ParsSym *p = new ParsSym("Array", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_50(SynSym **base) {
	// Expression = Call .
	ParsSym *p = new ParsSym("Expression", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Expression_51(SynSym **base) {
	// Expression = LEFTPARENT Expression RIGHTPARENT .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Bool_52(SynSym **base) {
	// Bool = BOOL_TRUE .
	ParsSym *p = new ParsSym("Bool", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Bool_53(SynSym **base) {
	// Bool = BOOL_FALSE .
	ParsSym *p = new ParsSym("Bool", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Int_54(SynSym **base) {
	// Int = INT .
	ParsSym *p = new ParsSym("Int", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Num_55(SynSym **base) {
	// Num = NUM .
	ParsSym *p = new ParsSym("Num", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Num_56(SynSym **base) {
	// Num = NUM_PERC .
	ParsSym *p = new ParsSym("Num", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Time_57(SynSym **base) {
	// Time = TIME .
	ParsSym *p = new ParsSym("Time", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Size_58(SynSym **base) {
	// Size = SIZE .
	ParsSym *p = new ParsSym("Size", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Qualif_59(SynSym **base) {
	// Qualif = kw_lmt .
	ParsSym *p = new ParsSym("Qualif", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Qualif_60(SynSym **base) {
	// Qualif = kw_now .
	ParsSym *p = new ParsSym("Qualif", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Qualif_61(SynSym **base) {
	// Qualif = kw_nmt .
	ParsSym *p = new ParsSym("Qualif", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_Expression_62(SynSym **base) {
	// Expression = LEFTBRACKET Array RIGHTBRACKET .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Array_63(SynSym **base) {
	// Array = Array COMMA Expression .
	ParsSym *p = new ParsSym("Array", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Array_64(SynSym **base) {
	// Array = Array COMMA Expression COLON Expression .
	ParsSym *p = new ParsSym("Array", 5);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	p->append(*base[4]);
	p->append(*base[5]);
	return p;
}

static
SynSym *p_Expression_65(SynSym **base) {
	// Expression = Expression MUL Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_66(SynSym **base) {
	// Expression = Expression MINUS Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_List_67(SynSym **base) {
	// List = Expression .
	ParsSym *p = new ParsSym("List", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_List_68(SynSym **base) {
	// List = List COMMA Expression .
	ParsSym *p = new ParsSym("List", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Call_69(SynSym **base) {
	// Call = ID LEFTPARENT List RIGHTPARENT .
	ParsSym *p = new ParsSym("Call", 4);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	p->append(*base[4]);
	return p;
}

static
SynSym *p_ObjName_70(SynSym **base) {
	// ObjName = ID PERIOD ObjName .
	ParsSym *p = new ParsSym("ObjName", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Expression_71(SynSym **base) {
	// Expression = Expression PLUS Expression .
	ParsSym *p = new ParsSym("Expression", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_CodeInitDecl_72(SynSym **base) {
	// CodeInitDecl = TypeName ObjName ASGN LEFTBRACE Code RIGHTBRACE .
	ParsSym *p = new ParsSym("CodeInitDecl", 6);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	p->append(*base[4]);
	p->append(*base[5]);
	p->append(*base[6]);
	return p;
}

static
SynSym *p_Assignment_73(SynSym **base) {
	// Assignment = ObjName ASGN Expression .
	ParsSym *p = new ParsSym("Assignment", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_Assignment_74(SynSym **base) {
	// Assignment = ObjName ASGN LEFTBRACE Code RIGHTBRACE .
	ParsSym *p = new ParsSym("Assignment", 5);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	p->append(*base[4]);
	p->append(*base[5]);
	return p;
}

static
SynSym *p_Assignment_75(SynSym **base) {
	// Assignment = LEFTBRACKET Array RIGHTBRACKET ASGN Expression .
	ParsSym *p = new ParsSym("Assignment", 5);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	p->append(*base[4]);
	p->append(*base[5]);
	return p;
}

static
SynSym *p_TypeName_76(SynSym **base) {
	// TypeName = ID .
	ParsSym *p = new ParsSym("TypeName", 1);
	p->append(*base[1]);
	return p;
}

static
SynSym *p_TypeName_77(SynSym **base) {
	// TypeName = ID LEFTBRACKET RIGHTBRACKET .
	ParsSym *p = new ParsSym("TypeName", 3);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	return p;
}

static
SynSym *p_IfCode_78(SynSym **base) {
	// IfCode = kw_if Expression kw_then LEFTBRACE Code RIGHTBRACE .
	ParsSym *p = new ParsSym("IfCode", 6);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	p->append(*base[4]);
	p->append(*base[5]);
	p->append(*base[6]);
	return p;
}

static
SynSym *p_IfCode_79(SynSym **base) {
	// IfCode = kw_if Expression kw_then LEFTBRACE Code RIGHTBRACE kw_else LEFTBRACE Code RIGHTBRACE .
	ParsSym *p = new ParsSym("IfCode", 10);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	p->append(*base[4]);
	p->append(*base[5]);
	p->append(*base[6]);
	p->append(*base[7]);
	p->append(*base[8]);
	p->append(*base[9]);
	p->append(*base[10]);
	return p;
}

static
SynSym *p_EveryCode_80(SynSym **base) {
	// EveryCode = kw_every Expression kw_do LEFTBRACE Code RIGHTBRACE .
	ParsSym *p = new ParsSym("EveryCode", 6);
	p->append(*base[1]);
	p->append(*base[2]);
	p->append(*base[3]);
	p->append(*base[4]);
	p->append(*base[5]);
	p->append(*base[6]);
	return p;
}

#line 21 "gparserc.tpl"


PglParser::PglParser(Lexer *l) : GParser(l) {
	// static int _condTable[] = {};

	acceptState = 3;
	// condTable = _condTable;
	maxState = 141;
}

PglParser::~PglParser() {
}

int PglParser::actionTable(int state, int sym) {
	static int _actionTable[141][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, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 117, 11, 0, 0, -2, 0, 0, 0, 0, 0, 0, 
0, 0, 125, 0, 0, 135, 0, 0, 0, 2, 4, 5, 7, 9, 10, 14, 15, 16, 17, 18, 
19, 20, 21, 111, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0}, 
{0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 117, 11, -1, 0, -2, 0, 0, 0, 0, 0, 
0, 0, 0, 125, 0, 0, 135, 0, 0, 0, 0, 6, 5, 7, 9, 10, 14, 15, 16, 17, 18, 
19, 20, 21, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 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, -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, 0, 0, 0, 0, 0, 0, 0, 0, -5, -5, -5, 0, -5, 0, 0, 0, 0, 0, 0, 
0, 0, -5, 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, 0, 0, 0, 0}, 
{0, -6, -6, 0, 0, 0, 0, 0, 0, 0, 0, 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, -6, -6, 0, -6, 0, 0, 0, 0, 0, 0, 
0, 0, -6, 0, 0, -6, 0, 0, 0, 0, 0, 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, -7, 0, 0, 0, 0, 0, 0, 0, 0, 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, -7, -7, 0, -7, 0, 0, 0, 0, 0, 0, 
0, 0, -7, 0, 0, -7, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 11, -1, 0, -2, 0, 0, 0, 0, 0, 
0, 0, 0, 125, 0, 0, 135, 0, 0, 0, 12, 4, 5, 7, 9, 10, 14, 15, 16, 17, 
18, 19, 20, 21, 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, 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, 0, 0, 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, -8, 0, 0, 0, 0, 0, 0, 0, 0, 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, -8, -8, 0, -8, 0, 0, 0, 0, 0, 0, 
0, 0, -8, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 23, 0, 0, 0, 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, 
0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 108, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 24, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, 0, 
71, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 107, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, -18, -18, -18, 
-18, -18, -18, -18, -18, 0, -18, -18, -18, -18, -18, 0, 0, -18, -18, 0, 0, 
0, 0, -18, -18, -18, 0, -18, -18, 0, 0, 0, 0, -18, 0, 0, -18, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19, -19, -19, -19, 
-19, -19, -19, -19, -19, 0, -19, -19, -19, -19, -19, 0, 0, -19, -19, 0, 0, 
0, 0, -19, -19, -19, 0, -19, -19, 0, 0, 0, 0, -19, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, -20, -20, -20, 
-20, -20, -20, -20, -20, 0, -20, -20, -20, -20, -20, 0, 0, -20, -20, 0, 0, 
0, 0, -20, -20, -20, 0, -20, -20, 0, 0, 0, 0, -20, 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, -21, -21, -21, -21, 
-21, -21, -21, -21, -21, 0, -21, -21, -21, -21, -21, 0, 0, -21, -21, 0, 0, 
0, 0, -21, -21, -21, 0, -21, -21, 0, 0, 0, 0, -21, 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, 0, 0, 0, 0, 0, 0, 0, 0, -22, -22, -22, -22, 
-22, -22, -22, -22, -22, 0, -22, -22, -22, -22, -22, 0, 0, -22, -22, 0, 0, 
0, 0, -22, -22, -22, 0, -22, -22, 0, 0, 0, 0, -22, 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, -23, -23, -23, -23, 
-23, -23, -23, -23, -23, 0, -23, -23, -23, -23, -23, 0, 0, -23, -23, 0, 0, 
0, 0, -23, -23, -23, 0, -23, -23, 0, 0, 0, 0, -23, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, -24, -24, -24, 
-24, -24, -24, -24, -24, 0, -24, -24, -24, -24, -24, 0, 0, -24, -24, 0, 0, 
0, 0, -24, -24, -24, 0, -24, -24, 0, 0, 0, 0, -24, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, -25, -25, -25, 
-25, -25, -25, -25, -25, 0, -25, -25, -25, -25, -25, 0, 36, -25, -25, 0, 
0, 0, 104, -25, -25, -25, 0, -25, -25, 0, 0, 0, 0, -25, 0, 0, -25, 34, 
35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, -26, -26, -26, 
-26, -26, -26, -26, -26, 0, -26, -26, -26, -26, -26, 0, 0, -26, -26, 0, 0, 
0, 0, -26, -26, -26, 0, -26, -26, 0, 0, 0, 0, -26, 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, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, -27, -27, -27, 
-27, -27, -27, -27, -27, 0, -27, -27, -27, -27, -27, 0, 0, -27, -27, 0, 0, 
0, 0, -27, -27, -27, 0, -27, -27, 0, 0, 0, 0, -27, 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, 0, 0, 0, 0, 0}, 
{0, 0, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, -28, 0, 73, 0, 0, 0, 0, 0, 
-28, 0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 77, 0, 38, 99, 0, 26, 27, 28, 29, 30, 37, 100, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, -29, -29, -29, 
-29, -29, -29, -29, -29, 0, -29, -29, -29, -29, -29, 0, 0, -29, -29, 0, 0, 
0, 0, -29, -29, -29, 0, -29, -29, 0, 0, 0, 0, -29, 0, 0, -29, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, -30, -30, -30, 
-30, -30, -30, -30, -30, 0, -30, -30, -30, -30, -30, 0, 0, -30, -30, 0, 0, 
0, 0, -30, -30, -30, 0, -30, -30, 0, 0, 0, 0, -30, 0, 0, -30, 0, 0, 0, 
0, 0, 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, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 40, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, -31, -31, -31, 
-31, -31, -31, -31, -31, 0, -31, -31, 44, 47, 67, 0, 0, -31, -31, 0, 0, 0, 
0, -31, -31, -31, 0, -31, -31, 0, 0, 0, 0, -31, 0, 0, -31, 0, 0, 0, 0, 
0, 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, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 98, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 43, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, -32, -32, -32, 
-32, -32, -32, -32, -32, 0, -32, -32, 44, 47, 67, 0, 0, -32, -32, 0, 0, 0, 
0, -32, -32, -32, 0, -32, -32, 0, 0, 0, 0, -32, 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, 0, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 97, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 46, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
-33, -33, -33, 0, 25, 41, 44, 47, 67, 0, 0, -33, -33, 0, 0, 0, 0, -33, 
-33, -33, 0, -33, -33, 0, 0, 0, 0, -33, 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, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 48, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -34, -34, -34, -34, 
-34, -34, -34, -34, -34, 0, -34, -34, -34, -34, -34, 0, 0, -34, -34, 0, 0, 
0, 0, -34, -34, -34, 0, -34, -34, 0, 0, 0, 0, -34, 0, 0, -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, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 50, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
-35, -35, 53, 0, 25, 41, 44, 47, 67, 0, 0, -35, -35, 0, 0, 0, 0, -35, -35, 
-35, 0, -35, -35, 0, 0, 0, 0, -35, 0, 0, -35, 0, 0, 0, 0, 0, 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, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 52, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, -36, 53, 0, 25, 41, 44, 47, 67, 0, 0, -36, -36, 0, 0, 0, 0, -36, -36, 
-36, 0, -36, -36, 0, 0, 0, 0, -36, 0, 0, -36, 0, 0, 0, 0, 0, 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, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 54, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
-37, -37, -37, 0, 25, 41, 44, 47, 67, 0, 0, -37, -37, 0, 0, 0, 0, -37, 
-37, -37, 0, -37, -37, 0, 0, 0, 0, -37, 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, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 56, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 61, 63, 65, 
-38, -38, -38, 0, 25, 41, 44, 47, 67, 0, 0, -38, -38, 0, 0, 0, 0, -38, 
-38, -38, 0, -38, -38, 0, 0, 0, 0, -38, 0, 0, -38, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 58, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 61, 63, 65, 
-39, -39, -39, 0, 25, 41, 44, 47, 67, 0, 0, -39, -39, 0, 0, 0, 0, -39, 
-39, -39, 0, -39, -39, 0, 0, 0, 0, -39, 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, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 60, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -40, -40, 0, 0, 0, 0, 
-40, -40, -40, 0, 25, 41, 44, 47, 67, 0, 0, -40, -40, 0, 0, 0, 0, -40, 
-40, -40, 0, -40, -40, 0, 0, 0, 0, -40, 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, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 62, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, -41, 0, 0, 0, 0, 
-41, -41, -41, 0, 25, 41, 44, 47, 67, 0, 0, -41, -41, 0, 0, 0, 0, -41, 
-41, -41, 0, -41, -41, 0, 0, 0, 0, -41, 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, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 64, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42, -42, 0, 0, 0, 0, 
-42, -42, -42, 0, 25, 41, 44, 47, 67, 0, 0, -42, -42, 0, 0, 0, 0, -42, 
-42, -42, 0, -42, -42, 0, 0, 0, 0, -42, 0, 0, -42, 0, 0, 0, 0, 0, 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, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 66, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, -43, 0, 0, 0, 0, 
-43, -43, -43, 0, 25, 41, 44, 47, 67, 0, 0, -43, -43, 0, 0, 0, 0, -43, 
-43, -43, 0, -43, -43, 0, 0, 0, 0, -43, 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, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 68, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, -44, -44, -44, 
-44, -44, -44, -44, -44, 0, -44, -44, -44, -44, -44, 0, 0, -44, -44, 0, 0, 
0, 0, -44, -44, -44, 0, -44, -44, 0, 0, 0, 0, -44, 0, 0, -44, 0, 0, 0, 
0, 0, 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, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 70, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, -45, -45, 0, 0, 0, 0, -45, -45, 
-45, 0, 0, 0, 0, 0, 0, 0, -45, 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, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 72, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, -46, -46, 0, 0, 0, 0, -46, -46, 
-46, 0, 0, 0, 0, 0, 0, 0, -46, 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, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, -47, 73, 0, 0, 0, 0, 0, 
-47, 0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 77, 0, 38, 74, 91, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, 0, -48, 0, 0, 0, 0, 0, 75, -48, 
0, 71, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 76, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, 0, -49, 0, 0, 0, 0, 0, 0, -49, 
0, 71, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 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, -50, -50, -50, 
-50, -50, -50, -50, -50, 0, -50, -50, -50, -50, -50, 0, 0, -50, -50, 0, 0, 
0, 0, -50, -50, -50, 0, -50, -50, 0, 0, 0, 0, -50, 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, 0, 0}, 
{0, 0, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 79, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
71, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 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, -51, -51, -51, 
-51, -51, -51, -51, -51, 0, -51, -51, -51, -51, -51, 0, 0, -51, -51, 0, 0, 
0, 0, -51, -51, -51, 0, -51, -51, 0, 0, 0, 0, -51, 0, 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, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52, -52, -52, -52, 
-52, -52, -52, -52, -52, 0, -52, -52, -52, -52, -52, 0, 0, -52, -52, 0, 0, 
0, 0, -52, -52, -52, 0, -52, -52, 0, 0, 0, 0, -52, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, -53, -53, -53, 
-53, -53, -53, -53, -53, 0, -53, -53, -53, -53, -53, 0, 0, -53, -53, 0, 0, 
0, 0, -53, -53, -53, 0, -53, -53, 0, 0, 0, 0, -53, 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, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, -54, -54, -54, 
-54, -54, -54, -54, -54, 0, -54, -54, -54, -54, -54, 0, 0, -54, -54, 0, 0, 
0, 0, -54, -54, -54, 0, -54, -54, 0, 0, 0, 0, -54, 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, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, -55, -55, -55, 
-55, -55, -55, -55, -55, 0, -55, -55, -55, -55, -55, 0, 0, -55, -55, 0, 0, 
0, 0, -55, -55, -55, 0, -55, -55, 0, 0, 0, 0, -55, 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, -56, -56, -56, -56, 
-56, -56, -56, -56, -56, 0, -56, -56, -56, -56, -56, 0, 0, -56, -56, 0, 0, 
0, 0, -56, -56, -56, 0, -56, -56, 0, 0, 0, 0, -56, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, -57, -57, -57, 
-57, -57, -57, -57, -57, 0, -57, -57, -57, -57, -57, 0, 0, -57, -57, 0, 0, 
0, 0, -57, -57, -57, 0, -57, -57, 0, 0, 0, 0, -57, 0, 0, -57, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, -58, -58, -58, 
-58, -58, -58, -58, -58, 0, -58, -58, -58, -58, -58, 0, 0, -58, -58, 0, 0, 
0, 0, -58, -58, -58, 0, -58, -58, 0, 0, 0, 0, -58, 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, 0, 0, 0, 0, 0, 0, 0, 0, -59, -59, -59, -59, 
-59, -59, -59, -59, -59, 0, -59, -59, -59, -59, -59, 0, 0, -59, -59, 0, 0, 
0, 0, -59, -59, -59, 0, -59, -59, 0, 0, 0, 0, -59, 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, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, -60, -60, -60, 
-60, -60, -60, -60, -60, 0, -60, -60, -60, -60, -60, 0, 0, -60, -60, 0, 0, 
0, 0, -60, -60, -60, 0, -60, -60, 0, 0, 0, 0, -60, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61, -61, -61, -61, 
-61, -61, -61, -61, -61, 0, -61, -61, -61, -61, -61, 0, 0, -61, -61, 0, 0, 
0, 0, -61, -61, -61, 0, -61, -61, 0, 0, 0, 0, -61, 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, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 
0, 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, -62, -62, -62, 
-62, -62, -62, -62, -62, 0, -62, -62, -62, -62, -62, 0, 0, -62, -62, 0, 0, 
0, 0, -62, -62, -62, 0, -62, -62, 0, 0, 0, 0, -62, 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, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 94, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, 0, -63, 0, 0, 0, 0, 0, 95, -63, 
0, 71, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 96, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, -64, 
0, 71, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 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, -65, -65, -65, 
-65, -65, -65, -65, -65, 0, -65, -65, -65, -65, -65, 0, 0, -65, -65, 0, 0, 
0, 0, -65, -65, -65, 0, -65, -65, 0, 0, 0, 0, -65, 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, 0, 0, -66, -66, -66, -66, 
-66, -66, -66, -66, -66, 0, -66, -66, 44, 47, 67, 0, 0, -66, -66, 0, 0, 0, 
0, -66, -66, -66, 0, -66, -66, 0, 0, 0, 0, -66, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, -67, 
0, 71, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0}, 
{0, 0, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 102, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, -68, 
0, 71, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 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, -69, -69, -69, 
-69, -69, -69, -69, -69, 0, -69, -69, -69, -69, -69, 0, 0, -69, -69, 0, 0, 
0, 0, -69, -69, -69, 0, -69, -69, 0, 0, 0, 0, -69, 0, 0, -69, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, -25, -25, -25, 
-25, -25, -25, -25, -25, 0, -25, -25, -25, -25, -25, -25, 0, -25, -25, 0, 
0, 0, 104, -25, -25, -25, 0, -25, -25, 0, 0, 0, 0, -25, 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, 0, 0, 0, 
0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -70, -70, -70, -70, 
-70, -70, -70, -70, -70, 0, -70, -70, -70, -70, -70, -70, 0, -70, -70, 0, 
0, 0, 0, -70, -70, -70, 0, -70, -70, 0, 0, 0, 0, -70, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, -71, -71, -71, -71, 
-71, -71, -71, -71, -71, 0, -71, -71, 44, 47, 67, 0, 0, -71, -71, 0, 0, 0, 
0, -71, -71, -71, 0, -71, -71, 0, 0, 0, 0, -71, 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, 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, 0, 0, 117, 11, -1, 0, -2, 0, 0, 0, 0, 0, 
0, 0, 0, 125, 0, 0, 135, 0, 0, 0, 109, 4, 5, 7, 9, 10, 14, 15, 16, 17, 
18, 19, 20, 21, 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, 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, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 114, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 113, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 
71, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 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, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 11, -1, 0, -2, 0, 0, 0, 0, 0, 
0, 0, 0, 125, 0, 0, 135, 0, 0, 0, 115, 4, 5, 7, 9, 10, 14, 15, 16, 17, 
18, 19, 20, 21, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, -47, 73, 0, 0, 0, 0, 0, 
-47, 0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 77, 0, 38, 74, 118, 26, 27, 28, 29, 30, 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, 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 121, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 
71, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 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, -25, 36, 0, 0, 123, 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, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 126, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
71, 69, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 11, -1, 0, -2, 0, 0, 0, 0, 0, 
0, 0, 0, 125, 0, 0, 135, 0, 0, 0, 129, 4, 5, 7, 9, 10, 14, 15, 16, 17, 
18, 19, 20, 21, 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, 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, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, -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, 0, 0, 0, -78, -78, -78, 0, -78, 0, 0, 0, 
0, 0, 0, 0, 0, -78, 0, 131, -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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 11, -1, 0, -2, 0, 0, 0, 0, 0, 
0, 0, 0, 125, 0, 0, 135, 0, 0, 0, 133, 4, 5, 7, 9, 10, 14, 15, 16, 17, 
18, 19, 20, 21, 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, 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, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, -79, -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, -79, -79, -79, 0, -79, 0, 0, 0, 
0, 0, 0, 0, 0, -79, 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, 33, 83, 84, 86, 87, 81, 82, 32, 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 45, 39, 42, 0, 0, 0, 0, 78, 0, 0, 73, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 77, 0, 38, 136, 0, 26, 27, 28, 29, 30, 37, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 59, 61, 63, 65, 
49, 51, 53, 0, 25, 41, 44, 47, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
71, 69, 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, 0, 0, 0, 0, 0}, 
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 11, -1, 0, -2, 0, 0, 0, 0, 0, 
0, 0, 0, 125, 0, 0, 135, 0, 0, 0, 139, 4, 5, 7, 9, 10, 14, 15, 16, 17, 
18, 19, 20, 21, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0}, 
{0, -80, -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, -80, -80, -80, 0, -80, 0, 0, 0, 
0, 0, 0, 0, 0, -80, 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}};
	return _actionTable[state][sym];
}

ReduceInfo *PglParser::reduceTable(int i) {
	static ReduceInfo _reduceTable[] = {
{ 0, 0, 0, 0},
{ 56, 0, 0, p_StatementSeq_1, 0 },
{ 58, 0, 0, p_SimpleStatement_2, 0 },
{ 55, 1, 1, p_Code_3, 0 },
{ 56, 2, 2, p_StatementSeq_4, 0 },
{ 57, 2, 2, p_Statement_5, 0 },
{ 57, 1, 1, p_Statement_6, 0 },
{ 57, 1, 1, p_Statement_7, 0 },
{ 57, 3, 3, p_Statement_8, 0 },
{ 58, 1, 1, p_SimpleStatement_9, 0 },
{ 58, 1, 1, p_SimpleStatement_10, 0 },
{ 62, 1, 1, p_DeclStatement_11, 0 },
{ 62, 1, 1, p_DeclStatement_12, 0 },
{ 62, 1, 1, p_DeclStatement_13, 0 },
{ 61, 1, 1, p_ExprStatement_14, 0 },
{ 61, 1, 1, p_ExprStatement_15, 0 },
{ 63, 2, 2, p_PureDecl_16, 0 },
{ 64, 4, 4, p_ExprInitDecl_17, 0 },
{ 70, 1, 1, p_Expression_18, 0 },
{ 70, 1, 1, p_Expression_19, 0 },
{ 70, 1, 1, p_Expression_20, 0 },
{ 70, 1, 1, p_Expression_21, 0 },
{ 70, 1, 1, p_Expression_22, 0 },
{ 70, 1, 1, p_Expression_23, 0 },
{ 70, 1, 1, p_Expression_24, 0 },
{ 69, 1, 1, p_ObjName_25, 0 },
{ 70, 2, 2, p_Expression_26, 0 },
{ 70, 2, 2, p_Expression_27, 0 },
{ 78, 0, 0, p_List_28, 0 },
{ 70, 1, 1, p_Expression_29, 0 },
{ 70, 1, 1, p_Expression_30, 0 },
{ 70, 2, 2, p_Expression_31, 0 },
{ 70, 2, 2, p_Expression_32, 0 },
{ 70, 2, 2, p_Expression_33, 0 },
{ 70, 3, 3, p_Expression_34, 0 },
{ 70, 3, 3, p_Expression_35, 0 },
{ 70, 3, 3, p_Expression_36, 0 },
{ 70, 3, 3, p_Expression_37, 0 },
{ 70, 3, 3, p_Expression_38, 0 },
{ 70, 3, 3, p_Expression_39, 0 },
{ 70, 3, 3, p_Expression_40, 0 },
{ 70, 3, 3, p_Expression_41, 0 },
{ 70, 3, 3, p_Expression_42, 0 },
{ 70, 3, 3, p_Expression_43, 0 },
{ 70, 3, 3, p_Expression_44, 0 },
{ 70, 3, 3, p_Expression_45, 0 },
{ 70, 3, 3, p_Expression_46, 0 },
{ 71, 0, 0, p_Array_47, 0 },
{ 71, 1, 1, p_Array_48, 0 },
{ 71, 3, 3, p_Array_49, 0 },
{ 70, 1, 1, p_Expression_50, 0 },
{ 70, 3, 3, p_Expression_51, 0 },
{ 72, 1, 1, p_Bool_52, 0 },
{ 72, 1, 1, p_Bool_53, 0 },
{ 73, 1, 1, p_Int_54, 0 },
{ 74, 1, 1, p_Num_55, 0 },
{ 74, 1, 1, p_Num_56, 0 },
{ 75, 1, 1, p_Time_57, 0 },
{ 76, 1, 1, p_Size_58, 0 },
{ 77, 1, 1, p_Qualif_59, 0 },
{ 77, 1, 1, p_Qualif_60, 0 },
{ 77, 1, 1, p_Qualif_61, 0 },
{ 70, 3, 3, p_Expression_62, 0 },
{ 71, 3, 3, p_Array_63, 0 },
{ 71, 5, 5, p_Array_64, 0 },
{ 70, 3, 3, p_Expression_65, 0 },
{ 70, 3, 3, p_Expression_66, 0 },
{ 78, 1, 1, p_List_67, 0 },
{ 78, 3, 3, p_List_68, 0 },
{ 67, 4, 4, p_Call_69, 0 },
{ 69, 3, 3, p_ObjName_70, 0 },
{ 70, 3, 3, p_Expression_71, 0 },
{ 65, 6, 6, p_CodeInitDecl_72, 0 },
{ 66, 3, 3, p_Assignment_73, 0 },
{ 66, 5, 5, p_Assignment_74, 0 },
{ 66, 5, 5, p_Assignment_75, 0 },
{ 68, 1, 1, p_TypeName_76, 0 },
{ 68, 3, 3, p_TypeName_77, 0 },
{ 59, 6, 6, p_IfCode_78, 0 },
{ 59, 10, 10, p_IfCode_79, 0 },
{ 60, 6, 6, p_EveryCode_80, 0 }};
	return(&_reduceTable[i]);
}


#line 112 "pgl.syn"

// postlude




syntax highlighted by Code2HTML, v. 0.9.1