diff --git a/hyperdbg/hprdbgctrl/code/debugger/script-engine-wrapper/script-engine-wrapper.cpp b/hyperdbg/hprdbgctrl/code/debugger/script-engine-wrapper/script-engine-wrapper.cpp
index 8567c843..12646812 100644
--- a/hyperdbg/hprdbgctrl/code/debugger/script-engine-wrapper/script-engine-wrapper.cpp
+++ b/hyperdbg/hprdbgctrl/code/debugger/script-engine-wrapper/script-engine-wrapper.cpp
@@ -358,6 +358,14 @@ ScriptEngineEvalWrapper(PGUEST_REGS GuestRegs,
ACTION_BUFFER ActionBuffer = {0};
SYMBOL ErrorSymbol = {0};
+ //
+ //
+ //
+ PSYMBOL_BUFFER StackBuffer = GetStackBuffer();
+ int StackIndx = 0;
+ int StackBaseIndx = 0;
+ int StackTempBaseIndx = 0;
+
if (CodeBuffer->Message == NULL)
{
for (UINT64 i = 0; i < CodeBuffer->Pointer;)
@@ -386,6 +394,10 @@ ScriptEngineEvalWrapper(PGUEST_REGS GuestRegs,
&VariablesList,
CodeBuffer,
&i,
+ StackBuffer,
+ &StackIndx,
+ &StackBaseIndx,
+ &StackTempBaseIndx,
&ErrorSymbol) == TRUE)
{
CHAR NameOfOperator[MAX_FUNCTION_NAME_LENGTH] = {0};
diff --git a/hyperdbg/hprdbgkd/code/debugger/core/Debugger.c b/hyperdbg/hprdbgkd/code/debugger/core/Debugger.c
index 6565c133..cfeaa5bd 100644
--- a/hyperdbg/hprdbgkd/code/debugger/core/Debugger.c
+++ b/hyperdbg/hprdbgkd/code/debugger/core/Debugger.c
@@ -1653,6 +1653,10 @@ DebuggerPerformRunScript(PROCESSOR_DEBUGGING_STATE * DbgState,
&VariablesList,
&CodeBuffer,
&i,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
&ErrorSymbol) == TRUE)
{
CHAR NameOfOperator[MAX_FUNCTION_NAME_LENGTH] = {0};
diff --git a/hyperdbg/include/SDK/Imports/HyperDbgScriptImports.h b/hyperdbg/include/SDK/Imports/HyperDbgScriptImports.h
index 356f2aff..f677985b 100644
--- a/hyperdbg/include/SDK/Imports/HyperDbgScriptImports.h
+++ b/hyperdbg/include/SDK/Imports/HyperDbgScriptImports.h
@@ -19,6 +19,7 @@ extern "C" {
#endif
__declspec(dllimport) PSYMBOL_BUFFER ScriptEngineParse(char * str);
+__declspec(dllimport) PSYMBOL_BUFFER GetStackBuffer();
__declspec(dllimport) void PrintSymbolBuffer(const PSYMBOL_BUFFER SymbolBuffer);
__declspec(dllimport) void PrintSymbol(PSYMBOL Symbol);
__declspec(dllimport) void RemoveSymbolBuffer(PSYMBOL_BUFFER SymbolBuffer);
diff --git a/hyperdbg/script-engine/code/common.c b/hyperdbg/script-engine/code/common.c
index 4da088f0..9c93693a 100644
--- a/hyperdbg/script-engine/code/common.c
+++ b/hyperdbg/script-engine/code/common.c
@@ -165,7 +165,20 @@ PrintToken(PTOKEN Token)
case UNKNOWN:
printf(" UNKNOWN>\n");
break;
-
+ case INPUT_VARIABLE_TYPE:
+ printf(" INPUT_VARIABLE_TYPE>\n");
+ break;
+ case HANDLED_VARIABLE_TYPE:
+ printf(" HANDLED_VARIABLE_TYPE>\n");
+ break;
+ case FUNCTION_TYPE:
+ printf(" FUNCTION_TYPE>\n");
+ break;
+ case FUNCTION_PARAMETER_ID:
+ printf(" FUNCTION_PARAMETER_ID>\n");
+ break;
+ case STACK_TEMP:
+ printf(" STACK_TEMP>\n");
default:
printf(" ERROR>\n");
break;
@@ -238,7 +251,7 @@ AppendWchar(PTOKEN Token, wchar_t c)
//
// Append the new charcter to the wstring
//
- *((wchar_t *)(Token->Value) + Token->Len/2) = c;
+ *((wchar_t *)(Token->Value) + Token->Len / 2) = c;
Token->Len += 2;
}
@@ -394,7 +407,7 @@ Pop(PTOKEN_LIST TokenList)
// Calculate address to read most recent token
//
if (TokenList->Pointer > 0)
- TokenList->Pointer--;
+ TokenList->Pointer--; // not consider what if the token's type is string or wstring
uintptr_t Head = (uintptr_t)TokenList->Head;
uintptr_t Pointer = (uintptr_t)TokenList->Pointer;
PTOKEN * ReadAddr = (PTOKEN *)(Head + Pointer * sizeof(PTOKEN));
@@ -507,16 +520,55 @@ IsOctal(char c)
* @return PTOKEN
*/
PTOKEN
-NewTemp(PSCRIPT_ENGINE_ERROR_TYPE Error)
+NewTemp(PSCRIPT_ENGINE_ERROR_TYPE Error, PSYMBOL CurrentFunctionSymbol)
+{
+ if (CurrentFunctionSymbol)
+ {
+ return NewStackTemp(Error);
+ }
+ else
+ {
+ static unsigned int TempID = 0;
+ int i;
+ for (i = 0; i < MAX_TEMP_COUNT; i++)
+ {
+ if (TempMap[i] == 0)
+ {
+ TempID = i;
+ TempMap[i] = 1;
+ break;
+ }
+ }
+ if (i == MAX_TEMP_COUNT)
+ {
+ *Error = SCRIPT_ENGINE_ERROR_TEMP_LIST_FULL;
+ }
+ PTOKEN Temp = NewUnknownToken();
+ char TempValue[8];
+ sprintf(TempValue, "%d", TempID);
+ strcpy(Temp->Value, TempValue);
+ Temp->Type = TEMP;
+ return Temp;
+ }
+}
+
+/**
+ * @brief Allocates a new temporary variable in stack and returns it
+ *
+ * @param Error
+ * @return PTOKEN
+ */
+PTOKEN
+NewStackTemp(PSCRIPT_ENGINE_ERROR_TYPE Error)
{
static unsigned int TempID = 0;
int i;
for (i = 0; i < MAX_TEMP_COUNT; i++)
{
- if (TempMap[i] == 0)
+ if (StackTempMap[i] == 0)
{
- TempID = i;
- TempMap[i] = 1;
+ TempID = i;
+ StackTempMap[i] = 1;
break;
}
}
@@ -528,7 +580,7 @@ NewTemp(PSCRIPT_ENGINE_ERROR_TYPE Error)
char TempValue[8];
sprintf(TempValue, "%d", TempID);
strcpy(Temp->Value, TempValue);
- Temp->Type = TEMP;
+ Temp->Type = STACK_TEMP;
return Temp;
}
@@ -545,6 +597,10 @@ FreeTemp(PTOKEN Temp)
{
TempMap[id] = 0;
}
+ else if (Temp->Type == STACK_TEMP)
+ {
+ StackTempMap[id] = 0;
+ }
}
/**
@@ -556,7 +612,8 @@ CleanTempList(void)
{
for (int i = 0; i < MAX_TEMP_COUNT; i++)
{
- TempMap[i] = 0;
+ TempMap[i] = 0;
+ StackTempMap[i] = 0;
}
}
@@ -860,6 +917,28 @@ IsType14Func(PTOKEN Operator)
return 0;
}
+/**
+ * @brief Checks whether this Token type is VariableType
+ *
+ * @param Operator
+ * @return char
+ */
+
+char
+IsVariableType(PTOKEN Operator)
+{
+ unsigned int n = VARIABLETYPE_LENGTH;
+ for (int i = 0; i < n; i++)
+ {
+ if (!strcmp(Operator->Value, VARIABLETYPE[i]))
+ {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
/**
* @brief Checks whether this Token is noneterminal
* NoneTerminal token starts with capital letter
@@ -939,6 +1018,13 @@ GetTerminalId(PTOKEN Token)
return i;
}
}
+ else if (Token->Type == FUNCTION_PARAMETER_ID)
+ {
+ if (!strcmp("_function_parameter_id", TerminalMap[i]))
+ {
+ return i;
+ }
+ }
else if (Token->Type == REGISTER)
{
if (!strcmp("_register", TerminalMap[i]))
@@ -1044,6 +1130,13 @@ LalrGetTerminalId(PTOKEN Token)
return i;
}
}
+ else if (Token->Type == FUNCTION_PARAMETER_ID)
+ {
+ if (!strcmp("_function_parameter_id", LalrTerminalMap[i]))
+ {
+ return i;
+ }
+ }
else if (Token->Type == REGISTER)
{
if (!strcmp("_register", LalrTerminalMap[i]))
@@ -1292,10 +1385,10 @@ BinaryToInt(char * str)
}
/**
-* @brief Rotate a character array to the left by one time
-*
-* @param str
-*/
+ * @brief Rotate a character array to the left by one time
+ *
+ * @param str
+ */
void
RotateLeftStringOnce(char * str)
{
@@ -1306,5 +1399,4 @@ RotateLeftStringOnce(char * str)
str[i] = str[i + 1];
}
str[length - 1] = temp;
-
}
\ No newline at end of file
diff --git a/hyperdbg/script-engine/code/globals.c b/hyperdbg/script-engine/code/globals.c
index aa0a3c60..644bb6b1 100644
--- a/hyperdbg/script-engine/code/globals.c
+++ b/hyperdbg/script-engine/code/globals.c
@@ -16,3 +16,4 @@
*
*/
char TempMap[MAX_TEMP_COUNT] = {0};
+char StackTempMap[MAX_TEMP_COUNT] = {0};
\ No newline at end of file
diff --git a/hyperdbg/script-engine/code/parse-table.c b/hyperdbg/script-engine/code/parse-table.c
index dfe89fb2..297a2b45 100644
--- a/hyperdbg/script-engine/code/parse-table.c
+++ b/hyperdbg/script-engine/code/parse-table.c
@@ -12,7 +12,47 @@ const struct _TOKEN Lhs[RULES_COUNT]=
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
- {NON_TERMINAL, "ASSIGNMENT_STATEMENT"},
+ {NON_TERMINAL, "STATEMENT"},
+ {NON_TERMINAL, "S2"},
+ {NON_TERMINAL, "S2"},
+ {NON_TERMINAL, "S2"},
+ {NON_TERMINAL, "STATEMENT2"},
+ {NON_TERMINAL, "STATEMENT2"},
+ {NON_TERMINAL, "STATEMENT2"},
+ {NON_TERMINAL, "STATEMENT2"},
+ {NON_TERMINAL, "STATEMENT2"},
+ {NON_TERMINAL, "STATEMENT2"},
+ {NON_TERMINAL, "STATEMENT2"},
+ {NON_TERMINAL, "STATEMENT2"},
+ {NON_TERMINAL, "STATEMENT2"},
+ {NON_TERMINAL, "STATEMENT2"},
+ {NON_TERMINAL, "RETURN"},
+ {NON_TERMINAL, "RETURN"},
+ {NON_TERMINAL, "VARIABLE_TYPE1"},
+ {NON_TERMINAL, "VARIABLE_TYPE1"},
+ {NON_TERMINAL, "VARIABLE_TYPE1"},
+ {NON_TERMINAL, "VARIABLE_TYPE1"},
+ {NON_TERMINAL, "VARIABLE_TYPE1"},
+ {NON_TERMINAL, "VARIABLE_TYPE1"},
+ {NON_TERMINAL, "VARIABLE_TYPE1"},
+ {NON_TERMINAL, "VARIABLE_TYPE1"},
+ {NON_TERMINAL, "VARIABLE_TYPE1"},
+ {NON_TERMINAL, "VARIABLE_TYPE1"},
+ {NON_TERMINAL, "VARIABLE_TYPE2"},
+ {NON_TERMINAL, "VARIABLE_TYPE2"},
+ {NON_TERMINAL, "VARIABLE_TYPE3"},
+ {NON_TERMINAL, "VARIABLE_TYPE4"},
+ {NON_TERMINAL, "VARIABLE_TYPE4"},
+ {NON_TERMINAL, "VARIABLE_TYPE5"},
+ {NON_TERMINAL, "VARIABLE_TYPE5"},
+ {NON_TERMINAL, "VARIABLE_TYPE6"},
+ {NON_TERMINAL, "VARIABLE_TYPE6"},
+ {NON_TERMINAL, "L_VALUE2"},
+ {NON_TERMINAL, "L_VALUE2"},
+ {NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER"},
+ {NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER"},
+ {NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER2"},
+ {NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER2"},
{NON_TERMINAL, "ASSIGNMENT_STATEMENT'"},
{NON_TERMINAL, "ASSIGNMENT_STATEMENT'"},
{NON_TERMINAL, "ASSIGNMENT_STATEMENT'"},
@@ -80,6 +120,7 @@ const struct _TOKEN Lhs[RULES_COUNT]=
{NON_TERMINAL, "FOR_STATEMENT"},
{NON_TERMINAL, "SIMPLE_ASSIGNMENT"},
{NON_TERMINAL, "SIMPLE_ASSIGNMENT"},
+ {NON_TERMINAL, "SIMPLE_ASSIGNMENT"},
{NON_TERMINAL, "SIMPLE_ASSIGNMENT'"},
{NON_TERMINAL, "INC_DEC"},
{NON_TERMINAL, "INC_DEC'"},
@@ -140,8 +181,8 @@ const struct _TOKEN Lhs[RULES_COUNT]=
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
- {NON_TERMINAL, "E12"},
- {NON_TERMINAL, "E12"},
+ {NON_TERMINAL, "E13"},
+ {NON_TERMINAL, "E13"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
@@ -157,6 +198,7 @@ const struct _TOKEN Lhs[RULES_COUNT]=
{NON_TERMINAL, "L_VALUE"},
{NON_TERMINAL, "L_VALUE"},
{NON_TERMINAL, "L_VALUE"},
+ {NON_TERMINAL, "L_VALUE"},
{NON_TERMINAL, "StringNumber"},
{NON_TERMINAL, "StringNumber"},
{NON_TERMINAL, "WstringNumber"},
@@ -171,11 +213,51 @@ const struct _TOKEN Rhs[RULES_COUNT][MAX_RHS_LEN]=
{{NON_TERMINAL, "WHILE_STATEMENT"}},
{{NON_TERMINAL, "DO_WHILE_STATEMENT"}},
{{NON_TERMINAL, "FOR_STATEMENT"}},
- {{NON_TERMINAL, "ASSIGNMENT_STATEMENT"},{SPECIAL_TOKEN, ";"}},
+ {{NON_TERMINAL, "L_VALUE"},{NON_TERMINAL, "L_VALUE2"}},
{{NON_TERMINAL, "CALL_FUNC_STATEMENT"},{SPECIAL_TOKEN, ";"}},
{{KEYWORD, "break"},{SEMANTIC_RULE, "@BREAK"},{SPECIAL_TOKEN, ";"}},
{{KEYWORD, "continue"},{SEMANTIC_RULE, "@CONTINUE"},{SPECIAL_TOKEN, ";"}},
- {{NON_TERMINAL, "L_VALUE"},{NON_TERMINAL, "ASSIGNMENT_STATEMENT'"}},
+ {{NON_TERMINAL, "VARIABLE_TYPE3"}},
+ {{NON_TERMINAL, "STATEMENT2"},{NON_TERMINAL, "S2"}},
+ {{SPECIAL_TOKEN, "{"},{NON_TERMINAL, "STATEMENT2"},{NON_TERMINAL, "S2"},{SPECIAL_TOKEN, "}"}},
+ {{EPSILON, "eps"}},
+ {{NON_TERMINAL, "IF_STATEMENT"}},
+ {{NON_TERMINAL, "WHILE_STATEMENT"}},
+ {{NON_TERMINAL, "DO_WHILE_STATEMENT"}},
+ {{NON_TERMINAL, "FOR_STATEMENT"}},
+ {{NON_TERMINAL, "L_VALUE"},{NON_TERMINAL, "L_VALUE2"}},
+ {{NON_TERMINAL, "CALL_FUNC_STATEMENT"},{SPECIAL_TOKEN, ";"}},
+ {{KEYWORD, "break"},{SEMANTIC_RULE, "@BREAK"},{SPECIAL_TOKEN, ";"}},
+ {{KEYWORD, "continue"},{SEMANTIC_RULE, "@CONTINUE"},{SPECIAL_TOKEN, ";"}},
+ {{NON_TERMINAL, "VARIABLE_TYPE1"},{NON_TERMINAL, "VARIABLE_TYPE2"},{NON_TERMINAL, "L_VALUE"},{SPECIAL_TOKEN, "="},{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@MOV"},{SPECIAL_TOKEN, ";"}},
+ {{KEYWORD, "return"},{NON_TERMINAL, "RETURN"},{SPECIAL_TOKEN, ";"}},
+ {{EPSILON, "eps"},{SEMANTIC_RULE, "@RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE"}},
+ {{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE"}},
+ {{SEMANTIC_RULE, "@VOID"},{KEYWORD, "void"}},
+ {{SEMANTIC_RULE, "@BOOL"},{KEYWORD, "bool"}},
+ {{SEMANTIC_RULE, "@CHAR"},{KEYWORD, "char"}},
+ {{SEMANTIC_RULE, "@SHORT"},{KEYWORD, "short"}},
+ {{SEMANTIC_RULE, "@INT"},{KEYWORD, "int"}},
+ {{SEMANTIC_RULE, "@LONG"},{KEYWORD, "long"}},
+ {{SEMANTIC_RULE, "@UNSIGNED"},{KEYWORD, "unsigned"}},
+ {{SEMANTIC_RULE, "@SIGNED"},{KEYWORD, "signed"}},
+ {{SEMANTIC_RULE, "@FLOAT"},{KEYWORD, "float"}},
+ {{SEMANTIC_RULE, "@DOUBLE"},{KEYWORD, "double"}},
+ {{NON_TERMINAL, "VARIABLE_TYPE1"}},
+ {{EPSILON, "eps"}},
+ {{NON_TERMINAL, "VARIABLE_TYPE1"},{NON_TERMINAL, "VARIABLE_TYPE2"},{NON_TERMINAL, "L_VALUE"},{NON_TERMINAL, "VARIABLE_TYPE4"}},
+ {{SPECIAL_TOKEN, "="},{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@MOV"},{SPECIAL_TOKEN, ";"}},
+ {{SEMANTIC_RULE, "@START_OF_USER_DEFINED_FUNCTION"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "VARIABLE_TYPE5"},{SPECIAL_TOKEN, ")"},{SPECIAL_TOKEN, "{"},{NON_TERMINAL, "S2"},{SEMANTIC_RULE, "@END_OF_USER_DEFINED_FUNCTION"},{SPECIAL_TOKEN, "}"}},
+ {{EPSILON, "eps"}},
+ {{NON_TERMINAL, "VARIABLE_TYPE1"},{NON_TERMINAL, "VARIABLE_TYPE2"},{NON_TERMINAL, "L_VALUE"},{SEMANTIC_RULE, "@FUNCTION_PARAMETER"},{NON_TERMINAL, "VARIABLE_TYPE6"}},
+ {{SPECIAL_TOKEN, ","},{NON_TERMINAL, "VARIABLE_TYPE1"},{NON_TERMINAL, "VARIABLE_TYPE2"},{NON_TERMINAL, "L_VALUE"},{SEMANTIC_RULE, "@FUNCTION_PARAMETER"},{NON_TERMINAL, "VARIABLE_TYPE6"}},
+ {{EPSILON, "eps"}},
+ {{NON_TERMINAL, "ASSIGNMENT_STATEMENT'"},{SPECIAL_TOKEN, ";"}},
+ {{SEMANTIC_RULE, "@CALL_USER_DEFINED_FUNCTION"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER"},{SPECIAL_TOKEN, ")"},{SEMANTIC_RULE, "@END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE"},{SPECIAL_TOKEN, ";"}},
+ {{EPSILON, "eps"}},
+ {{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@CALL_USER_DEFINED_FUNCTION_PARAMETER"},{NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER2"}},
+ {{SPECIAL_TOKEN, ","},{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@CALL_USER_DEFINED_FUNCTION_PARAMETER"},{NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER2"}},
+ {{EPSILON, "eps"}},
{{SPECIAL_TOKEN, "++"},{SEMANTIC_RULE, "@INC"}},
{{SPECIAL_TOKEN, "--"},{SEMANTIC_RULE, "@DEC"}},
{{SPECIAL_TOKEN, "="},{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@MOV"}},
@@ -231,16 +313,17 @@ const struct _TOKEN Rhs[RULES_COUNT][MAX_RHS_LEN]=
{{KEYWORD, "memcpy"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "EXPRESSION"},{SPECIAL_TOKEN, ","},{NON_TERMINAL, "EXPRESSION"},{SPECIAL_TOKEN, ","},{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@MEMCPY"},{SPECIAL_TOKEN, ")"}},
{{SPECIAL_TOKEN, ","},{NON_TERMINAL, "EXPRESSION"},{NON_TERMINAL, "VA"}},
{{EPSILON, "eps"}},
- {{KEYWORD, "if"},{SEMANTIC_RULE, "@START_OF_IF"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "BOOLEAN_EXPRESSION"},{SPECIAL_TOKEN, ")"},{SEMANTIC_RULE, "@JZ"},{SPECIAL_TOKEN, "{"},{NON_TERMINAL, "S"},{SPECIAL_TOKEN, "}"},{NON_TERMINAL, "ELSIF_STATEMENT"},{NON_TERMINAL, "ELSE_STATEMENT"},{SEMANTIC_RULE, "@END_OF_IF"},{NON_TERMINAL, "END_OF_IF"}},
- {{KEYWORD, "elsif"},{SEMANTIC_RULE, "@JMP_TO_END_AND_JZCOMPLETED"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "BOOLEAN_EXPRESSION"},{SPECIAL_TOKEN, ")"},{SEMANTIC_RULE, "@JZ"},{SPECIAL_TOKEN, "{"},{NON_TERMINAL, "S"},{SPECIAL_TOKEN, "}"},{NON_TERMINAL, "ELSIF_STATEMENT"}},
+ {{KEYWORD, "if"},{SEMANTIC_RULE, "@START_OF_IF"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "BOOLEAN_EXPRESSION"},{SPECIAL_TOKEN, ")"},{SEMANTIC_RULE, "@JZ"},{SPECIAL_TOKEN, "{"},{NON_TERMINAL, "S2"},{SPECIAL_TOKEN, "}"},{NON_TERMINAL, "ELSIF_STATEMENT"},{NON_TERMINAL, "ELSE_STATEMENT"},{SEMANTIC_RULE, "@END_OF_IF"},{NON_TERMINAL, "END_OF_IF"}},
+ {{KEYWORD, "elsif"},{SEMANTIC_RULE, "@JMP_TO_END_AND_JZCOMPLETED"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "BOOLEAN_EXPRESSION"},{SPECIAL_TOKEN, ")"},{SEMANTIC_RULE, "@JZ"},{SPECIAL_TOKEN, "{"},{NON_TERMINAL, "S2"},{SPECIAL_TOKEN, "}"},{NON_TERMINAL, "ELSIF_STATEMENT"}},
{{SEMANTIC_RULE, "@JMP_TO_END_AND_JZCOMPLETED"},{NON_TERMINAL, "ELSIF_STATEMENT'"}},
{{EPSILON, "eps"}},
- {{KEYWORD, "else"},{SPECIAL_TOKEN, "{"},{NON_TERMINAL, "S"},{SPECIAL_TOKEN, "}"}},
+ {{KEYWORD, "else"},{SPECIAL_TOKEN, "{"},{NON_TERMINAL, "S2"},{SPECIAL_TOKEN, "}"}},
{{EPSILON, "eps"}},
{{EPSILON, "eps"}},
- {{KEYWORD, "while"},{SEMANTIC_RULE, "@START_OF_WHILE"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "BOOLEAN_EXPRESSION"},{SPECIAL_TOKEN, ")"},{SEMANTIC_RULE, "@START_OF_WHILE_COMMANDS"},{SPECIAL_TOKEN, "{"},{NON_TERMINAL, "S"},{SEMANTIC_RULE, "@END_OF_WHILE"},{SPECIAL_TOKEN, "}"}},
- {{KEYWORD, "do"},{SEMANTIC_RULE, "@START_OF_DO_WHILE"},{SPECIAL_TOKEN, "{"},{NON_TERMINAL, "S"},{SPECIAL_TOKEN, "}"},{KEYWORD, "while"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "BOOLEAN_EXPRESSION"},{SPECIAL_TOKEN, ")"},{SEMANTIC_RULE, "@END_OF_DO_WHILE"},{SPECIAL_TOKEN, ";"}},
- {{KEYWORD, "for"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "SIMPLE_ASSIGNMENT"},{SPECIAL_TOKEN, ";"},{SEMANTIC_RULE, "@START_OF_FOR"},{NON_TERMINAL, "BOOLEAN_EXPRESSION"},{SPECIAL_TOKEN, ";"},{SEMANTIC_RULE, "@FOR_INC_DEC"},{NON_TERMINAL, "INC_DEC"},{SPECIAL_TOKEN, ")"},{SPECIAL_TOKEN, "{"},{SEMANTIC_RULE, "@START_OF_FOR_COMMANDS"},{NON_TERMINAL, "S"},{SEMANTIC_RULE, "@END_OF_FOR"},{SPECIAL_TOKEN, "}"}},
+ {{KEYWORD, "while"},{SEMANTIC_RULE, "@START_OF_WHILE"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "BOOLEAN_EXPRESSION"},{SPECIAL_TOKEN, ")"},{SEMANTIC_RULE, "@START_OF_WHILE_COMMANDS"},{SPECIAL_TOKEN, "{"},{NON_TERMINAL, "S2"},{SEMANTIC_RULE, "@END_OF_WHILE"},{SPECIAL_TOKEN, "}"}},
+ {{KEYWORD, "do"},{SEMANTIC_RULE, "@START_OF_DO_WHILE"},{SPECIAL_TOKEN, "{"},{NON_TERMINAL, "S2"},{SPECIAL_TOKEN, "}"},{KEYWORD, "while"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "BOOLEAN_EXPRESSION"},{SPECIAL_TOKEN, ")"},{SEMANTIC_RULE, "@END_OF_DO_WHILE"},{SPECIAL_TOKEN, ";"}},
+ {{KEYWORD, "for"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "SIMPLE_ASSIGNMENT"},{SPECIAL_TOKEN, ";"},{SEMANTIC_RULE, "@START_OF_FOR"},{NON_TERMINAL, "BOOLEAN_EXPRESSION"},{SPECIAL_TOKEN, ";"},{SEMANTIC_RULE, "@FOR_INC_DEC"},{NON_TERMINAL, "INC_DEC"},{SPECIAL_TOKEN, ")"},{SPECIAL_TOKEN, "{"},{SEMANTIC_RULE, "@START_OF_FOR_COMMANDS"},{NON_TERMINAL, "S2"},{SEMANTIC_RULE, "@END_OF_FOR"},{SPECIAL_TOKEN, "}"}},
+ {{NON_TERMINAL, "VARIABLE_TYPE1"},{NON_TERMINAL, "VARIABLE_TYPE2"},{NON_TERMINAL, "L_VALUE"},{SPECIAL_TOKEN, "="},{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@MOV"},{NON_TERMINAL, "SIMPLE_ASSIGNMENT'"}},
{{NON_TERMINAL, "L_VALUE"},{SPECIAL_TOKEN, "="},{NON_TERMINAL, "EXPRESSION"},{SEMANTIC_RULE, "@MOV"},{NON_TERMINAL, "SIMPLE_ASSIGNMENT'"}},
{{EPSILON, "eps"}},
{{EPSILON, "eps"}},
@@ -302,9 +385,9 @@ const struct _TOKEN Rhs[RULES_COUNT][MAX_RHS_LEN]=
{{KEYWORD, "wcslen"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "WstringNumber"},{SEMANTIC_RULE, "@WCSLEN"},{SPECIAL_TOKEN, ")"}},
{{KEYWORD, "wcscmp"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "WstringNumber"},{SPECIAL_TOKEN, ","},{NON_TERMINAL, "WstringNumber"},{SEMANTIC_RULE, "@WCSCMP"},{SPECIAL_TOKEN, ")"}},
{{SPECIAL_TOKEN, "("},{NON_TERMINAL, "EXPRESSION"},{SPECIAL_TOKEN, ")"}},
- {{SEMANTIC_RULE, "@PUSH"},{REGISTER, "_register"}},
- {{SEMANTIC_RULE, "@PUSH"},{LOCAL_ID, "_local_id"}},
- {{SEMANTIC_RULE, "@PUSH"},{GLOBAL_ID, "_global_id"}},
+ {{NON_TERMINAL, "L_VALUE"},{NON_TERMINAL, "E13"}},
+ {{EPSILON, "eps"}},
+ {{SEMANTIC_RULE, "@CALL_USER_DEFINED_FUNCTION"},{SPECIAL_TOKEN, "("},{NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER"},{SPECIAL_TOKEN, ")"},{SEMANTIC_RULE, "@END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE"}},
{{SEMANTIC_RULE, "@PUSH"},{HEX, "_hex"}},
{{SEMANTIC_RULE, "@PUSH"},{DECIMAL, "_decimal"}},
{{SEMANTIC_RULE, "@PUSH"},{OCTAL, "_octal"}},
@@ -320,6 +403,7 @@ const struct _TOKEN Rhs[RULES_COUNT][MAX_RHS_LEN]=
{{SEMANTIC_RULE, "@PUSH"},{GLOBAL_ID, "_global_id"}},
{{SEMANTIC_RULE, "@PUSH"},{LOCAL_ID, "_local_id"}},
{{SEMANTIC_RULE, "@PUSH"},{REGISTER, "_register"}},
+ {{SEMANTIC_RULE, "@PUSH"},{FUNCTION_PARAMETER_ID, "_function_parameter_id"}},
{{NON_TERMINAL, "EXPRESSION"}},
{{NON_TERMINAL, "STRING"}},
{{NON_TERMINAL, "EXPRESSION"}},
@@ -338,7 +422,47 @@ const unsigned int RhsSize[RULES_COUNT]=
2,
3,
3,
+1,
2,
+4,
+1,
+1,
+1,
+1,
+1,
+2,
+2,
+3,
+3,
+7,
+3,
+2,
+2,
+2,
+2,
+2,
+2,
+2,
+2,
+2,
+2,
+2,
+2,
+1,
+1,
+4,
+4,
+8,
+1,
+5,
+6,
+1,
+2,
+6,
+1,
+3,
+4,
+1,
2,
2,
3,
@@ -404,6 +528,7 @@ const unsigned int RhsSize[RULES_COUNT]=
10,
11,
15,
+7,
5,
1,
1,
@@ -466,8 +591,8 @@ const unsigned int RhsSize[RULES_COUNT]=
7,
3,
2,
-2,
-2,
+1,
+5,
2,
2,
2,
@@ -483,6 +608,7 @@ const unsigned int RhsSize[RULES_COUNT]=
2,
2,
2,
+2,
1,
1,
1,
@@ -490,177 +616,223 @@ const unsigned int RhsSize[RULES_COUNT]=
};
const char* NoneTerminalMap[NONETERMINAL_COUNT]=
{
-"E4'",
-"INC_DEC'",
-"WSTRING",
-"E1",
-"E3",
-"EXPRESSION",
-"E3'",
-"BOOLEAN_EXPRESSION",
-"L_VALUE",
-"E5'",
-"FOR_STATEMENT",
-"INC_DEC",
-"DO_WHILE_STATEMENT",
-"VA",
-"END_OF_IF",
-"STATEMENT",
-"SIMPLE_ASSIGNMENT'",
-"E2'",
-"E4",
-"STRING",
-"WstringNumber",
-"E0'",
"ELSE_STATEMENT",
-"ELSIF_STATEMENT'",
-"E1'",
+"WstringNumber",
+"INC_DEC",
"SIMPLE_ASSIGNMENT",
-"IF_STATEMENT",
-"CALL_FUNC_STATEMENT",
+"VA",
+"L_VALUE",
+"VARIABLE_TYPE2",
+"EXPRESSION",
+"E4",
+"FOR_STATEMENT",
"E2",
+"ELSIF_STATEMENT'",
+"IF_STATEMENT",
+"VARIABLE_TYPE6",
+"E13",
+"VARIABLE_TYPE5",
+"E1'",
+"END_OF_IF",
+"E3",
+"VARIABLE_TYPE4",
+"CALL_USER_DEFINED_FUNCTION_PARAMETER2",
+"DO_WHILE_STATEMENT",
+"RETURN",
+"STRING",
+"WSTRING",
+"E5'",
"E5",
-"ASSIGNMENT_STATEMENT'",
+"StringNumber",
+"VARIABLE_TYPE1",
"E12",
-"ASSIGNMENT_STATEMENT",
-"S",
+"INC_DEC'",
+"CALL_FUNC_STATEMENT",
+"SIMPLE_ASSIGNMENT'",
+"E3'",
+"E2'",
+"E1",
+"STATEMENT",
"ELSIF_STATEMENT",
+"S2",
+"ASSIGNMENT_STATEMENT'",
+"CALL_USER_DEFINED_FUNCTION_PARAMETER",
+"STATEMENT2",
+"S",
+"BOOLEAN_EXPRESSION",
+"E4'",
+"VARIABLE_TYPE3",
"WHILE_STATEMENT",
-"StringNumber"
+"L_VALUE2",
+"E0'"
};
const char* TerminalMap[TERMINAL_COUNT]=
{
-"_wstring",
-"continue",
-"event_trace_step_in",
+"flush",
+"char",
+"physical_to_virtual",
+"else",
+"dq",
+"spinlock_unlock",
+"check_address",
+"wcscmp",
"formats",
-"(",
-"eq",
-"interlocked_decrement",
-"printf",
-"*",
-"event_trace_instrumentation_step",
"do",
-"=",
-"_hex",
-"ed",
-"^",
-"wcslen",
-"dw",
-"_octal",
-"+",
-"eb",
-"event_trace_step",
-"_global_id",
+"_decimal",
+"continue",
+"~",
+"memcpy",
+"_binary",
+"eq",
+"unsigned",
+"hi",
"spinlock_lock_custom_wait",
"event_trace_instrumentation_step_in",
-"event_enable",
-"++",
-"_register",
-"<<",
-"event_inject_error_code",
-"event_trace_step_out",
-"{",
-"else",
-"interlocked_exchange",
-"_pseudo_register",
-"spinlock_unlock",
-"_local_id",
-"strlen",
-"poi",
-"interlocked_increment",
-"not",
-";",
-"neg",
-"event_clear",
-"event_inject",
-"memcmp",
-"spinlock_lock",
-"flush",
-"--",
-"strcmp",
-"%",
-"_string",
-"db",
-"wcscmp",
-"/",
-"while",
-"hi",
-"break",
-"|",
-"check_address",
-"dq",
-"test_statement",
-"_binary",
-"event_disable",
-"disassemble_len",
-"memcpy",
-"physical_to_virtual",
-"interlocked_compare_exchange",
-"print",
-"reference",
-"interlocked_exchange_add",
-"-",
-"disassemble_len32",
-"elsif",
-"event_sc",
"dd",
+"bool",
+"(",
+"short",
+"++",
+"*",
+"break",
+"^",
+"_function_parameter_id",
"low",
-"if",
-"&",
-"$",
-"~",
-"virtual_to_physical",
-"}",
-"_decimal",
-">>",
-"pause",
-"for",
+";",
+"int",
")",
+"print",
+"$",
+"while",
+"disassemble_len32",
+"--",
+"neg",
+">>",
+"not",
+"event_inject",
+"reference",
+"-",
+"event_trace_step",
+"event_trace_instrumentation_step",
+"event_enable",
+"return",
+"_octal",
+"interlocked_compare_exchange",
+"}",
+"if",
+"event_inject_error_code",
+"_global_id",
+"db",
+"for",
+"|",
+"_hex",
+"pause",
+"double",
+"signed",
+"interlocked_increment",
+"&",
+"printf",
+"eb",
+"test_statement",
+"_wstring",
+"virtual_to_physical",
+"event_trace_step_out",
+"spinlock_lock",
+",",
+"ed",
+"long",
+"interlocked_exchange",
+"dw",
+"strcmp",
+"<<",
+"_pseudo_register",
+"%",
+"{",
+"void",
+"interlocked_exchange_add",
+"poi",
+"elsif",
+"_string",
+"memcmp",
+"wcslen",
+"/",
+"_register",
+"event_clear",
"disassemble_len64",
-","
+"strlen",
+"interlocked_decrement",
+"=",
+"+",
+"disassemble_len",
+"event_trace_step_in",
+"_local_id",
+"float",
+"event_sc",
+"event_disable"
};
const int ParseTable[NONETERMINAL_COUNT][TERMINAL_COUNT]=
{
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,102 ,-999 ,-999 ,-999 ,100 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,102 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,102 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,102 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,101 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,102 ,-999 ,-999 ,-999 ,-999 ,-999 ,102 ,-999 ,-999 ,102 ,-999 ,102 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,83 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,81 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,82 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,84 ,-999 ,-999 },
- {152 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,89 ,89 ,89 ,-999 ,89 ,-999 ,-999 ,-999 ,89 ,89 ,-999 ,89 ,89 ,89 ,89 ,89 ,-999 ,89 ,-999 ,-999 ,-999 ,-999 ,89 ,-999 ,-999 ,-999 ,-999 ,-999 ,89 ,89 ,-999 ,89 ,89 ,89 ,89 ,89 ,-999 ,89 ,-999 ,-999 ,89 ,-999 ,-999 ,-999 ,89 ,-999 ,-999 ,89 ,89 ,-999 ,-999 ,89 ,-999 ,-999 ,89 ,89 ,-999 ,89 ,-999 ,89 ,-999 ,89 ,89 ,-999 ,89 ,89 ,89 ,89 ,-999 ,-999 ,89 ,89 ,-999 ,89 ,-999 ,89 ,89 ,-999 ,89 ,-999 ,-999 ,-999 ,-999 ,89 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,95 ,95 ,95 ,-999 ,95 ,-999 ,-999 ,-999 ,95 ,95 ,-999 ,95 ,95 ,95 ,95 ,95 ,-999 ,95 ,-999 ,-999 ,-999 ,-999 ,95 ,-999 ,-999 ,-999 ,-999 ,-999 ,95 ,95 ,-999 ,95 ,95 ,95 ,95 ,95 ,-999 ,95 ,-999 ,-999 ,95 ,-999 ,-999 ,-999 ,95 ,-999 ,-999 ,95 ,95 ,-999 ,-999 ,95 ,-999 ,-999 ,95 ,95 ,-999 ,95 ,-999 ,95 ,-999 ,95 ,95 ,-999 ,95 ,95 ,95 ,95 ,-999 ,-999 ,95 ,95 ,-999 ,95 ,-999 ,95 ,95 ,-999 ,95 ,-999 ,-999 ,-999 ,-999 ,95 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,86 ,86 ,86 ,-999 ,86 ,-999 ,-999 ,-999 ,86 ,86 ,-999 ,86 ,86 ,86 ,86 ,86 ,-999 ,86 ,-999 ,-999 ,-999 ,-999 ,86 ,-999 ,-999 ,-999 ,-999 ,-999 ,86 ,86 ,-999 ,86 ,86 ,86 ,86 ,86 ,-999 ,86 ,-999 ,-999 ,86 ,-999 ,-999 ,-999 ,86 ,-999 ,-999 ,86 ,86 ,-999 ,-999 ,86 ,-999 ,-999 ,86 ,86 ,-999 ,86 ,-999 ,86 ,-999 ,86 ,86 ,-999 ,86 ,86 ,86 ,86 ,-999 ,-999 ,86 ,86 ,-999 ,86 ,-999 ,86 ,86 ,-999 ,86 ,-999 ,-999 ,-999 ,-999 ,86 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,98 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,97 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,98 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,98 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,98 ,-999 ,-999 ,-999 ,-999 ,-999 ,96 ,-999 ,-999 ,98 ,-999 ,98 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,85 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,85 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,153 ,-999 ,-999 ,-999 ,-999 ,155 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,154 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,106 ,-999 ,-999 ,-999 ,-999 ,-999 ,107 ,-999 ,-999 ,-999 ,107 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,107 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,107 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,105 ,-999 ,-999 ,-999 ,104 ,-999 ,-999 ,-999 ,107 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,107 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,107 ,-999 ,-999 ,-999 ,-999 ,-999 ,107 ,-999 ,-999 ,107 ,-999 ,107 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,76 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,80 ,-999 ,-999 ,-999 ,-999 ,80 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,80 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,75 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,66 ,-999 ,65 },
- {-999 ,73 ,73 ,73 ,-999 ,73 ,73 ,73 ,-999 ,73 ,73 ,-999 ,-999 ,73 ,-999 ,73 ,73 ,-999 ,-999 ,73 ,73 ,73 ,73 ,73 ,73 ,-999 ,73 ,-999 ,73 ,73 ,73 ,-999 ,73 ,-999 ,73 ,73 ,73 ,73 ,73 ,73 ,-999 ,73 ,73 ,73 ,73 ,73 ,73 ,-999 ,73 ,-999 ,-999 ,73 ,73 ,-999 ,73 ,73 ,73 ,-999 ,73 ,73 ,73 ,-999 ,73 ,73 ,73 ,73 ,73 ,73 ,73 ,73 ,-999 ,73 ,-999 ,73 ,73 ,73 ,73 ,-999 ,73 ,-999 ,73 ,73 ,-999 ,-999 ,73 ,73 ,-999 ,73 ,-999 },
- {-999 ,10 ,8 ,8 ,-999 ,8 ,8 ,8 ,-999 ,8 ,5 ,-999 ,-999 ,8 ,-999 ,8 ,8 ,-999 ,-999 ,8 ,8 ,7 ,8 ,8 ,8 ,-999 ,7 ,-999 ,8 ,8 ,-999 ,-999 ,8 ,-999 ,8 ,7 ,8 ,8 ,8 ,8 ,-999 ,8 ,8 ,8 ,8 ,8 ,8 ,-999 ,8 ,-999 ,-999 ,8 ,8 ,-999 ,4 ,8 ,9 ,-999 ,8 ,8 ,8 ,-999 ,8 ,8 ,8 ,8 ,8 ,8 ,8 ,8 ,-999 ,8 ,-999 ,8 ,8 ,8 ,3 ,-999 ,-999 ,-999 ,8 ,-999 ,-999 ,-999 ,8 ,6 ,-999 ,8 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,79 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,79 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,94 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,94 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,94 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,93 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,94 ,-999 ,94 },
- {-999 ,-999 ,-999 ,-999 ,99 ,99 ,99 ,-999 ,99 ,-999 ,-999 ,-999 ,99 ,99 ,-999 ,99 ,99 ,99 ,99 ,99 ,-999 ,99 ,-999 ,-999 ,-999 ,-999 ,99 ,-999 ,-999 ,-999 ,-999 ,-999 ,99 ,99 ,-999 ,99 ,99 ,99 ,99 ,99 ,-999 ,99 ,-999 ,-999 ,99 ,-999 ,-999 ,-999 ,99 ,-999 ,-999 ,99 ,99 ,-999 ,-999 ,99 ,-999 ,-999 ,99 ,99 ,-999 ,99 ,-999 ,99 ,-999 ,99 ,99 ,-999 ,99 ,99 ,99 ,99 ,-999 ,-999 ,99 ,99 ,-999 ,99 ,-999 ,99 ,99 ,-999 ,99 ,-999 ,-999 ,-999 ,-999 ,99 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,151 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {159 ,-999 ,-999 ,-999 ,158 ,158 ,158 ,-999 ,158 ,-999 ,-999 ,-999 ,158 ,158 ,-999 ,158 ,158 ,158 ,158 ,158 ,-999 ,158 ,-999 ,-999 ,-999 ,-999 ,158 ,-999 ,-999 ,-999 ,-999 ,-999 ,158 ,158 ,-999 ,158 ,158 ,158 ,158 ,158 ,-999 ,158 ,-999 ,-999 ,158 ,-999 ,-999 ,-999 ,158 ,-999 ,-999 ,158 ,158 ,-999 ,-999 ,158 ,-999 ,-999 ,158 ,158 ,-999 ,158 ,-999 ,158 ,-999 ,158 ,158 ,-999 ,158 ,158 ,158 ,158 ,-999 ,-999 ,158 ,158 ,-999 ,158 ,-999 ,158 ,158 ,-999 ,158 ,-999 ,-999 ,-999 ,-999 ,158 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,88 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,87 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,88 ,-999 ,88 },
- {-999 ,72 ,72 ,72 ,-999 ,72 ,72 ,72 ,-999 ,72 ,72 ,-999 ,-999 ,72 ,-999 ,72 ,72 ,-999 ,-999 ,72 ,72 ,72 ,72 ,72 ,72 ,-999 ,72 ,-999 ,72 ,72 ,72 ,71 ,72 ,-999 ,72 ,72 ,72 ,72 ,72 ,72 ,-999 ,72 ,72 ,72 ,72 ,72 ,72 ,-999 ,72 ,-999 ,-999 ,72 ,72 ,-999 ,72 ,72 ,72 ,-999 ,72 ,72 ,72 ,-999 ,72 ,72 ,72 ,72 ,72 ,72 ,72 ,72 ,-999 ,72 ,-999 ,72 ,72 ,72 ,72 ,-999 ,72 ,-999 ,72 ,72 ,-999 ,-999 ,72 ,72 ,-999 ,72 ,-999 },
- {-999 ,70 ,70 ,70 ,-999 ,70 ,70 ,70 ,-999 ,70 ,70 ,-999 ,-999 ,70 ,-999 ,70 ,70 ,-999 ,-999 ,70 ,70 ,70 ,70 ,70 ,70 ,-999 ,70 ,-999 ,70 ,70 ,70 ,70 ,70 ,-999 ,70 ,70 ,70 ,70 ,70 ,70 ,-999 ,70 ,70 ,70 ,70 ,70 ,70 ,-999 ,70 ,-999 ,-999 ,70 ,70 ,-999 ,70 ,70 ,70 ,-999 ,70 ,70 ,70 ,-999 ,70 ,70 ,70 ,70 ,70 ,70 ,70 ,70 ,-999 ,70 ,-999 ,70 ,70 ,70 ,70 ,-999 ,70 ,-999 ,70 ,70 ,-999 ,-999 ,70 ,70 ,-999 ,70 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,90 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,91 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,91 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,91 ,-999 ,91 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,77 ,-999 ,-999 ,-999 ,-999 ,77 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,77 ,-999 ,-999 ,-999 ,-999 ,78 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,67 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,28 ,16 ,-999 ,54 ,48 ,24 ,-999 ,30 ,-999 ,-999 ,-999 ,52 ,-999 ,61 ,37 ,-999 ,-999 ,53 ,27 ,-999 ,32 ,31 ,17 ,-999 ,-999 ,-999 ,63 ,29 ,-999 ,-999 ,55 ,-999 ,22 ,-999 ,58 ,34 ,47 ,42 ,-999 ,39 ,19 ,33 ,60 ,21 ,26 ,-999 ,59 ,-999 ,-999 ,35 ,62 ,-999 ,-999 ,40 ,-999 ,-999 ,43 ,38 ,20 ,-999 ,18 ,44 ,64 ,50 ,57 ,15 ,49 ,56 ,-999 ,45 ,-999 ,23 ,36 ,41 ,-999 ,-999 ,-999 ,-999 ,51 ,-999 ,-999 ,-999 ,25 ,-999 ,-999 ,46 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,92 ,92 ,92 ,-999 ,92 ,-999 ,-999 ,-999 ,92 ,92 ,-999 ,92 ,92 ,92 ,92 ,92 ,-999 ,92 ,-999 ,-999 ,-999 ,-999 ,92 ,-999 ,-999 ,-999 ,-999 ,-999 ,92 ,92 ,-999 ,92 ,92 ,92 ,92 ,92 ,-999 ,92 ,-999 ,-999 ,92 ,-999 ,-999 ,-999 ,92 ,-999 ,-999 ,92 ,92 ,-999 ,-999 ,92 ,-999 ,-999 ,92 ,92 ,-999 ,92 ,-999 ,92 ,-999 ,92 ,92 ,-999 ,92 ,92 ,92 ,92 ,-999 ,-999 ,92 ,92 ,-999 ,92 ,-999 ,92 ,92 ,-999 ,92 ,-999 ,-999 ,-999 ,-999 ,92 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,103 ,103 ,103 ,-999 ,103 ,-999 ,-999 ,-999 ,103 ,103 ,-999 ,103 ,103 ,103 ,103 ,103 ,-999 ,103 ,-999 ,-999 ,-999 ,-999 ,103 ,-999 ,-999 ,-999 ,-999 ,-999 ,103 ,103 ,-999 ,103 ,103 ,103 ,103 ,103 ,-999 ,103 ,-999 ,-999 ,103 ,-999 ,-999 ,-999 ,103 ,-999 ,-999 ,103 ,103 ,-999 ,-999 ,103 ,-999 ,-999 ,103 ,103 ,-999 ,103 ,-999 ,103 ,-999 ,103 ,103 ,-999 ,103 ,103 ,103 ,103 ,-999 ,-999 ,103 ,103 ,-999 ,103 ,-999 ,103 ,103 ,-999 ,103 ,-999 ,-999 ,-999 ,-999 ,103 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,14 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,13 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,137 ,128 ,122 ,-999 ,149 ,-999 ,-999 ,-999 ,141 ,126 ,-999 ,135 ,111 ,143 ,147 ,127 ,-999 ,140 ,-999 ,-999 ,-999 ,-999 ,138 ,-999 ,-999 ,-999 ,-999 ,-999 ,129 ,145 ,-999 ,139 ,132 ,108 ,121 ,116 ,-999 ,113 ,-999 ,-999 ,134 ,-999 ,-999 ,-999 ,133 ,-999 ,-999 ,109 ,136 ,-999 ,-999 ,114 ,-999 ,-999 ,117 ,112 ,-999 ,144 ,-999 ,118 ,-999 ,124 ,131 ,-999 ,123 ,130 ,146 ,119 ,-999 ,-999 ,110 ,115 ,-999 ,150 ,-999 ,148 ,125 ,-999 ,142 ,-999 ,-999 ,-999 ,-999 ,120 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,11 ,-999 ,-999 ,-999 ,-999 ,11 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,11 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,0 ,0 ,0 ,-999 ,0 ,0 ,0 ,-999 ,0 ,0 ,-999 ,-999 ,0 ,-999 ,0 ,0 ,-999 ,-999 ,0 ,0 ,0 ,0 ,0 ,0 ,-999 ,0 ,-999 ,0 ,0 ,1 ,-999 ,0 ,-999 ,0 ,0 ,0 ,0 ,0 ,0 ,-999 ,0 ,0 ,0 ,0 ,0 ,0 ,-999 ,0 ,-999 ,-999 ,0 ,0 ,-999 ,0 ,0 ,0 ,-999 ,0 ,0 ,0 ,-999 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,-999 ,0 ,-999 ,0 ,0 ,0 ,0 ,-999 ,2 ,-999 ,0 ,2 ,-999 ,-999 ,0 ,0 ,-999 ,0 ,-999 },
- {-999 ,69 ,69 ,69 ,-999 ,69 ,69 ,69 ,-999 ,69 ,69 ,-999 ,-999 ,69 ,-999 ,69 ,69 ,-999 ,-999 ,69 ,69 ,69 ,69 ,69 ,69 ,-999 ,69 ,-999 ,69 ,69 ,69 ,69 ,69 ,-999 ,69 ,69 ,69 ,69 ,69 ,69 ,-999 ,69 ,69 ,69 ,69 ,69 ,69 ,-999 ,69 ,-999 ,-999 ,69 ,69 ,-999 ,69 ,69 ,69 ,-999 ,69 ,69 ,69 ,-999 ,69 ,69 ,69 ,69 ,69 ,69 ,69 ,69 ,-999 ,69 ,68 ,69 ,69 ,69 ,69 ,-999 ,69 ,-999 ,69 ,69 ,-999 ,-999 ,69 ,69 ,-999 ,69 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,74 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,156 ,156 ,156 ,-999 ,156 ,-999 ,-999 ,-999 ,156 ,156 ,-999 ,156 ,156 ,156 ,156 ,156 ,-999 ,156 ,-999 ,-999 ,-999 ,-999 ,156 ,-999 ,-999 ,-999 ,-999 ,-999 ,156 ,156 ,-999 ,156 ,156 ,156 ,156 ,156 ,-999 ,156 ,-999 ,-999 ,156 ,-999 ,-999 ,-999 ,156 ,-999 ,157 ,156 ,156 ,-999 ,-999 ,156 ,-999 ,-999 ,156 ,156 ,-999 ,156 ,-999 ,156 ,-999 ,156 ,156 ,-999 ,156 ,156 ,156 ,156 ,-999 ,-999 ,156 ,156 ,-999 ,156 ,-999 ,156 ,156 ,-999 ,156 ,-999 ,-999 ,-999 ,-999 ,156 ,-999 }
+ {112 ,112 ,112 ,111 ,112 ,112 ,112 ,112 ,112 ,112 ,-999 ,112 ,-999 ,112 ,-999 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,-999 ,112 ,-999 ,-999 ,112 ,-999 ,112 ,112 ,-999 ,112 ,-999 ,112 ,112 ,112 ,112 ,-999 ,112 ,-999 ,112 ,112 ,112 ,-999 ,112 ,112 ,112 ,112 ,-999 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,-999 ,-999 ,112 ,112 ,112 ,112 ,-999 ,112 ,112 ,112 ,-999 ,112 ,112 ,112 ,-999 ,112 ,112 ,112 ,112 ,112 ,-999 ,-999 ,-999 ,112 ,112 ,112 ,112 ,-999 ,-999 ,112 ,112 ,-999 ,112 ,112 ,112 ,112 ,112 ,-999 ,-999 ,112 ,112 ,112 ,112 ,112 ,112 },
+ {-999 ,-999 ,200 ,-999 ,200 ,-999 ,200 ,200 ,-999 ,-999 ,200 ,-999 ,200 ,-999 ,200 ,200 ,-999 ,200 ,-999 ,-999 ,200 ,-999 ,200 ,-999 ,-999 ,200 ,-999 ,-999 ,200 ,200 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,200 ,-999 ,200 ,-999 ,200 ,-999 ,200 ,200 ,-999 ,-999 ,-999 ,-999 ,200 ,200 ,-999 ,-999 ,-999 ,200 ,200 ,-999 ,-999 ,200 ,-999 ,-999 ,-999 ,200 ,200 ,-999 ,200 ,-999 ,201 ,200 ,-999 ,-999 ,-999 ,200 ,-999 ,200 ,200 ,200 ,-999 ,200 ,-999 ,-999 ,-999 ,200 ,200 ,-999 ,-999 ,200 ,200 ,-999 ,200 ,-999 ,200 ,200 ,200 ,-999 ,200 ,200 ,-999 ,200 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,121 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,121 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,121 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,121 ,-999 ,-999 ,-999 },
+ {-999 ,117 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,117 ,-999 ,-999 ,-999 ,-999 ,117 ,-999 ,117 ,-999 ,-999 ,-999 ,-999 ,118 ,-999 ,119 ,117 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,118 ,-999 ,-999 ,-999 ,-999 ,-999 ,117 ,117 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,117 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,117 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,118 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,118 ,117 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,106 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,105 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,197 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,194 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,196 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,195 ,-999 ,-999 ,-999 },
+ {-999 ,37 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,37 ,-999 ,-999 ,-999 ,-999 ,37 ,-999 ,37 ,-999 ,-999 ,-999 ,-999 ,38 ,-999 ,-999 ,37 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,38 ,-999 ,-999 ,-999 ,-999 ,-999 ,37 ,37 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,37 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,37 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,38 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,38 ,37 ,-999 ,-999 },
+ {-999 ,-999 ,127 ,-999 ,127 ,-999 ,127 ,127 ,-999 ,-999 ,127 ,-999 ,127 ,-999 ,127 ,127 ,-999 ,127 ,-999 ,-999 ,127 ,-999 ,127 ,-999 ,-999 ,127 ,-999 ,-999 ,127 ,127 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,127 ,-999 ,127 ,-999 ,127 ,-999 ,127 ,127 ,-999 ,-999 ,-999 ,-999 ,127 ,127 ,-999 ,-999 ,-999 ,127 ,127 ,-999 ,-999 ,127 ,-999 ,-999 ,-999 ,127 ,127 ,-999 ,127 ,-999 ,-999 ,127 ,-999 ,-999 ,-999 ,127 ,-999 ,127 ,127 ,127 ,-999 ,127 ,-999 ,-999 ,-999 ,127 ,127 ,-999 ,-999 ,127 ,127 ,-999 ,127 ,-999 ,127 ,127 ,127 ,-999 ,127 ,127 ,-999 ,127 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,140 ,-999 ,140 ,-999 ,140 ,140 ,-999 ,-999 ,140 ,-999 ,140 ,-999 ,140 ,140 ,-999 ,140 ,-999 ,-999 ,140 ,-999 ,140 ,-999 ,-999 ,140 ,-999 ,-999 ,140 ,140 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,140 ,-999 ,140 ,-999 ,140 ,-999 ,140 ,140 ,-999 ,-999 ,-999 ,-999 ,140 ,140 ,-999 ,-999 ,-999 ,140 ,140 ,-999 ,-999 ,140 ,-999 ,-999 ,-999 ,140 ,140 ,-999 ,140 ,-999 ,-999 ,140 ,-999 ,-999 ,-999 ,140 ,-999 ,140 ,140 ,140 ,-999 ,140 ,-999 ,-999 ,-999 ,140 ,140 ,-999 ,-999 ,140 ,140 ,-999 ,140 ,-999 ,140 ,140 ,140 ,-999 ,140 ,140 ,-999 ,140 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,116 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,133 ,-999 ,133 ,-999 ,133 ,133 ,-999 ,-999 ,133 ,-999 ,133 ,-999 ,133 ,133 ,-999 ,133 ,-999 ,-999 ,133 ,-999 ,133 ,-999 ,-999 ,133 ,-999 ,-999 ,133 ,133 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,133 ,-999 ,133 ,-999 ,133 ,-999 ,133 ,133 ,-999 ,-999 ,-999 ,-999 ,133 ,133 ,-999 ,-999 ,-999 ,133 ,133 ,-999 ,-999 ,133 ,-999 ,-999 ,-999 ,133 ,133 ,-999 ,133 ,-999 ,-999 ,133 ,-999 ,-999 ,-999 ,133 ,-999 ,133 ,133 ,133 ,-999 ,133 ,-999 ,-999 ,-999 ,133 ,133 ,-999 ,-999 ,133 ,133 ,-999 ,133 ,-999 ,133 ,133 ,133 ,-999 ,133 ,133 ,-999 ,133 ,-999 ,-999 ,-999 },
+ {110 ,110 ,110 ,110 ,110 ,110 ,110 ,110 ,110 ,110 ,-999 ,110 ,-999 ,110 ,-999 ,110 ,110 ,110 ,110 ,110 ,110 ,110 ,-999 ,110 ,-999 ,-999 ,110 ,-999 ,110 ,110 ,-999 ,110 ,-999 ,110 ,110 ,110 ,110 ,-999 ,110 ,-999 ,110 ,110 ,110 ,-999 ,110 ,110 ,110 ,110 ,-999 ,110 ,110 ,110 ,110 ,110 ,110 ,110 ,-999 ,-999 ,110 ,110 ,110 ,110 ,-999 ,110 ,110 ,110 ,-999 ,110 ,110 ,110 ,-999 ,110 ,110 ,110 ,110 ,110 ,-999 ,-999 ,-999 ,110 ,110 ,110 ,110 ,-999 ,-999 ,110 ,110 ,-999 ,110 ,110 ,110 ,110 ,110 ,-999 ,-999 ,110 ,110 ,110 ,110 ,110 ,110 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,107 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,45 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,44 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,181 ,-999 ,-999 ,180 ,-999 ,180 ,-999 ,-999 ,180 ,-999 ,180 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,180 ,-999 ,-999 ,-999 ,180 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,180 ,-999 ,-999 ,-999 ,-999 ,-999 ,180 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,180 ,-999 ,-999 ,-999 ,-999 ,-999 ,180 ,-999 ,180 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,180 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,180 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,43 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,43 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,43 ,42 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,43 ,43 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,131 ,-999 ,-999 ,132 ,-999 ,132 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,132 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,132 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {113 ,113 ,113 ,-999 ,113 ,113 ,113 ,113 ,113 ,113 ,-999 ,113 ,-999 ,113 ,-999 ,113 ,113 ,113 ,113 ,113 ,113 ,113 ,-999 ,113 ,-999 ,-999 ,113 ,-999 ,113 ,113 ,-999 ,113 ,-999 ,113 ,113 ,113 ,113 ,-999 ,113 ,-999 ,113 ,113 ,113 ,-999 ,113 ,113 ,113 ,113 ,-999 ,113 ,113 ,113 ,113 ,113 ,113 ,113 ,-999 ,-999 ,113 ,113 ,113 ,113 ,-999 ,113 ,113 ,113 ,-999 ,113 ,113 ,113 ,-999 ,113 ,113 ,113 ,113 ,113 ,-999 ,-999 ,-999 ,113 ,113 ,113 ,113 ,-999 ,-999 ,113 ,113 ,-999 ,113 ,113 ,113 ,113 ,113 ,-999 ,-999 ,113 ,113 ,113 ,113 ,113 ,113 },
+ {-999 ,-999 ,136 ,-999 ,136 ,-999 ,136 ,136 ,-999 ,-999 ,136 ,-999 ,136 ,-999 ,136 ,136 ,-999 ,136 ,-999 ,-999 ,136 ,-999 ,136 ,-999 ,-999 ,136 ,-999 ,-999 ,136 ,136 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,136 ,-999 ,136 ,-999 ,136 ,-999 ,136 ,136 ,-999 ,-999 ,-999 ,-999 ,136 ,136 ,-999 ,-999 ,-999 ,136 ,136 ,-999 ,-999 ,136 ,-999 ,-999 ,-999 ,136 ,136 ,-999 ,136 ,-999 ,-999 ,136 ,-999 ,-999 ,-999 ,136 ,-999 ,136 ,136 ,136 ,-999 ,136 ,-999 ,-999 ,-999 ,136 ,136 ,-999 ,-999 ,136 ,136 ,-999 ,136 ,-999 ,136 ,136 ,136 ,-999 ,136 ,136 ,-999 ,136 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,41 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,40 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,51 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,50 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,115 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,26 ,-999 ,26 ,-999 ,26 ,26 ,-999 ,-999 ,26 ,-999 ,26 ,-999 ,26 ,26 ,-999 ,26 ,-999 ,-999 ,26 ,-999 ,26 ,-999 ,-999 ,26 ,-999 ,-999 ,26 ,26 ,25 ,-999 ,-999 ,-999 ,-999 ,-999 ,26 ,-999 ,26 ,-999 ,26 ,-999 ,26 ,26 ,-999 ,-999 ,-999 ,-999 ,26 ,26 ,-999 ,-999 ,-999 ,26 ,26 ,-999 ,-999 ,26 ,-999 ,-999 ,-999 ,26 ,26 ,-999 ,26 ,-999 ,-999 ,26 ,-999 ,-999 ,-999 ,26 ,-999 ,26 ,26 ,26 ,-999 ,26 ,-999 ,-999 ,-999 ,26 ,26 ,-999 ,-999 ,26 ,26 ,-999 ,26 ,-999 ,26 ,26 ,26 ,-999 ,26 ,26 ,-999 ,26 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,192 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,193 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,147 ,-999 ,148 ,-999 ,-999 ,148 ,-999 ,148 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,148 ,-999 ,-999 ,-999 ,148 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,148 ,-999 ,-999 ,-999 ,-999 ,-999 ,148 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,148 ,-999 ,-999 ,-999 ,-999 ,-999 ,148 ,-999 ,146 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,145 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,148 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,144 ,-999 ,144 ,-999 ,144 ,144 ,-999 ,-999 ,144 ,-999 ,144 ,-999 ,144 ,144 ,-999 ,144 ,-999 ,-999 ,144 ,-999 ,144 ,-999 ,-999 ,144 ,-999 ,-999 ,144 ,144 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,144 ,-999 ,144 ,-999 ,144 ,-999 ,144 ,144 ,-999 ,-999 ,-999 ,-999 ,144 ,144 ,-999 ,-999 ,-999 ,144 ,144 ,-999 ,-999 ,144 ,-999 ,-999 ,-999 ,144 ,144 ,-999 ,144 ,-999 ,-999 ,144 ,-999 ,-999 ,-999 ,144 ,-999 ,144 ,144 ,144 ,-999 ,144 ,-999 ,-999 ,-999 ,144 ,144 ,-999 ,-999 ,144 ,144 ,-999 ,144 ,-999 ,144 ,144 ,144 ,-999 ,144 ,144 ,-999 ,144 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,198 ,-999 ,198 ,-999 ,198 ,198 ,-999 ,-999 ,198 ,-999 ,198 ,-999 ,198 ,198 ,-999 ,198 ,-999 ,-999 ,198 ,-999 ,198 ,-999 ,-999 ,198 ,-999 ,-999 ,198 ,198 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,198 ,-999 ,198 ,-999 ,198 ,-999 ,198 ,198 ,-999 ,-999 ,-999 ,-999 ,198 ,198 ,-999 ,-999 ,-999 ,198 ,198 ,-999 ,-999 ,198 ,-999 ,-999 ,-999 ,198 ,198 ,-999 ,198 ,-999 ,-999 ,198 ,-999 ,-999 ,-999 ,198 ,-999 ,198 ,198 ,198 ,-999 ,198 ,-999 ,-999 ,-999 ,198 ,198 ,-999 ,199 ,198 ,198 ,-999 ,198 ,-999 ,198 ,198 ,198 ,-999 ,198 ,198 ,-999 ,198 ,-999 ,-999 ,-999 },
+ {-999 ,29 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,33 ,-999 ,-999 ,-999 ,-999 ,28 ,-999 ,30 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,31 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,36 ,34 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,32 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,27 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,35 ,-999 ,-999 },
+ {-999 ,-999 ,165 ,-999 ,153 ,-999 ,158 ,177 ,-999 ,-999 ,183 ,-999 ,189 ,-999 ,185 ,169 ,-999 ,155 ,-999 ,-999 ,151 ,-999 ,178 ,-999 ,-999 ,190 ,-999 ,-999 ,179 ,156 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,160 ,-999 ,154 ,-999 ,157 ,-999 ,164 ,187 ,-999 ,-999 ,-999 ,-999 ,184 ,172 ,-999 ,-999 ,-999 ,179 ,150 ,-999 ,-999 ,182 ,-999 ,-999 ,-999 ,162 ,191 ,-999 ,168 ,-999 ,-999 ,166 ,-999 ,-999 ,-999 ,167 ,-999 ,170 ,152 ,174 ,-999 ,186 ,-999 ,-999 ,-999 ,171 ,149 ,-999 ,-999 ,175 ,176 ,-999 ,179 ,-999 ,161 ,173 ,163 ,-999 ,188 ,159 ,-999 ,179 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,122 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,125 ,-999 ,-999 ,-999 ,-999 ,123 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,124 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {66 ,-999 ,90 ,-999 ,78 ,62 ,83 ,102 ,56 ,-999 ,-999 ,-999 ,-999 ,104 ,-999 ,94 ,-999 ,80 ,72 ,71 ,76 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,81 ,-999 ,-999 ,-999 ,55 ,-999 ,-999 ,85 ,-999 ,79 ,-999 ,82 ,73 ,89 ,-999 ,67 ,70 ,57 ,-999 ,-999 ,97 ,-999 ,-999 ,103 ,-999 ,75 ,-999 ,-999 ,-999 ,65 ,-999 ,-999 ,87 ,-999 ,64 ,93 ,60 ,-999 ,91 ,69 ,61 ,-999 ,92 ,-999 ,95 ,77 ,99 ,-999 ,-999 ,-999 ,-999 ,-999 ,96 ,74 ,-999 ,-999 ,100 ,101 ,-999 ,-999 ,59 ,86 ,98 ,88 ,-999 ,-999 ,84 ,68 ,-999 ,-999 ,63 ,58 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,120 ,-999 ,120 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,139 ,-999 ,-999 ,139 ,-999 ,139 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,137 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,139 ,-999 ,-999 ,-999 ,-999 ,-999 ,139 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,139 ,-999 ,-999 ,-999 ,-999 ,-999 ,138 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,135 ,-999 ,-999 ,135 ,-999 ,135 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,135 ,-999 ,-999 ,-999 ,-999 ,-999 ,134 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,135 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,130 ,-999 ,130 ,-999 ,130 ,130 ,-999 ,-999 ,130 ,-999 ,130 ,-999 ,130 ,130 ,-999 ,130 ,-999 ,-999 ,130 ,-999 ,130 ,-999 ,-999 ,130 ,-999 ,-999 ,130 ,130 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,130 ,-999 ,130 ,-999 ,130 ,-999 ,130 ,130 ,-999 ,-999 ,-999 ,-999 ,130 ,130 ,-999 ,-999 ,-999 ,130 ,130 ,-999 ,-999 ,130 ,-999 ,-999 ,-999 ,130 ,130 ,-999 ,130 ,-999 ,-999 ,130 ,-999 ,-999 ,-999 ,130 ,-999 ,130 ,130 ,130 ,-999 ,130 ,-999 ,-999 ,-999 ,130 ,130 ,-999 ,-999 ,130 ,130 ,-999 ,130 ,-999 ,130 ,130 ,130 ,-999 ,130 ,130 ,-999 ,130 ,-999 ,-999 ,-999 },
+ {8 ,11 ,8 ,-999 ,8 ,8 ,8 ,8 ,8 ,5 ,-999 ,10 ,-999 ,8 ,-999 ,8 ,11 ,8 ,8 ,8 ,8 ,11 ,-999 ,11 ,-999 ,-999 ,9 ,-999 ,7 ,8 ,-999 ,11 ,-999 ,8 ,-999 ,4 ,8 ,-999 ,8 ,-999 ,8 ,8 ,8 ,-999 ,8 ,8 ,8 ,-999 ,-999 ,8 ,-999 ,3 ,8 ,7 ,8 ,6 ,-999 ,-999 ,8 ,11 ,11 ,8 ,-999 ,8 ,8 ,8 ,-999 ,8 ,8 ,8 ,-999 ,8 ,11 ,8 ,8 ,8 ,-999 ,-999 ,-999 ,-999 ,11 ,8 ,8 ,-999 ,-999 ,8 ,8 ,-999 ,7 ,8 ,8 ,8 ,8 ,-999 ,-999 ,8 ,8 ,7 ,11 ,8 ,8 },
+ {109 ,109 ,109 ,109 ,109 ,109 ,109 ,109 ,109 ,109 ,-999 ,109 ,-999 ,109 ,-999 ,109 ,109 ,109 ,109 ,109 ,109 ,109 ,-999 ,109 ,-999 ,-999 ,109 ,-999 ,109 ,109 ,-999 ,109 ,-999 ,109 ,109 ,109 ,109 ,-999 ,109 ,-999 ,109 ,109 ,109 ,-999 ,109 ,109 ,109 ,109 ,-999 ,109 ,109 ,109 ,109 ,109 ,109 ,109 ,-999 ,-999 ,109 ,109 ,109 ,109 ,-999 ,109 ,109 ,109 ,-999 ,109 ,109 ,109 ,-999 ,109 ,109 ,109 ,109 ,109 ,-999 ,-999 ,-999 ,109 ,109 ,109 ,109 ,108 ,-999 ,109 ,109 ,-999 ,109 ,109 ,109 ,109 ,109 ,-999 ,-999 ,109 ,109 ,109 ,109 ,109 ,109 },
+ {12 ,12 ,12 ,-999 ,12 ,12 ,12 ,12 ,12 ,12 ,-999 ,12 ,-999 ,12 ,-999 ,12 ,12 ,12 ,12 ,12 ,12 ,12 ,-999 ,12 ,-999 ,-999 ,12 ,-999 ,12 ,12 ,-999 ,12 ,-999 ,12 ,-999 ,12 ,12 ,-999 ,12 ,-999 ,12 ,12 ,12 ,-999 ,12 ,12 ,12 ,12 ,-999 ,12 ,14 ,12 ,12 ,12 ,12 ,12 ,-999 ,-999 ,12 ,12 ,12 ,12 ,-999 ,12 ,12 ,12 ,-999 ,12 ,12 ,12 ,-999 ,12 ,12 ,12 ,12 ,12 ,-999 ,-999 ,-999 ,13 ,12 ,12 ,12 ,-999 ,-999 ,12 ,12 ,-999 ,12 ,12 ,12 ,12 ,12 ,-999 ,-999 ,12 ,12 ,12 ,12 ,12 ,12 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,52 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,53 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,54 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,49 ,-999 ,49 ,-999 ,49 ,49 ,-999 ,-999 ,49 ,-999 ,49 ,-999 ,49 ,49 ,-999 ,49 ,-999 ,-999 ,49 ,-999 ,49 ,-999 ,-999 ,49 ,-999 ,-999 ,49 ,49 ,-999 ,-999 ,48 ,-999 ,-999 ,-999 ,49 ,-999 ,49 ,-999 ,49 ,-999 ,49 ,49 ,-999 ,-999 ,-999 ,-999 ,49 ,49 ,-999 ,-999 ,-999 ,49 ,49 ,-999 ,-999 ,49 ,-999 ,-999 ,-999 ,49 ,49 ,-999 ,49 ,-999 ,-999 ,49 ,-999 ,-999 ,-999 ,49 ,-999 ,49 ,49 ,49 ,-999 ,49 ,-999 ,-999 ,-999 ,49 ,49 ,-999 ,-999 ,49 ,49 ,-999 ,49 ,-999 ,49 ,49 ,49 ,-999 ,49 ,49 ,-999 ,49 ,-999 ,-999 ,-999 },
+ {20 ,23 ,20 ,-999 ,20 ,20 ,20 ,20 ,20 ,17 ,-999 ,22 ,-999 ,20 ,-999 ,20 ,23 ,20 ,20 ,20 ,20 ,23 ,-999 ,23 ,-999 ,-999 ,21 ,-999 ,19 ,20 ,-999 ,23 ,-999 ,20 ,-999 ,16 ,20 ,-999 ,20 ,-999 ,20 ,20 ,20 ,-999 ,20 ,20 ,20 ,24 ,-999 ,20 ,-999 ,15 ,20 ,19 ,20 ,18 ,-999 ,-999 ,20 ,23 ,23 ,20 ,-999 ,20 ,20 ,20 ,-999 ,20 ,20 ,20 ,-999 ,20 ,23 ,20 ,20 ,20 ,-999 ,-999 ,-999 ,-999 ,23 ,20 ,20 ,-999 ,-999 ,20 ,20 ,-999 ,19 ,20 ,20 ,20 ,20 ,-999 ,-999 ,20 ,20 ,19 ,23 ,20 ,20 },
+ {0 ,0 ,0 ,-999 ,0 ,0 ,0 ,0 ,0 ,0 ,-999 ,0 ,-999 ,0 ,-999 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,-999 ,0 ,-999 ,-999 ,0 ,-999 ,0 ,0 ,-999 ,0 ,-999 ,0 ,2 ,0 ,0 ,-999 ,0 ,-999 ,0 ,0 ,0 ,-999 ,0 ,0 ,0 ,-999 ,-999 ,0 ,2 ,0 ,0 ,0 ,0 ,0 ,-999 ,-999 ,0 ,0 ,0 ,0 ,-999 ,0 ,0 ,0 ,-999 ,0 ,0 ,0 ,-999 ,0 ,0 ,0 ,0 ,0 ,-999 ,-999 ,-999 ,1 ,0 ,0 ,0 ,-999 ,-999 ,0 ,0 ,-999 ,0 ,0 ,0 ,0 ,0 ,-999 ,-999 ,0 ,0 ,0 ,0 ,0 ,0 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,126 ,-999 ,126 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,143 ,-999 ,-999 ,143 ,-999 ,143 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,143 ,-999 ,-999 ,-999 ,142 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,143 ,-999 ,-999 ,-999 ,-999 ,-999 ,143 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,143 ,-999 ,-999 ,-999 ,-999 ,-999 ,143 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,141 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,39 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,39 ,-999 ,-999 ,-999 ,-999 ,39 ,-999 ,39 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,39 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,39 ,39 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,39 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,39 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,39 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,114 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,47 ,-999 ,46 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,46 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,46 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,129 ,-999 ,129 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,128 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,129 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 }
};
const char* KeywordList[]= {
+"void",
+"bool",
+"char",
+"short",
+"int",
+"long",
+"unsigned",
+"signed",
+"float",
+"double",
"print",
"formats",
"event_enable",
@@ -841,6 +1013,18 @@ const char* ZeroOpFunc1[] = {
const char* VarArgFunc1[] = {
"@PRINTF"
};
+const char* VARIABLETYPE[] = {
+"@VOID",
+"@BOOL",
+"@CHAR",
+"@SHORT",
+"@INT",
+"@LONG",
+"@UNSIGNED",
+"@SIGNED",
+"@FLOAT",
+"@DOUBLE",
+};
const SYMBOL_MAP SemanticRulesMapList[]= {
{"@INC", FUNC_INC},
{"@DEC", FUNC_DEC},
@@ -881,6 +1065,25 @@ const SYMBOL_MAP SemanticRulesMapList[]= {
{"@START_OF_FOR_OMMANDS", FUNC_START_OF_FOR_OMMANDS},
{"@END_OF_IF", FUNC_END_OF_IF},
{"@IGNORE_LVALUE", FUNC_IGNORE_LVALUE},
+{"@END_OF_USER_DEFINED_FUNCTION", FUNC_END_OF_USER_DEFINED_FUNCTION},
+{"@RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE", FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE},
+{"@RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE", FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE},
+{"@CALL_USER_DEFINED_FUNCTION_PARAMETER", FUNC_CALL_USER_DEFINED_FUNCTION_PARAMETER},
+{"@END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE", FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE},
+{"@END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE", FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE},
+{"@CALL_USER_DEFINED_FUNCTION", FUNC_CALL_USER_DEFINED_FUNCTION},
+{"@START_OF_USER_DEFINED_FUNCTION", FUNC_START_OF_USER_DEFINED_FUNCTION},
+{"@MOV_RETURN_VALUE", FUNC_MOV_RETURN_VALUE},
+{"@VOID", FUNC_VOID},
+{"@BOOL", FUNC_BOOL},
+{"@CHAR", FUNC_CHAR},
+{"@SHORT", FUNC_SHORT},
+{"@INT", FUNC_INT},
+{"@LONG", FUNC_LONG},
+{"@UNSIGNED", FUNC_UNSIGNED},
+{"@SIGNED", FUNC_SIGNED},
+{"@FLOAT", FUNC_FLOAT},
+{"@DOUBLE", FUNC_DOUBLE},
{"@PRINT", FUNC_PRINT},
{"@FORMATS", FUNC_FORMATS},
{"@EVENT_ENABLE", FUNC_EVENT_ENABLE},
@@ -1179,6 +1382,7 @@ const struct _TOKEN LalrLhs[RULES_COUNT]=
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
+ {NON_TERMINAL, "E12"},
{NON_TERMINAL, "STRING"},
{NON_TERMINAL, "WSTRING"},
{NON_TERMINAL, "StringNumber"},
@@ -1261,6 +1465,7 @@ const struct _TOKEN LalrRhs[RULES_COUNT][MAX_RHS_LEN]=
{{REGISTER, "_register"},{SEMANTIC_RULE, "@PUSH"}},
{{GLOBAL_ID, "_global_id"},{SEMANTIC_RULE, "@PUSH"}},
{{LOCAL_ID, "_local_id"},{SEMANTIC_RULE, "@PUSH"}},
+ {{FUNCTION_PARAMETER_ID, "_function_parameter_id"},{SEMANTIC_RULE, "@PUSH"}},
{{HEX, "_hex"},{SEMANTIC_RULE, "@PUSH"}},
{{DECIMAL, "_decimal"},{SEMANTIC_RULE, "@PUSH"}},
{{OCTAL, "_octal"},{SEMANTIC_RULE, "@PUSH"}},
@@ -1355,6 +1560,7 @@ const unsigned int LalrRhsSize[RULES_COUNT]=
2,
2,
2,
+2,
1,
1,
1,
@@ -1362,94 +1568,95 @@ const unsigned int LalrRhsSize[RULES_COUNT]=
};
const char* LalrNoneTerminalMap[NONETERMINAL_COUNT]=
{
-"B1",
-"WSTRING",
-"E3",
-"BE",
-"E10",
-"B3",
-"B2",
-"B5",
-"E4",
-"STRING",
"WstringNumber",
-"CMP",
-"E12",
-"B4",
-"EXP",
-"E5",
-"S",
+"B3",
"B6",
-"StringNumber"
+"E4",
+"B4",
+"E3",
+"B2",
+"CMP",
+"WSTRING",
+"E5",
+"StringNumber",
+"E12",
+"E10",
+"B1",
+"S",
+"B5",
+"STRING",
+"EXP",
+"BE"
};
const char* LalrTerminalMap[TERMINAL_COUNT]=
{
-"_wstring",
-"interlocked_increment",
-"reference",
-"not",
-"neg",
-"<",
-"eb",
-"interlocked_exchange_add",
-"memcmp",
-"-",
+"&&",
+"interlocked_compare_exchange",
+"physical_to_virtual",
+"^",
+"<<",
"||",
-"disassemble_len32",
-"(",
+"%",
+"_global_id",
+"_pseudo_register",
+"dq",
">=",
-"dd",
+"db",
+"check_address",
+"wcscmp",
+"interlocked_exchange_add",
+"|",
+"_decimal",
+"_hex",
+"_function_parameter_id",
"low",
+")",
+"~",
+"poi",
+"_string",
+"memcmp",
+"/",
+"wcslen",
+"&",
+"interlocked_increment",
+"_binary",
+"$",
+"_register",
+"!=",
+"strlen",
+"disassemble_len64",
+"eb",
"eq",
"interlocked_decrement",
-"strcmp",
-"_global_id",
-"!=",
-"*",
-"&",
-"$",
-"%",
-"~",
-"_string",
-">",
-"db",
-"_hex",
-"wcscmp",
-"_register",
-"virtual_to_physical",
-"<<",
-"ed",
-"_decimal",
-"^",
-"/",
-">>",
-"interlocked_exchange",
-"|",
+"_wstring",
"hi",
-"==",
-"&&",
-"dq",
-"check_address",
-"_pseudo_register",
-"_binary",
-"wcslen",
-"disassemble_len",
-"strlen",
-"<=",
-"_local_id",
-"dw",
-")",
-"disassemble_len64",
-"physical_to_virtual",
-"poi",
-"interlocked_compare_exchange",
-"_octal",
+"disassemble_len32",
+"virtual_to_physical",
+"neg",
+"dd",
+">>",
"+",
-","
+"not",
+"disassemble_len",
+"_local_id",
+"(",
+"*",
+"reference",
+"-",
+"<=",
+",",
+">",
+"<",
+"ed",
+"==",
+"interlocked_exchange",
+"_octal",
+"dw",
+"strcmp"
};
const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]=
{
- {3 ,-999 ,11 ,2 ,14 ,5 ,4 ,7 ,12 ,-999 ,-999 ,9 ,15 ,6 ,10 ,13 ,1 ,8 ,-999 },
+ {-999 ,5 ,8 ,12 ,6 ,11 ,4 ,9 ,-999 ,13 ,-999 ,15 ,14 ,3 ,1 ,7 ,-999 ,10 ,2 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
@@ -1473,11 +1680,17 @@ const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]=
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,84 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,86 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,89 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,90 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,92 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,5 ,8 ,12 ,6 ,11 ,4 ,9 ,-999 ,13 ,-999 ,15 ,14 ,3 ,-999 ,7 ,-999 ,10 ,93 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
@@ -1507,44 +1720,36 @@ const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]=
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,111 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,5 ,112 ,7 ,12 ,-999 ,-999 ,9 ,15 ,6 ,10 ,13 ,-999 ,8 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,113 ,-999 ,7 ,12 ,-999 ,-999 ,9 ,15 ,6 ,10 ,13 ,-999 ,8 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,7 ,12 ,-999 ,-999 ,9 ,15 ,114 ,10 ,13 ,-999 ,8 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,115 ,12 ,-999 ,-999 ,9 ,15 ,-999 ,10 ,13 ,-999 ,8 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,9 ,15 ,-999 ,10 ,13 ,-999 ,116 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,117 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,118 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,119 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,120 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,121 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,122 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,14 ,-999 ,-999 ,-999 ,123 ,-999 ,-999 ,-999 ,15 ,-999 ,-999 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,14 ,-999 ,-999 ,-999 ,124 ,-999 ,-999 ,-999 ,15 ,-999 ,-999 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,14 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,15 ,-999 ,-999 ,125 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,14 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,15 ,-999 ,-999 ,126 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,127 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,15 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,128 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,15 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,129 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,15 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,132 ,-999 ,-999 ,15 ,-999 ,131 ,13 ,-999 ,-999 ,133 },
- {-999 ,136 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,137 ,-999 ,15 ,-999 ,135 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,139 ,13 ,-999 ,-999 ,-999 },
- {-999 ,136 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,141 ,-999 ,15 ,-999 ,140 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,132 ,-999 ,-999 ,15 ,-999 ,142 ,13 ,-999 ,-999 ,143 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,144 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,145 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,146 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,147 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,148 ,13 ,-999 ,-999 ,-999 },
+ {-999 ,5 ,8 ,12 ,6 ,11 ,113 ,9 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,7 ,-999 ,10 ,-999 },
+ {-999 ,114 ,8 ,12 ,6 ,11 ,-999 ,9 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,7 ,-999 ,10 ,-999 },
+ {-999 ,-999 ,8 ,12 ,115 ,11 ,-999 ,9 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,7 ,-999 ,10 ,-999 },
+ {-999 ,-999 ,8 ,12 ,-999 ,11 ,-999 ,9 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,116 ,-999 ,10 ,-999 },
+ {-999 ,-999 ,117 ,12 ,-999 ,11 ,-999 ,9 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,10 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,118 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,119 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,120 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,121 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,122 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,123 ,-999 },
+ {-999 ,-999 ,-999 ,124 ,-999 ,-999 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,125 ,-999 ,-999 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,126 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,127 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,15 ,128 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,15 ,129 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,15 ,130 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,133 ,15 ,14 ,-999 ,-999 ,-999 ,132 ,131 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,136 ,15 ,14 ,-999 ,-999 ,-999 ,132 ,135 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,137 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,138 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,139 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,140 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,149 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,150 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,151 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,152 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,153 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,154 ,13 ,-999 ,-999 ,-999 },
+ {143 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,142 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,141 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,145 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,146 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,155 ,13 ,-999 ,-999 ,-999 },
{-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,156 ,13 ,-999 ,-999 ,-999 },
@@ -1556,12 +1761,28 @@ const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]=
{-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,162 ,13 ,-999 ,-999 ,-999 },
{-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,132 ,-999 ,-999 ,15 ,-999 ,142 ,13 ,-999 ,-999 ,163 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,164 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,165 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,166 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,167 ,13 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,147 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,149 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,150 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,151 ,15 ,14 ,-999 ,-999 ,-999 ,132 ,131 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,152 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,153 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,154 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,155 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,156 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,157 ,-999 },
+ {159 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,142 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,158 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,160 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,161 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,162 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,163 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,164 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,165 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,166 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,167 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,168 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
@@ -1618,6 +1839,7 @@ const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]=
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,201 ,15 ,14 ,-999 ,-999 ,-999 ,132 ,131 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,200 ,13 ,-999 ,-999 ,-999 },
{-999 ,136 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,202 ,-999 ,15 ,-999 ,201 ,13 ,-999 ,-999 ,-999 },
@@ -1627,28 +1849,32 @@ const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]=
{-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,132 ,-999 ,-999 ,15 ,-999 ,142 ,13 ,-999 ,-999 ,203 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,202 ,-999 },
+ {204 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,142 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,203 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,205 ,15 ,14 ,-999 ,-999 ,-999 ,132 ,131 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,204 ,13 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,206 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,205 ,13 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,206 ,13 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,207 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,207 ,13 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,208 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,209 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,210 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,132 ,-999 ,-999 ,15 ,-999 ,142 ,13 ,-999 ,-999 ,208 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,209 ,13 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,211 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,210 ,13 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
@@ -1665,243 +1891,247 @@ const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]=
{-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,221 ,13 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,222 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,11 ,-999 ,14 ,-999 ,-999 ,-999 ,12 ,-999 ,-999 ,-999 ,15 ,-999 ,222 ,13 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,12 ,-999 ,11 ,-999 ,-999 ,-999 ,13 ,-999 ,15 ,14 ,-999 ,-999 ,-999 ,-999 ,223 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
{-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 }
};
const int LalrActionTable[LALR_STATE_COUNT][LALR_TERMINAL_COUNT]=
{
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-1 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,59 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-2 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-2 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-4 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-4 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,60 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-4 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-6 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-6 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,61 ,-999 ,-999 ,-6 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-6 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-8 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-8 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,62 ,-999 ,-999 ,-999 ,-8 ,-999 ,-999 ,-8 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-8 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-10 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,63 ,-10 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-10 ,-999 ,-999 ,-999 ,-10 ,-999 ,-999 ,-10 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-10 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-12 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-12 ,-12 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-12 ,-999 ,-999 ,-999 ,-12 ,-999 ,-999 ,-12 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-12 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,64 ,-999 ,-999 ,-999 ,-999 ,-13 ,-999 ,-999 ,68 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,67 ,-999 ,-13 ,-13 ,-999 ,-999 ,-999 ,65 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-13 ,-999 ,-999 ,-999 ,-13 ,-999 ,69 ,-13 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,66 ,-999 ,-999 ,-13 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-20 ,-999 ,-999 ,-999 ,-999 ,-20 ,-999 ,-999 ,-20 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-20 ,-999 ,-20 ,-20 ,-999 ,-999 ,-999 ,-20 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-20 ,-999 ,-999 ,-999 ,-20 ,-999 ,-20 ,-20 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-20 ,-999 ,-999 ,-20 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-21 ,-999 ,-999 ,-999 ,-999 ,-21 ,-999 ,-999 ,-21 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-21 ,-999 ,-21 ,-21 ,-999 ,-999 ,-999 ,-21 ,-999 ,-999 ,-999 ,-999 ,-999 ,71 ,-999 ,-999 ,-21 ,-999 ,70 ,-999 ,-21 ,-999 ,-21 ,-21 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-21 ,-999 ,-999 ,-21 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-21 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-24 ,-999 ,-999 ,-999 ,72 ,-24 ,-999 ,-999 ,-24 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-24 ,-999 ,-24 ,-24 ,-999 ,-999 ,-999 ,-24 ,-999 ,-999 ,-999 ,-999 ,-999 ,-24 ,-999 ,-999 ,-24 ,-999 ,-24 ,-999 ,-24 ,-999 ,-24 ,-24 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-24 ,-999 ,-999 ,-24 ,-999 ,-999 ,-999 ,-999 ,-999 ,73 ,-24 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-27 ,-999 ,-999 ,-999 ,-27 ,-27 ,-999 ,-999 ,-27 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-27 ,74 ,-27 ,-27 ,76 ,-999 ,-999 ,-27 ,-999 ,-999 ,-999 ,-999 ,-999 ,-27 ,-999 ,-999 ,-27 ,75 ,-27 ,-999 ,-27 ,-999 ,-27 ,-27 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-27 ,-999 ,-999 ,-27 ,-999 ,-999 ,-999 ,-999 ,-999 ,-27 ,-27 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-31 ,-999 ,-999 ,-999 ,-31 ,-31 ,-999 ,-999 ,-31 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-31 ,-31 ,-31 ,-31 ,-31 ,-999 ,-999 ,-31 ,-999 ,-999 ,-999 ,-999 ,-999 ,-31 ,-999 ,-999 ,-31 ,-31 ,-31 ,-999 ,-31 ,-999 ,-31 ,-31 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-31 ,-999 ,-999 ,-31 ,-999 ,-999 ,-999 ,-999 ,-999 ,-31 ,-31 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-32 ,-999 ,-999 ,-999 ,-32 ,-32 ,-999 ,-999 ,-32 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-32 ,-32 ,-32 ,-32 ,-32 ,-999 ,-999 ,-32 ,-999 ,-999 ,-999 ,-999 ,-999 ,-32 ,-999 ,-999 ,-32 ,-32 ,-32 ,-999 ,-32 ,-999 ,-32 ,-32 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-32 ,-999 ,-999 ,-32 ,-999 ,-999 ,-999 ,-999 ,-999 ,-32 ,-32 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,78 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,79 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,80 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-76 ,-999 ,-999 ,-999 ,-76 ,-76 ,-999 ,-999 ,-76 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-76 ,-76 ,-76 ,-76 ,-76 ,-999 ,-999 ,-76 ,-999 ,-999 ,-999 ,-999 ,-999 ,-76 ,-999 ,-999 ,-76 ,-76 ,-76 ,-999 ,-76 ,-999 ,-76 ,-76 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-76 ,-999 ,-999 ,-76 ,-999 ,-999 ,-999 ,-999 ,-999 ,-76 ,-76 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,81 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,82 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,83 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-71 ,-999 ,-999 ,-999 ,-71 ,-71 ,-999 ,-999 ,-71 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-71 ,-71 ,-71 ,-71 ,-71 ,-999 ,-999 ,-71 ,-999 ,-999 ,-999 ,-999 ,-999 ,-71 ,-999 ,-999 ,-71 ,-71 ,-71 ,-999 ,-71 ,-999 ,-71 ,-71 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-71 ,-999 ,-999 ,-71 ,-999 ,-999 ,-999 ,-999 ,-999 ,-71 ,-71 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,84 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-74 ,-999 ,-999 ,-999 ,-74 ,-74 ,-999 ,-999 ,-74 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-74 ,-74 ,-74 ,-74 ,-74 ,-999 ,-999 ,-74 ,-999 ,-999 ,-999 ,-999 ,-999 ,-74 ,-999 ,-999 ,-74 ,-74 ,-74 ,-999 ,-74 ,-999 ,-74 ,-74 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-74 ,-999 ,-999 ,-74 ,-999 ,-999 ,-999 ,-999 ,-999 ,-74 ,-74 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-72 ,-999 ,-999 ,-999 ,-72 ,-72 ,-999 ,-999 ,-72 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-72 ,-72 ,-72 ,-72 ,-72 ,-999 ,-999 ,-72 ,-999 ,-999 ,-999 ,-999 ,-999 ,-72 ,-999 ,-999 ,-72 ,-72 ,-72 ,-999 ,-72 ,-999 ,-72 ,-72 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-72 ,-999 ,-999 ,-72 ,-999 ,-999 ,-999 ,-999 ,-999 ,-72 ,-72 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,85 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-78 ,-999 ,-999 ,-999 ,-78 ,-78 ,-999 ,-999 ,-78 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-78 ,-78 ,-78 ,-78 ,-78 ,-999 ,-999 ,-78 ,-999 ,-999 ,-999 ,-999 ,-999 ,-78 ,-999 ,-999 ,-78 ,-78 ,-78 ,-999 ,-78 ,-999 ,-78 ,-78 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-78 ,-999 ,-999 ,-78 ,-999 ,-999 ,-999 ,-999 ,-999 ,-78 ,-78 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,86 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,87 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-77 ,-999 ,-999 ,-999 ,-77 ,-77 ,-999 ,-999 ,-77 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-77 ,-77 ,-77 ,-77 ,-77 ,-999 ,-999 ,-77 ,-999 ,-999 ,-999 ,-999 ,-999 ,-77 ,-999 ,-999 ,-77 ,-77 ,-77 ,-999 ,-77 ,-999 ,-77 ,-77 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-77 ,-999 ,-999 ,-77 ,-999 ,-999 ,-999 ,-999 ,-999 ,-77 ,-77 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,-999 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,89 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,90 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,91 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,92 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,93 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,94 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-75 ,-999 ,-999 ,-999 ,-75 ,-75 ,-999 ,-999 ,-75 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-75 ,-75 ,-75 ,-75 ,-75 ,-999 ,-999 ,-75 ,-999 ,-999 ,-999 ,-999 ,-999 ,-75 ,-999 ,-999 ,-75 ,-75 ,-75 ,-999 ,-75 ,-999 ,-75 ,-75 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-75 ,-999 ,-999 ,-75 ,-999 ,-999 ,-999 ,-999 ,-999 ,-75 ,-75 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,-999 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,-999 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,-999 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,97 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,98 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,99 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,100 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,101 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,102 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,103 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,104 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-73 ,-999 ,-999 ,-999 ,-73 ,-73 ,-999 ,-999 ,-73 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-73 ,-73 ,-73 ,-73 ,-73 ,-999 ,-999 ,-73 ,-999 ,-999 ,-999 ,-999 ,-999 ,-73 ,-999 ,-999 ,-73 ,-73 ,-73 ,-999 ,-73 ,-999 ,-73 ,-73 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-73 ,-999 ,-999 ,-73 ,-999 ,-999 ,-999 ,-999 ,-999 ,-73 ,-73 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,105 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,-999 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,107 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,108 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,109 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,110 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,-999 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,-999 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,130 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,134 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {138 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {138 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,134 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-35 ,-999 ,-999 ,-999 ,-35 ,-35 ,-999 ,-999 ,-35 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-35 ,-35 ,-35 ,-35 ,-35 ,-999 ,-999 ,-35 ,-999 ,-999 ,-999 ,-999 ,-999 ,-35 ,-999 ,-999 ,-35 ,-35 ,-35 ,-999 ,-35 ,-999 ,-35 ,-35 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-35 ,-999 ,-999 ,-35 ,-999 ,-999 ,-999 ,-999 ,-999 ,-35 ,-35 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-33 ,-999 ,-999 ,-999 ,-33 ,-33 ,-999 ,-999 ,-33 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-33 ,-33 ,-33 ,-33 ,-33 ,-999 ,-999 ,-33 ,-999 ,-999 ,-999 ,-999 ,-999 ,-33 ,-999 ,-999 ,-33 ,-33 ,-33 ,-999 ,-33 ,-999 ,-33 ,-33 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-33 ,-999 ,-999 ,-33 ,-999 ,-999 ,-999 ,-999 ,-999 ,-33 ,-33 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-36 ,-999 ,-999 ,-999 ,-36 ,-36 ,-999 ,-999 ,-36 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-36 ,-36 ,-36 ,-36 ,-36 ,-999 ,-999 ,-36 ,-999 ,-999 ,-999 ,-999 ,-999 ,-36 ,-999 ,-999 ,-36 ,-36 ,-36 ,-999 ,-36 ,-999 ,-36 ,-36 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-36 ,-999 ,-999 ,-36 ,-999 ,-999 ,-999 ,-999 ,-999 ,-36 ,-36 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,134 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-34 ,-999 ,-999 ,-999 ,-34 ,-34 ,-999 ,-999 ,-34 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-34 ,-34 ,-34 ,-34 ,-34 ,-999 ,-999 ,-34 ,-999 ,-999 ,-999 ,-999 ,-999 ,-34 ,-999 ,-999 ,-34 ,-34 ,-34 ,-999 ,-34 ,-999 ,-34 ,-34 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-34 ,-999 ,-999 ,-34 ,-999 ,-999 ,-999 ,-999 ,-999 ,-34 ,-34 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-37 ,-999 ,-999 ,-999 ,-37 ,-37 ,-999 ,-999 ,-37 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-37 ,-37 ,-37 ,-37 ,-37 ,-999 ,-999 ,-37 ,-999 ,-999 ,-999 ,-999 ,-999 ,-37 ,-999 ,-999 ,-37 ,-37 ,-37 ,-999 ,-37 ,-999 ,-37 ,-37 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-37 ,-999 ,-999 ,-37 ,-999 ,-999 ,-999 ,-999 ,-999 ,-37 ,-37 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-3 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-3 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,60 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-3 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-5 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-5 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,61 ,-999 ,-999 ,-5 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-5 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-7 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-7 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,62 ,-999 ,-999 ,-999 ,-7 ,-999 ,-999 ,-7 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-7 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-9 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,63 ,-9 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-9 ,-999 ,-999 ,-999 ,-9 ,-999 ,-999 ,-9 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-9 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-11 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-11 ,-11 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-11 ,-999 ,-999 ,-999 ,-11 ,-999 ,-999 ,-11 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-11 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-15 ,-999 ,-999 ,-999 ,-999 ,-15 ,-999 ,-999 ,-15 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-15 ,-999 ,-15 ,-15 ,-999 ,-999 ,-999 ,-15 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-15 ,-999 ,-999 ,-999 ,-15 ,-999 ,-15 ,-15 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-15 ,-999 ,-999 ,-15 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-14 ,-999 ,-999 ,-999 ,-999 ,-14 ,-999 ,-999 ,-14 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-14 ,-999 ,-14 ,-14 ,-999 ,-999 ,-999 ,-14 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-14 ,-999 ,-999 ,-999 ,-14 ,-999 ,-14 ,-14 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-14 ,-999 ,-999 ,-14 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-17 ,-999 ,-999 ,-999 ,-999 ,-17 ,-999 ,-999 ,-17 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-17 ,-999 ,-17 ,-17 ,-999 ,-999 ,-999 ,-17 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-17 ,-999 ,-999 ,-999 ,-17 ,-999 ,-17 ,-17 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-17 ,-999 ,-999 ,-17 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-19 ,-999 ,-999 ,-999 ,-999 ,-19 ,-999 ,-999 ,-19 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-19 ,-999 ,-19 ,-19 ,-999 ,-999 ,-999 ,-19 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-19 ,-999 ,-999 ,-999 ,-19 ,-999 ,-19 ,-19 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-19 ,-999 ,-999 ,-19 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-16 ,-999 ,-999 ,-999 ,-999 ,-16 ,-999 ,-999 ,-16 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-16 ,-999 ,-16 ,-16 ,-999 ,-999 ,-999 ,-16 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-16 ,-999 ,-999 ,-999 ,-16 ,-999 ,-16 ,-16 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-16 ,-999 ,-999 ,-16 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-18 ,-999 ,-999 ,-999 ,-999 ,-18 ,-999 ,-999 ,-18 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-18 ,-999 ,-18 ,-18 ,-999 ,-999 ,-999 ,-18 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-18 ,-999 ,-999 ,-999 ,-18 ,-999 ,-18 ,-18 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-18 ,-999 ,-999 ,-18 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-22 ,-999 ,-999 ,-999 ,72 ,-22 ,-999 ,-999 ,-22 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-22 ,-999 ,-22 ,-22 ,-999 ,-999 ,-999 ,-22 ,-999 ,-999 ,-999 ,-999 ,-999 ,-22 ,-999 ,-999 ,-22 ,-999 ,-22 ,-999 ,-22 ,-999 ,-22 ,-22 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-22 ,-999 ,-999 ,-22 ,-999 ,-999 ,-999 ,-999 ,-999 ,73 ,-22 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-23 ,-999 ,-999 ,-999 ,72 ,-23 ,-999 ,-999 ,-23 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-23 ,-999 ,-23 ,-23 ,-999 ,-999 ,-999 ,-23 ,-999 ,-999 ,-999 ,-999 ,-999 ,-23 ,-999 ,-999 ,-23 ,-999 ,-23 ,-999 ,-23 ,-999 ,-23 ,-23 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-23 ,-999 ,-999 ,-23 ,-999 ,-999 ,-999 ,-999 ,-999 ,73 ,-23 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-26 ,-999 ,-999 ,-999 ,-26 ,-26 ,-999 ,-999 ,-26 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-26 ,74 ,-26 ,-26 ,76 ,-999 ,-999 ,-26 ,-999 ,-999 ,-999 ,-999 ,-999 ,-26 ,-999 ,-999 ,-26 ,75 ,-26 ,-999 ,-26 ,-999 ,-26 ,-26 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-26 ,-999 ,-999 ,-26 ,-999 ,-999 ,-999 ,-999 ,-999 ,-26 ,-26 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-25 ,-999 ,-999 ,-999 ,-25 ,-25 ,-999 ,-999 ,-25 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-25 ,74 ,-25 ,-25 ,76 ,-999 ,-999 ,-25 ,-999 ,-999 ,-999 ,-999 ,-999 ,-25 ,-999 ,-999 ,-25 ,75 ,-25 ,-999 ,-25 ,-999 ,-25 ,-25 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-25 ,-999 ,-999 ,-25 ,-999 ,-999 ,-999 ,-999 ,-999 ,-25 ,-25 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-30 ,-999 ,-999 ,-999 ,-30 ,-30 ,-999 ,-999 ,-30 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-30 ,-30 ,-30 ,-30 ,-30 ,-999 ,-999 ,-30 ,-999 ,-999 ,-999 ,-999 ,-999 ,-30 ,-999 ,-999 ,-30 ,-30 ,-30 ,-999 ,-30 ,-999 ,-30 ,-30 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-30 ,-999 ,-999 ,-30 ,-999 ,-999 ,-999 ,-999 ,-999 ,-30 ,-30 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-28 ,-999 ,-999 ,-999 ,-28 ,-28 ,-999 ,-999 ,-28 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-28 ,-28 ,-28 ,-28 ,-28 ,-999 ,-999 ,-28 ,-999 ,-999 ,-999 ,-999 ,-999 ,-28 ,-999 ,-999 ,-28 ,-28 ,-28 ,-999 ,-28 ,-999 ,-28 ,-28 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-28 ,-999 ,-999 ,-28 ,-999 ,-999 ,-999 ,-999 ,-999 ,-28 ,-28 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-29 ,-999 ,-999 ,-999 ,-29 ,-29 ,-999 ,-999 ,-29 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-29 ,-29 ,-29 ,-29 ,-29 ,-999 ,-999 ,-29 ,-999 ,-999 ,-999 ,-999 ,-999 ,-29 ,-999 ,-999 ,-29 ,-29 ,-29 ,-999 ,-29 ,-999 ,-29 ,-29 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-29 ,-999 ,-999 ,-29 ,-999 ,-999 ,-999 ,-999 ,-999 ,-29 ,-29 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-70 ,-999 ,-999 ,-999 ,-70 ,-70 ,-999 ,-999 ,-70 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-70 ,-70 ,-70 ,-70 ,-70 ,-999 ,-999 ,-70 ,-999 ,-999 ,-999 ,-999 ,-999 ,-70 ,-999 ,-999 ,-70 ,-70 ,-70 ,-999 ,-70 ,-999 ,-70 ,-70 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-70 ,-999 ,-999 ,-70 ,-999 ,-999 ,-999 ,-999 ,-999 ,-70 ,-70 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-81 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-82 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-82 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,169 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-79 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-79 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,170 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-84 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-84 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,171 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-80 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-80 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,172 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,173 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,174 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-81 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-81 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,175 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,176 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,177 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,178 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,179 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,180 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,181 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,182 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,183 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,184 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,185 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,186 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,187 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,188 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,189 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,190 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,191 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,192 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,193 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,194 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,195 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,196 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,197 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,198 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,199 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-48 ,-999 ,-999 ,-999 ,-48 ,-48 ,-999 ,-999 ,-48 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-48 ,-48 ,-48 ,-48 ,-48 ,-999 ,-999 ,-48 ,-999 ,-999 ,-999 ,-999 ,-999 ,-48 ,-999 ,-999 ,-48 ,-48 ,-48 ,-999 ,-48 ,-999 ,-48 ,-48 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-48 ,-999 ,-999 ,-48 ,-999 ,-999 ,-999 ,-999 ,-999 ,-48 ,-48 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-65 ,-999 ,-999 ,-999 ,-65 ,-65 ,-999 ,-999 ,-65 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-65 ,-65 ,-65 ,-65 ,-65 ,-999 ,-999 ,-65 ,-999 ,-999 ,-999 ,-999 ,-999 ,-65 ,-999 ,-999 ,-65 ,-65 ,-65 ,-999 ,-65 ,-999 ,-65 ,-65 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-65 ,-999 ,-999 ,-65 ,-999 ,-999 ,-999 ,-999 ,-999 ,-65 ,-65 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {138 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-50 ,-999 ,-999 ,-999 ,-50 ,-50 ,-999 ,-999 ,-50 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-50 ,-50 ,-50 ,-50 ,-50 ,-999 ,-999 ,-50 ,-999 ,-999 ,-999 ,-999 ,-999 ,-50 ,-999 ,-999 ,-50 ,-50 ,-50 ,-999 ,-50 ,-999 ,-50 ,-50 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-50 ,-999 ,-999 ,-50 ,-999 ,-999 ,-999 ,-999 ,-999 ,-50 ,-50 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-49 ,-999 ,-999 ,-999 ,-49 ,-49 ,-999 ,-999 ,-49 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-49 ,-49 ,-49 ,-49 ,-49 ,-999 ,-999 ,-49 ,-999 ,-999 ,-999 ,-999 ,-999 ,-49 ,-999 ,-999 ,-49 ,-49 ,-49 ,-999 ,-49 ,-999 ,-49 ,-49 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-49 ,-999 ,-999 ,-49 ,-999 ,-999 ,-999 ,-999 ,-999 ,-49 ,-49 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-68 ,-999 ,-999 ,-999 ,-68 ,-68 ,-999 ,-999 ,-68 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-68 ,-68 ,-68 ,-68 ,-68 ,-999 ,-999 ,-68 ,-999 ,-999 ,-999 ,-999 ,-999 ,-68 ,-999 ,-999 ,-68 ,-68 ,-68 ,-999 ,-68 ,-999 ,-68 ,-68 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-68 ,-999 ,-999 ,-68 ,-999 ,-999 ,-999 ,-999 ,-999 ,-68 ,-68 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,134 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-51 ,-999 ,-999 ,-999 ,-51 ,-51 ,-999 ,-999 ,-51 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-51 ,-51 ,-51 ,-51 ,-51 ,-999 ,-999 ,-51 ,-999 ,-999 ,-999 ,-999 ,-999 ,-51 ,-999 ,-999 ,-51 ,-51 ,-51 ,-999 ,-51 ,-999 ,-51 ,-51 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-51 ,-999 ,-999 ,-51 ,-999 ,-999 ,-999 ,-999 ,-999 ,-51 ,-51 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-52 ,-999 ,-999 ,-999 ,-52 ,-52 ,-999 ,-999 ,-52 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-52 ,-52 ,-52 ,-52 ,-52 ,-999 ,-999 ,-52 ,-999 ,-999 ,-999 ,-999 ,-999 ,-52 ,-999 ,-999 ,-52 ,-52 ,-52 ,-999 ,-52 ,-999 ,-52 ,-52 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-52 ,-999 ,-999 ,-52 ,-999 ,-999 ,-999 ,-999 ,-999 ,-52 ,-52 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-54 ,-999 ,-999 ,-999 ,-54 ,-54 ,-999 ,-999 ,-54 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-54 ,-54 ,-54 ,-54 ,-54 ,-999 ,-999 ,-54 ,-999 ,-999 ,-999 ,-999 ,-999 ,-54 ,-999 ,-999 ,-54 ,-54 ,-54 ,-999 ,-54 ,-999 ,-54 ,-54 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-54 ,-999 ,-999 ,-54 ,-999 ,-999 ,-999 ,-999 ,-999 ,-54 ,-54 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-41 ,-999 ,-999 ,-999 ,-41 ,-41 ,-999 ,-999 ,-41 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-41 ,-41 ,-41 ,-41 ,-41 ,-999 ,-999 ,-41 ,-999 ,-999 ,-999 ,-999 ,-999 ,-41 ,-999 ,-999 ,-41 ,-41 ,-41 ,-999 ,-41 ,-999 ,-41 ,-41 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-41 ,-999 ,-999 ,-41 ,-999 ,-999 ,-999 ,-999 ,-999 ,-41 ,-41 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-53 ,-999 ,-999 ,-999 ,-53 ,-53 ,-999 ,-999 ,-53 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-53 ,-53 ,-53 ,-53 ,-53 ,-999 ,-999 ,-53 ,-999 ,-999 ,-999 ,-999 ,-999 ,-53 ,-999 ,-999 ,-53 ,-53 ,-53 ,-999 ,-53 ,-999 ,-53 ,-53 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-53 ,-999 ,-999 ,-53 ,-999 ,-999 ,-999 ,-999 ,-999 ,-53 ,-53 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-46 ,-999 ,-999 ,-999 ,-46 ,-46 ,-999 ,-999 ,-46 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-46 ,-46 ,-46 ,-46 ,-46 ,-999 ,-999 ,-46 ,-999 ,-999 ,-999 ,-999 ,-999 ,-46 ,-999 ,-999 ,-46 ,-46 ,-46 ,-999 ,-46 ,-999 ,-46 ,-46 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-46 ,-999 ,-999 ,-46 ,-999 ,-999 ,-999 ,-999 ,-999 ,-46 ,-46 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-39 ,-999 ,-999 ,-999 ,-39 ,-39 ,-999 ,-999 ,-39 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-39 ,-39 ,-39 ,-39 ,-39 ,-999 ,-999 ,-39 ,-999 ,-999 ,-999 ,-999 ,-999 ,-39 ,-999 ,-999 ,-39 ,-39 ,-39 ,-999 ,-39 ,-999 ,-39 ,-39 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-39 ,-999 ,-999 ,-39 ,-999 ,-999 ,-999 ,-999 ,-999 ,-39 ,-39 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-55 ,-999 ,-999 ,-999 ,-55 ,-55 ,-999 ,-999 ,-55 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-55 ,-55 ,-55 ,-55 ,-55 ,-999 ,-999 ,-55 ,-999 ,-999 ,-999 ,-999 ,-999 ,-55 ,-999 ,-999 ,-55 ,-55 ,-55 ,-999 ,-55 ,-999 ,-55 ,-55 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-55 ,-999 ,-999 ,-55 ,-999 ,-999 ,-999 ,-999 ,-999 ,-55 ,-55 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-42 ,-999 ,-999 ,-999 ,-42 ,-42 ,-999 ,-999 ,-42 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-42 ,-42 ,-42 ,-42 ,-42 ,-999 ,-999 ,-42 ,-999 ,-999 ,-999 ,-999 ,-999 ,-42 ,-999 ,-999 ,-42 ,-42 ,-42 ,-999 ,-42 ,-999 ,-42 ,-42 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-42 ,-999 ,-999 ,-42 ,-999 ,-999 ,-999 ,-999 ,-999 ,-42 ,-42 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-44 ,-999 ,-999 ,-999 ,-44 ,-44 ,-999 ,-999 ,-44 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-44 ,-44 ,-44 ,-44 ,-44 ,-999 ,-999 ,-44 ,-999 ,-999 ,-999 ,-999 ,-999 ,-44 ,-999 ,-999 ,-44 ,-44 ,-44 ,-999 ,-44 ,-999 ,-44 ,-44 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-44 ,-999 ,-999 ,-44 ,-999 ,-999 ,-999 ,-999 ,-999 ,-44 ,-44 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-47 ,-999 ,-999 ,-999 ,-47 ,-47 ,-999 ,-999 ,-47 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-47 ,-47 ,-47 ,-47 ,-47 ,-999 ,-999 ,-47 ,-999 ,-999 ,-999 ,-999 ,-999 ,-47 ,-999 ,-999 ,-47 ,-47 ,-47 ,-999 ,-47 ,-999 ,-47 ,-47 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-47 ,-999 ,-999 ,-47 ,-999 ,-999 ,-999 ,-999 ,-999 ,-47 ,-47 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-57 ,-999 ,-999 ,-999 ,-57 ,-57 ,-999 ,-999 ,-57 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-57 ,-57 ,-57 ,-57 ,-57 ,-999 ,-999 ,-57 ,-999 ,-999 ,-999 ,-999 ,-999 ,-57 ,-999 ,-999 ,-57 ,-57 ,-57 ,-999 ,-57 ,-999 ,-57 ,-57 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-57 ,-999 ,-999 ,-57 ,-999 ,-999 ,-999 ,-999 ,-999 ,-57 ,-57 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-38 ,-999 ,-999 ,-999 ,-38 ,-38 ,-999 ,-999 ,-38 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-38 ,-38 ,-38 ,-38 ,-38 ,-999 ,-999 ,-38 ,-999 ,-999 ,-999 ,-999 ,-999 ,-38 ,-999 ,-999 ,-38 ,-38 ,-38 ,-999 ,-38 ,-999 ,-38 ,-38 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-38 ,-999 ,-999 ,-38 ,-999 ,-999 ,-999 ,-999 ,-999 ,-38 ,-38 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-56 ,-999 ,-999 ,-999 ,-56 ,-56 ,-999 ,-999 ,-56 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-56 ,-56 ,-56 ,-56 ,-56 ,-999 ,-999 ,-56 ,-999 ,-999 ,-999 ,-999 ,-999 ,-56 ,-999 ,-999 ,-56 ,-56 ,-56 ,-999 ,-56 ,-999 ,-56 ,-56 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-56 ,-999 ,-999 ,-56 ,-999 ,-999 ,-999 ,-999 ,-999 ,-56 ,-56 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-45 ,-999 ,-999 ,-999 ,-45 ,-45 ,-999 ,-999 ,-45 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-45 ,-45 ,-45 ,-45 ,-45 ,-999 ,-999 ,-45 ,-999 ,-999 ,-999 ,-999 ,-999 ,-45 ,-999 ,-999 ,-45 ,-45 ,-45 ,-999 ,-45 ,-999 ,-45 ,-45 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-45 ,-999 ,-999 ,-45 ,-999 ,-999 ,-999 ,-999 ,-999 ,-45 ,-45 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,134 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-43 ,-999 ,-999 ,-999 ,-43 ,-43 ,-999 ,-999 ,-43 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-43 ,-43 ,-43 ,-43 ,-43 ,-999 ,-999 ,-43 ,-999 ,-999 ,-999 ,-999 ,-999 ,-43 ,-999 ,-999 ,-43 ,-43 ,-43 ,-999 ,-43 ,-999 ,-43 ,-43 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-43 ,-999 ,-999 ,-43 ,-999 ,-999 ,-999 ,-999 ,-999 ,-43 ,-43 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-40 ,-999 ,-999 ,-999 ,-40 ,-40 ,-999 ,-999 ,-40 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-40 ,-40 ,-40 ,-40 ,-40 ,-999 ,-999 ,-40 ,-999 ,-999 ,-999 ,-999 ,-999 ,-40 ,-999 ,-999 ,-40 ,-40 ,-40 ,-999 ,-40 ,-999 ,-40 ,-40 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-40 ,-999 ,-999 ,-40 ,-999 ,-999 ,-999 ,-999 ,-999 ,-40 ,-40 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,211 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-83 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,212 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,213 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,214 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,215 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,216 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,217 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,218 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,219 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,220 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-63 ,-999 ,-999 ,-999 ,-63 ,-63 ,-999 ,-999 ,-63 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-63 ,-63 ,-63 ,-63 ,-63 ,-999 ,-999 ,-63 ,-999 ,-999 ,-999 ,-999 ,-999 ,-63 ,-999 ,-999 ,-63 ,-63 ,-63 ,-999 ,-63 ,-999 ,-63 ,-63 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-63 ,-999 ,-999 ,-63 ,-999 ,-999 ,-999 ,-999 ,-999 ,-63 ,-63 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-69 ,-999 ,-999 ,-999 ,-69 ,-69 ,-999 ,-999 ,-69 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-69 ,-69 ,-69 ,-69 ,-69 ,-999 ,-999 ,-69 ,-999 ,-999 ,-999 ,-999 ,-999 ,-69 ,-999 ,-999 ,-69 ,-69 ,-69 ,-999 ,-69 ,-999 ,-69 ,-69 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-69 ,-999 ,-999 ,-69 ,-999 ,-999 ,-999 ,-999 ,-999 ,-69 ,-69 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-58 ,-999 ,-999 ,-999 ,-58 ,-58 ,-999 ,-999 ,-58 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-58 ,-58 ,-58 ,-58 ,-58 ,-999 ,-999 ,-58 ,-999 ,-999 ,-999 ,-999 ,-999 ,-58 ,-999 ,-999 ,-58 ,-58 ,-58 ,-999 ,-58 ,-999 ,-58 ,-58 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-58 ,-999 ,-999 ,-58 ,-999 ,-999 ,-999 ,-999 ,-999 ,-58 ,-58 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-59 ,-999 ,-999 ,-999 ,-59 ,-59 ,-999 ,-999 ,-59 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-59 ,-59 ,-59 ,-59 ,-59 ,-999 ,-999 ,-59 ,-999 ,-999 ,-999 ,-999 ,-999 ,-59 ,-999 ,-999 ,-59 ,-59 ,-59 ,-999 ,-59 ,-999 ,-59 ,-59 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-59 ,-999 ,-999 ,-59 ,-999 ,-999 ,-999 ,-999 ,-999 ,-59 ,-59 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-62 ,-999 ,-999 ,-999 ,-62 ,-62 ,-999 ,-999 ,-62 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-62 ,-62 ,-62 ,-62 ,-62 ,-999 ,-999 ,-62 ,-999 ,-999 ,-999 ,-999 ,-999 ,-62 ,-999 ,-999 ,-62 ,-62 ,-62 ,-999 ,-62 ,-999 ,-62 ,-62 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-62 ,-999 ,-999 ,-62 ,-999 ,-999 ,-999 ,-999 ,-999 ,-62 ,-62 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-60 ,-999 ,-999 ,-999 ,-60 ,-60 ,-999 ,-999 ,-60 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-60 ,-60 ,-60 ,-60 ,-60 ,-999 ,-999 ,-60 ,-999 ,-999 ,-999 ,-999 ,-999 ,-60 ,-999 ,-999 ,-60 ,-60 ,-60 ,-999 ,-60 ,-999 ,-60 ,-60 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-60 ,-999 ,-999 ,-60 ,-999 ,-999 ,-999 ,-999 ,-999 ,-60 ,-60 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-66 ,-999 ,-999 ,-999 ,-66 ,-66 ,-999 ,-999 ,-66 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-66 ,-66 ,-66 ,-66 ,-66 ,-999 ,-999 ,-66 ,-999 ,-999 ,-999 ,-999 ,-999 ,-66 ,-999 ,-999 ,-66 ,-66 ,-66 ,-999 ,-66 ,-999 ,-66 ,-66 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-66 ,-999 ,-999 ,-66 ,-999 ,-999 ,-999 ,-999 ,-999 ,-66 ,-66 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-61 ,-999 ,-999 ,-999 ,-61 ,-61 ,-999 ,-999 ,-61 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-61 ,-61 ,-61 ,-61 ,-61 ,-999 ,-999 ,-61 ,-999 ,-999 ,-999 ,-999 ,-999 ,-61 ,-999 ,-999 ,-61 ,-61 ,-61 ,-999 ,-61 ,-999 ,-61 ,-61 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-61 ,-999 ,-999 ,-61 ,-999 ,-999 ,-999 ,-999 ,-999 ,-61 ,-61 },
- {-999 ,31 ,36 ,34 ,54 ,-999 ,39 ,44 ,22 ,41 ,-999 ,23 ,16 ,-999 ,56 ,50 ,49 ,28 ,52 ,27 ,-999 ,42 ,58 ,-999 ,-999 ,33 ,-999 ,-999 ,35 ,26 ,18 ,24 ,46 ,-999 ,37 ,40 ,-999 ,-999 ,-999 ,55 ,-999 ,43 ,-999 ,-999 ,38 ,45 ,29 ,32 ,21 ,19 ,17 ,-999 ,51 ,30 ,-999 ,25 ,48 ,47 ,57 ,20 ,53 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,223 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,224 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-67 ,-999 ,-999 ,-999 ,-67 ,-67 ,-999 ,-999 ,-67 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-67 ,-67 ,-67 ,-67 ,-67 ,-999 ,-999 ,-67 ,-999 ,-999 ,-999 ,-999 ,-999 ,-67 ,-999 ,-999 ,-67 ,-67 ,-67 ,-999 ,-67 ,-999 ,-67 ,-67 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-67 ,-999 ,-999 ,-67 ,-999 ,-999 ,-999 ,-999 ,-999 ,-67 ,-67 },
- {-999 ,-999 ,-999 ,-999 ,-999 ,-64 ,-999 ,-999 ,-999 ,-64 ,-64 ,-999 ,-999 ,-64 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-64 ,-64 ,-64 ,-64 ,-64 ,-999 ,-999 ,-64 ,-999 ,-999 ,-999 ,-999 ,-999 ,-64 ,-999 ,-999 ,-64 ,-64 ,-64 ,-999 ,-64 ,-999 ,-64 ,-64 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-64 ,-999 ,-999 ,-64 ,-999 ,-999 ,-999 ,-999 ,-999 ,-64 ,-64 }
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-1 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,60 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-2 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-2 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {61 ,-999 ,-999 ,-999 ,-999 ,-4 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-4 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-4 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-6 ,-999 ,-999 ,-999 ,-999 ,-6 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,62 ,-999 ,-999 ,-999 ,-999 ,-6 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-6 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-8 ,-999 ,-999 ,63 ,-999 ,-8 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-8 ,-999 ,-999 ,-999 ,-999 ,-8 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-8 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-10 ,-999 ,-999 ,-10 ,-999 ,-10 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-10 ,-999 ,-999 ,-999 ,-999 ,-10 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,64 ,-999 ,-999 ,-10 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-12 ,-999 ,-999 ,-12 ,-999 ,-12 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-12 ,-999 ,-999 ,-999 ,-999 ,-12 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-12 ,-999 ,-999 ,-12 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-13 ,-999 ,-999 ,-13 ,-999 ,-13 ,-999 ,-999 ,-999 ,-999 ,69 ,-999 ,-999 ,-999 ,-999 ,-13 ,-999 ,-999 ,-999 ,-999 ,-13 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-13 ,-999 ,-999 ,-13 ,-999 ,67 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,70 ,-999 ,65 ,68 ,-999 ,66 ,-999 ,-999 ,-999 ,-999 },
+ {-20 ,-999 ,-999 ,-20 ,-999 ,-20 ,-999 ,-999 ,-999 ,-999 ,-20 ,-999 ,-999 ,-999 ,-999 ,-20 ,-999 ,-999 ,-999 ,-999 ,-20 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-20 ,-999 ,-999 ,-20 ,-999 ,-20 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-20 ,-999 ,-20 ,-20 ,-999 ,-20 ,-999 ,-999 ,-999 ,-999 },
+ {-21 ,-999 ,-999 ,-21 ,71 ,-21 ,-999 ,-999 ,-999 ,-999 ,-21 ,-999 ,-999 ,-999 ,-999 ,-21 ,-999 ,-999 ,-999 ,-999 ,-21 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-21 ,-999 ,-999 ,-21 ,-999 ,-21 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,72 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-21 ,-21 ,-21 ,-21 ,-999 ,-21 ,-999 ,-999 ,-999 ,-999 },
+ {-24 ,-999 ,-999 ,-24 ,-24 ,-24 ,-999 ,-999 ,-999 ,-999 ,-24 ,-999 ,-999 ,-999 ,-999 ,-24 ,-999 ,-999 ,-999 ,-999 ,-24 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-24 ,-999 ,-999 ,-24 ,-999 ,-24 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-24 ,74 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,73 ,-24 ,-24 ,-24 ,-24 ,-999 ,-24 ,-999 ,-999 ,-999 ,-999 },
+ {-27 ,-999 ,-999 ,-27 ,-27 ,-27 ,77 ,-999 ,-999 ,-999 ,-27 ,-999 ,-999 ,-999 ,-999 ,-27 ,-999 ,-999 ,-999 ,-999 ,-27 ,-999 ,-999 ,-999 ,-999 ,76 ,-999 ,-27 ,-999 ,-999 ,-27 ,-999 ,-27 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-27 ,-27 ,-999 ,-999 ,-999 ,-999 ,75 ,-999 ,-27 ,-27 ,-27 ,-27 ,-27 ,-999 ,-27 ,-999 ,-999 ,-999 ,-999 },
+ {-31 ,-999 ,-999 ,-31 ,-31 ,-31 ,-31 ,-999 ,-999 ,-999 ,-31 ,-999 ,-999 ,-999 ,-999 ,-31 ,-999 ,-999 ,-999 ,-999 ,-31 ,-999 ,-999 ,-999 ,-999 ,-31 ,-999 ,-31 ,-999 ,-999 ,-31 ,-999 ,-31 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-31 ,-31 ,-999 ,-999 ,-999 ,-999 ,-31 ,-999 ,-31 ,-31 ,-31 ,-31 ,-31 ,-999 ,-31 ,-999 ,-999 ,-999 ,-999 },
+ {-32 ,-999 ,-999 ,-32 ,-32 ,-32 ,-32 ,-999 ,-999 ,-999 ,-32 ,-999 ,-999 ,-999 ,-999 ,-32 ,-999 ,-999 ,-999 ,-999 ,-32 ,-999 ,-999 ,-999 ,-999 ,-32 ,-999 ,-32 ,-999 ,-999 ,-32 ,-999 ,-32 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-32 ,-32 ,-999 ,-999 ,-999 ,-999 ,-32 ,-999 ,-32 ,-32 ,-32 ,-32 ,-32 ,-999 ,-32 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,78 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,79 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,80 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,81 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,82 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-78 ,-999 ,-999 ,-78 ,-78 ,-78 ,-78 ,-999 ,-999 ,-999 ,-78 ,-999 ,-999 ,-999 ,-999 ,-78 ,-999 ,-999 ,-999 ,-999 ,-78 ,-999 ,-999 ,-999 ,-999 ,-78 ,-999 ,-78 ,-999 ,-999 ,-78 ,-999 ,-78 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-78 ,-78 ,-999 ,-999 ,-999 ,-999 ,-78 ,-999 ,-78 ,-78 ,-78 ,-78 ,-78 ,-999 ,-78 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,83 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,-999 ,54 ,-999 ,36 ,-999 ,44 ,-999 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,-999 ,34 ,31 ,51 ,33 ,-999 ,42 ,-999 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-72 ,-999 ,-999 ,-72 ,-72 ,-72 ,-72 ,-999 ,-999 ,-999 ,-72 ,-999 ,-999 ,-999 ,-999 ,-72 ,-999 ,-999 ,-999 ,-999 ,-72 ,-999 ,-999 ,-999 ,-999 ,-72 ,-999 ,-72 ,-999 ,-999 ,-72 ,-999 ,-72 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-72 ,-72 ,-999 ,-999 ,-999 ,-999 ,-72 ,-999 ,-72 ,-72 ,-72 ,-72 ,-72 ,-999 ,-72 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,85 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,-999 ,54 ,-999 ,36 ,-999 ,44 ,-999 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,-999 ,34 ,31 ,51 ,33 ,-999 ,42 ,-999 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,87 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,88 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,-999 ,54 ,-999 ,36 ,-999 ,44 ,-999 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,-999 ,34 ,31 ,51 ,33 ,-999 ,42 ,-999 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,-999 ,54 ,-999 ,36 ,-999 ,44 ,-999 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,-999 ,34 ,31 ,51 ,33 ,-999 ,42 ,-999 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,91 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,-999 ,54 ,-999 ,36 ,-999 ,44 ,-999 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,-999 ,34 ,31 ,51 ,33 ,-999 ,42 ,-999 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,94 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,95 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,96 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,97 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,98 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,99 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,100 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-74 ,-999 ,-999 ,-74 ,-74 ,-74 ,-74 ,-999 ,-999 ,-999 ,-74 ,-999 ,-999 ,-999 ,-999 ,-74 ,-999 ,-999 ,-999 ,-999 ,-74 ,-999 ,-999 ,-999 ,-999 ,-74 ,-999 ,-74 ,-999 ,-999 ,-74 ,-999 ,-74 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-74 ,-74 ,-999 ,-999 ,-999 ,-999 ,-74 ,-999 ,-74 ,-74 ,-74 ,-74 ,-74 ,-999 ,-74 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,101 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,102 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,103 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-77 ,-999 ,-999 ,-77 ,-77 ,-77 ,-77 ,-999 ,-999 ,-999 ,-77 ,-999 ,-999 ,-999 ,-999 ,-77 ,-999 ,-999 ,-999 ,-999 ,-77 ,-999 ,-999 ,-999 ,-999 ,-77 ,-999 ,-77 ,-999 ,-999 ,-77 ,-999 ,-77 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-77 ,-77 ,-999 ,-999 ,-999 ,-999 ,-77 ,-999 ,-77 ,-77 ,-77 ,-77 ,-77 ,-999 ,-77 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,104 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,105 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,106 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-76 ,-999 ,-999 ,-76 ,-76 ,-76 ,-76 ,-999 ,-999 ,-999 ,-76 ,-999 ,-999 ,-999 ,-999 ,-76 ,-999 ,-999 ,-999 ,-999 ,-76 ,-999 ,-999 ,-999 ,-999 ,-76 ,-999 ,-76 ,-999 ,-999 ,-76 ,-999 ,-76 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-76 ,-76 ,-999 ,-999 ,-999 ,-999 ,-76 ,-999 ,-76 ,-76 ,-76 ,-76 ,-76 ,-999 ,-76 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,107 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-73 ,-999 ,-999 ,-73 ,-73 ,-73 ,-73 ,-999 ,-999 ,-999 ,-73 ,-999 ,-999 ,-999 ,-999 ,-73 ,-999 ,-999 ,-999 ,-999 ,-73 ,-999 ,-999 ,-999 ,-999 ,-73 ,-999 ,-73 ,-999 ,-999 ,-73 ,-999 ,-73 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-73 ,-73 ,-999 ,-999 ,-999 ,-999 ,-73 ,-999 ,-73 ,-73 ,-73 ,-73 ,-73 ,-999 ,-73 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,108 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-75 ,-999 ,-999 ,-75 ,-75 ,-75 ,-75 ,-999 ,-999 ,-999 ,-75 ,-999 ,-999 ,-999 ,-999 ,-75 ,-999 ,-999 ,-999 ,-999 ,-75 ,-999 ,-999 ,-999 ,-999 ,-75 ,-999 ,-75 ,-999 ,-999 ,-75 ,-999 ,-75 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-75 ,-75 ,-999 ,-999 ,-999 ,-999 ,-75 ,-999 ,-75 ,-75 ,-75 ,-75 ,-75 ,-999 ,-75 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,109 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,110 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-79 ,-999 ,-999 ,-79 ,-79 ,-79 ,-79 ,-999 ,-999 ,-999 ,-79 ,-999 ,-999 ,-999 ,-999 ,-79 ,-999 ,-999 ,-999 ,-999 ,-79 ,-999 ,-999 ,-999 ,-999 ,-79 ,-999 ,-79 ,-999 ,-999 ,-79 ,-999 ,-79 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-79 ,-79 ,-999 ,-999 ,-999 ,-999 ,-79 ,-999 ,-79 ,-79 ,-79 ,-79 ,-79 ,-999 ,-79 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,111 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-71 ,-999 ,-999 ,-71 ,-71 ,-71 ,-71 ,-999 ,-999 ,-999 ,-71 ,-999 ,-999 ,-999 ,-999 ,-71 ,-999 ,-999 ,-999 ,-999 ,-71 ,-999 ,-999 ,-999 ,-999 ,-71 ,-999 ,-71 ,-999 ,-999 ,-71 ,-999 ,-71 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-71 ,-71 ,-999 ,-999 ,-999 ,-999 ,-71 ,-999 ,-71 ,-71 ,-71 ,-71 ,-71 ,-999 ,-71 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,112 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,134 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,134 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-37 ,-999 ,-999 ,-37 ,-37 ,-37 ,-37 ,-999 ,-999 ,-999 ,-37 ,-999 ,-999 ,-999 ,-999 ,-37 ,-999 ,-999 ,-999 ,-999 ,-37 ,-999 ,-999 ,-999 ,-999 ,-37 ,-999 ,-37 ,-999 ,-999 ,-37 ,-999 ,-37 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-37 ,-37 ,-999 ,-999 ,-999 ,-999 ,-37 ,-999 ,-37 ,-37 ,-37 ,-37 ,-37 ,-999 ,-37 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,144 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-36 ,-999 ,-999 ,-36 ,-36 ,-36 ,-36 ,-999 ,-999 ,-999 ,-36 ,-999 ,-999 ,-999 ,-999 ,-36 ,-999 ,-999 ,-999 ,-999 ,-36 ,-999 ,-999 ,-999 ,-999 ,-36 ,-999 ,-36 ,-999 ,-999 ,-36 ,-999 ,-36 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-36 ,-36 ,-999 ,-999 ,-999 ,-999 ,-36 ,-999 ,-36 ,-36 ,-36 ,-36 ,-36 ,-999 ,-36 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-35 ,-999 ,-999 ,-35 ,-35 ,-35 ,-35 ,-999 ,-999 ,-999 ,-35 ,-999 ,-999 ,-999 ,-999 ,-35 ,-999 ,-999 ,-999 ,-999 ,-35 ,-999 ,-999 ,-999 ,-999 ,-35 ,-999 ,-35 ,-999 ,-999 ,-35 ,-999 ,-35 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-35 ,-35 ,-999 ,-999 ,-999 ,-999 ,-35 ,-999 ,-35 ,-35 ,-35 ,-35 ,-35 ,-999 ,-35 ,-999 ,-999 ,-999 ,-999 },
+ {-33 ,-999 ,-999 ,-33 ,-33 ,-33 ,-33 ,-999 ,-999 ,-999 ,-33 ,-999 ,-999 ,-999 ,-999 ,-33 ,-999 ,-999 ,-999 ,-999 ,-33 ,-999 ,-999 ,-999 ,-999 ,-33 ,-999 ,-33 ,-999 ,-999 ,-33 ,-999 ,-33 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-33 ,-33 ,-999 ,-999 ,-999 ,-999 ,-33 ,-999 ,-33 ,-33 ,-33 ,-33 ,-33 ,-999 ,-33 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-34 ,-999 ,-999 ,-34 ,-34 ,-34 ,-34 ,-999 ,-999 ,-999 ,-34 ,-999 ,-999 ,-999 ,-999 ,-34 ,-999 ,-999 ,-999 ,-999 ,-34 ,-999 ,-999 ,-999 ,-999 ,-34 ,-999 ,-34 ,-999 ,-999 ,-34 ,-999 ,-34 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-34 ,-34 ,-999 ,-999 ,-999 ,-999 ,-34 ,-999 ,-34 ,-34 ,-34 ,-34 ,-34 ,-999 ,-34 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,148 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,134 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,144 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {61 ,-999 ,-999 ,-999 ,-999 ,-3 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-3 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-3 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-5 ,-999 ,-999 ,-999 ,-999 ,-5 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,62 ,-999 ,-999 ,-999 ,-999 ,-5 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-5 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-7 ,-999 ,-999 ,63 ,-999 ,-7 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-7 ,-999 ,-999 ,-999 ,-999 ,-7 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-7 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-9 ,-999 ,-999 ,-9 ,-999 ,-9 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-9 ,-999 ,-999 ,-999 ,-999 ,-9 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,64 ,-999 ,-999 ,-9 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-11 ,-999 ,-999 ,-11 ,-999 ,-11 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-11 ,-999 ,-999 ,-999 ,-999 ,-11 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-11 ,-999 ,-999 ,-11 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-14 ,-999 ,-999 ,-14 ,-999 ,-14 ,-999 ,-999 ,-999 ,-999 ,-14 ,-999 ,-999 ,-999 ,-999 ,-14 ,-999 ,-999 ,-999 ,-999 ,-14 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-14 ,-999 ,-999 ,-14 ,-999 ,-14 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-14 ,-999 ,-14 ,-14 ,-999 ,-14 ,-999 ,-999 ,-999 ,-999 },
+ {-18 ,-999 ,-999 ,-18 ,-999 ,-18 ,-999 ,-999 ,-999 ,-999 ,-18 ,-999 ,-999 ,-999 ,-999 ,-18 ,-999 ,-999 ,-999 ,-999 ,-18 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-18 ,-999 ,-999 ,-18 ,-999 ,-18 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-18 ,-999 ,-18 ,-18 ,-999 ,-18 ,-999 ,-999 ,-999 ,-999 },
+ {-19 ,-999 ,-999 ,-19 ,-999 ,-19 ,-999 ,-999 ,-999 ,-999 ,-19 ,-999 ,-999 ,-999 ,-999 ,-19 ,-999 ,-999 ,-999 ,-999 ,-19 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-19 ,-999 ,-999 ,-19 ,-999 ,-19 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-19 ,-999 ,-19 ,-19 ,-999 ,-19 ,-999 ,-999 ,-999 ,-999 },
+ {-15 ,-999 ,-999 ,-15 ,-999 ,-15 ,-999 ,-999 ,-999 ,-999 ,-15 ,-999 ,-999 ,-999 ,-999 ,-15 ,-999 ,-999 ,-999 ,-999 ,-15 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-15 ,-999 ,-999 ,-15 ,-999 ,-15 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-15 ,-999 ,-15 ,-15 ,-999 ,-15 ,-999 ,-999 ,-999 ,-999 },
+ {-16 ,-999 ,-999 ,-16 ,-999 ,-16 ,-999 ,-999 ,-999 ,-999 ,-16 ,-999 ,-999 ,-999 ,-999 ,-16 ,-999 ,-999 ,-999 ,-999 ,-16 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-16 ,-999 ,-999 ,-16 ,-999 ,-16 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-16 ,-999 ,-16 ,-16 ,-999 ,-16 ,-999 ,-999 ,-999 ,-999 },
+ {-17 ,-999 ,-999 ,-17 ,-999 ,-17 ,-999 ,-999 ,-999 ,-999 ,-17 ,-999 ,-999 ,-999 ,-999 ,-17 ,-999 ,-999 ,-999 ,-999 ,-17 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-17 ,-999 ,-999 ,-17 ,-999 ,-17 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-17 ,-999 ,-17 ,-17 ,-999 ,-17 ,-999 ,-999 ,-999 ,-999 },
+ {-23 ,-999 ,-999 ,-23 ,-23 ,-23 ,-999 ,-999 ,-999 ,-999 ,-23 ,-999 ,-999 ,-999 ,-999 ,-23 ,-999 ,-999 ,-999 ,-999 ,-23 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-23 ,-999 ,-999 ,-23 ,-999 ,-23 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-23 ,74 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,73 ,-23 ,-23 ,-23 ,-23 ,-999 ,-23 ,-999 ,-999 ,-999 ,-999 },
+ {-22 ,-999 ,-999 ,-22 ,-22 ,-22 ,-999 ,-999 ,-999 ,-999 ,-22 ,-999 ,-999 ,-999 ,-999 ,-22 ,-999 ,-999 ,-999 ,-999 ,-22 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-22 ,-999 ,-999 ,-22 ,-999 ,-22 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-22 ,74 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,73 ,-22 ,-22 ,-22 ,-22 ,-999 ,-22 ,-999 ,-999 ,-999 ,-999 },
+ {-26 ,-999 ,-999 ,-26 ,-26 ,-26 ,77 ,-999 ,-999 ,-999 ,-26 ,-999 ,-999 ,-999 ,-999 ,-26 ,-999 ,-999 ,-999 ,-999 ,-26 ,-999 ,-999 ,-999 ,-999 ,76 ,-999 ,-26 ,-999 ,-999 ,-26 ,-999 ,-26 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-26 ,-26 ,-999 ,-999 ,-999 ,-999 ,75 ,-999 ,-26 ,-26 ,-26 ,-26 ,-26 ,-999 ,-26 ,-999 ,-999 ,-999 ,-999 },
+ {-25 ,-999 ,-999 ,-25 ,-25 ,-25 ,77 ,-999 ,-999 ,-999 ,-25 ,-999 ,-999 ,-999 ,-999 ,-25 ,-999 ,-999 ,-999 ,-999 ,-25 ,-999 ,-999 ,-999 ,-999 ,76 ,-999 ,-25 ,-999 ,-999 ,-25 ,-999 ,-25 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-25 ,-25 ,-999 ,-999 ,-999 ,-999 ,75 ,-999 ,-25 ,-25 ,-25 ,-25 ,-25 ,-999 ,-25 ,-999 ,-999 ,-999 ,-999 },
+ {-30 ,-999 ,-999 ,-30 ,-30 ,-30 ,-30 ,-999 ,-999 ,-999 ,-30 ,-999 ,-999 ,-999 ,-999 ,-30 ,-999 ,-999 ,-999 ,-999 ,-30 ,-999 ,-999 ,-999 ,-999 ,-30 ,-999 ,-30 ,-999 ,-999 ,-30 ,-999 ,-30 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-30 ,-30 ,-999 ,-999 ,-999 ,-999 ,-30 ,-999 ,-30 ,-30 ,-30 ,-30 ,-30 ,-999 ,-30 ,-999 ,-999 ,-999 ,-999 },
+ {-28 ,-999 ,-999 ,-28 ,-28 ,-28 ,-28 ,-999 ,-999 ,-999 ,-28 ,-999 ,-999 ,-999 ,-999 ,-28 ,-999 ,-999 ,-999 ,-999 ,-28 ,-999 ,-999 ,-999 ,-999 ,-28 ,-999 ,-28 ,-999 ,-999 ,-28 ,-999 ,-28 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-28 ,-28 ,-999 ,-999 ,-999 ,-999 ,-28 ,-999 ,-28 ,-28 ,-28 ,-28 ,-28 ,-999 ,-28 ,-999 ,-999 ,-999 ,-999 },
+ {-29 ,-999 ,-999 ,-29 ,-29 ,-29 ,-29 ,-999 ,-999 ,-999 ,-29 ,-999 ,-999 ,-999 ,-999 ,-29 ,-999 ,-999 ,-999 ,-999 ,-29 ,-999 ,-999 ,-999 ,-999 ,-29 ,-999 ,-29 ,-999 ,-999 ,-29 ,-999 ,-29 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-29 ,-29 ,-999 ,-999 ,-999 ,-999 ,-29 ,-999 ,-29 ,-29 ,-29 ,-29 ,-29 ,-999 ,-29 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-82 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-82 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-83 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-83 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,169 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-80 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-80 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,170 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,171 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,172 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,173 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,174 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,175 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-84 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-85 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-85 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,177 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-81 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-81 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,178 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,179 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,180 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-70 ,-999 ,-999 ,-70 ,-70 ,-70 ,-70 ,-999 ,-999 ,-999 ,-70 ,-999 ,-999 ,-999 ,-999 ,-70 ,-999 ,-999 ,-999 ,-999 ,-70 ,-999 ,-999 ,-999 ,-999 ,-70 ,-999 ,-70 ,-999 ,-999 ,-70 ,-999 ,-70 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-70 ,-70 ,-999 ,-999 ,-999 ,-999 ,-70 ,-999 ,-70 ,-70 ,-70 ,-70 ,-70 ,-999 ,-70 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,181 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,182 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,183 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,184 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,185 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,186 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,187 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,188 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,189 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-84 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,191 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,192 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,193 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,194 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,195 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,196 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,197 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,198 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,199 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,200 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,134 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-48 ,-999 ,-999 ,-48 ,-48 ,-48 ,-48 ,-999 ,-999 ,-999 ,-48 ,-999 ,-999 ,-999 ,-999 ,-48 ,-999 ,-999 ,-999 ,-999 ,-48 ,-999 ,-999 ,-999 ,-999 ,-48 ,-999 ,-48 ,-999 ,-999 ,-48 ,-999 ,-48 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-48 ,-48 ,-999 ,-999 ,-999 ,-999 ,-48 ,-999 ,-48 ,-48 ,-48 ,-48 ,-48 ,-999 ,-48 ,-999 ,-999 ,-999 ,-999 },
+ {-65 ,-999 ,-999 ,-65 ,-65 ,-65 ,-65 ,-999 ,-999 ,-999 ,-65 ,-999 ,-999 ,-999 ,-999 ,-65 ,-999 ,-999 ,-999 ,-999 ,-65 ,-999 ,-999 ,-999 ,-999 ,-65 ,-999 ,-65 ,-999 ,-999 ,-65 ,-999 ,-65 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-65 ,-65 ,-999 ,-999 ,-999 ,-999 ,-65 ,-999 ,-65 ,-65 ,-65 ,-65 ,-65 ,-999 ,-65 ,-999 ,-999 ,-999 ,-999 },
+ {-57 ,-999 ,-999 ,-57 ,-57 ,-57 ,-57 ,-999 ,-999 ,-999 ,-57 ,-999 ,-999 ,-999 ,-999 ,-57 ,-999 ,-999 ,-999 ,-999 ,-57 ,-999 ,-999 ,-999 ,-999 ,-57 ,-999 ,-57 ,-999 ,-999 ,-57 ,-999 ,-57 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-57 ,-57 ,-999 ,-999 ,-999 ,-999 ,-57 ,-999 ,-57 ,-57 ,-57 ,-57 ,-57 ,-999 ,-57 ,-999 ,-999 ,-999 ,-999 },
+ {-45 ,-999 ,-999 ,-45 ,-45 ,-45 ,-45 ,-999 ,-999 ,-999 ,-45 ,-999 ,-999 ,-999 ,-999 ,-45 ,-999 ,-999 ,-999 ,-999 ,-45 ,-999 ,-999 ,-999 ,-999 ,-45 ,-999 ,-45 ,-999 ,-999 ,-45 ,-999 ,-45 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-45 ,-45 ,-999 ,-999 ,-999 ,-999 ,-45 ,-999 ,-45 ,-45 ,-45 ,-45 ,-45 ,-999 ,-45 ,-999 ,-999 ,-999 ,-999 },
+ {-56 ,-999 ,-999 ,-56 ,-56 ,-56 ,-56 ,-999 ,-999 ,-999 ,-56 ,-999 ,-999 ,-999 ,-999 ,-56 ,-999 ,-999 ,-999 ,-999 ,-56 ,-999 ,-999 ,-999 ,-999 ,-56 ,-999 ,-56 ,-999 ,-999 ,-56 ,-999 ,-56 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-56 ,-56 ,-999 ,-999 ,-999 ,-999 ,-56 ,-999 ,-56 ,-56 ,-56 ,-56 ,-56 ,-999 ,-56 ,-999 ,-999 ,-999 ,-999 },
+ {-39 ,-999 ,-999 ,-39 ,-39 ,-39 ,-39 ,-999 ,-999 ,-999 ,-39 ,-999 ,-999 ,-999 ,-999 ,-39 ,-999 ,-999 ,-999 ,-999 ,-39 ,-999 ,-999 ,-999 ,-999 ,-39 ,-999 ,-39 ,-999 ,-999 ,-39 ,-999 ,-39 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-39 ,-39 ,-999 ,-999 ,-999 ,-999 ,-39 ,-999 ,-39 ,-39 ,-39 ,-39 ,-39 ,-999 ,-39 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,144 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-43 ,-999 ,-999 ,-43 ,-43 ,-43 ,-43 ,-999 ,-999 ,-999 ,-43 ,-999 ,-999 ,-999 ,-999 ,-43 ,-999 ,-999 ,-999 ,-999 ,-43 ,-999 ,-999 ,-999 ,-999 ,-43 ,-999 ,-43 ,-999 ,-999 ,-43 ,-999 ,-43 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-43 ,-43 ,-999 ,-999 ,-999 ,-999 ,-43 ,-999 ,-43 ,-43 ,-43 ,-43 ,-43 ,-999 ,-43 ,-999 ,-999 ,-999 ,-999 },
+ {-51 ,-999 ,-999 ,-51 ,-51 ,-51 ,-51 ,-999 ,-999 ,-999 ,-51 ,-999 ,-999 ,-999 ,-999 ,-51 ,-999 ,-999 ,-999 ,-999 ,-51 ,-999 ,-999 ,-999 ,-999 ,-51 ,-999 ,-51 ,-999 ,-999 ,-51 ,-999 ,-51 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-51 ,-51 ,-999 ,-999 ,-999 ,-999 ,-51 ,-999 ,-51 ,-51 ,-51 ,-51 ,-51 ,-999 ,-51 ,-999 ,-999 ,-999 ,-999 },
+ {-50 ,-999 ,-999 ,-50 ,-50 ,-50 ,-50 ,-999 ,-999 ,-999 ,-50 ,-999 ,-999 ,-999 ,-999 ,-50 ,-999 ,-999 ,-999 ,-999 ,-50 ,-999 ,-999 ,-999 ,-999 ,-50 ,-999 ,-50 ,-999 ,-999 ,-50 ,-999 ,-50 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-50 ,-50 ,-999 ,-999 ,-999 ,-999 ,-50 ,-999 ,-50 ,-50 ,-50 ,-50 ,-50 ,-999 ,-50 ,-999 ,-999 ,-999 ,-999 },
+ {-46 ,-999 ,-999 ,-46 ,-46 ,-46 ,-46 ,-999 ,-999 ,-999 ,-46 ,-999 ,-999 ,-999 ,-999 ,-46 ,-999 ,-999 ,-999 ,-999 ,-46 ,-999 ,-999 ,-999 ,-999 ,-46 ,-999 ,-46 ,-999 ,-999 ,-46 ,-999 ,-46 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-46 ,-46 ,-999 ,-999 ,-999 ,-999 ,-46 ,-999 ,-46 ,-46 ,-46 ,-46 ,-46 ,-999 ,-46 ,-999 ,-999 ,-999 ,-999 },
+ {-53 ,-999 ,-999 ,-53 ,-53 ,-53 ,-53 ,-999 ,-999 ,-999 ,-53 ,-999 ,-999 ,-999 ,-999 ,-53 ,-999 ,-999 ,-999 ,-999 ,-53 ,-999 ,-999 ,-999 ,-999 ,-53 ,-999 ,-53 ,-999 ,-999 ,-53 ,-999 ,-53 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-53 ,-53 ,-999 ,-999 ,-999 ,-999 ,-53 ,-999 ,-53 ,-53 ,-53 ,-53 ,-53 ,-999 ,-53 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,134 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-42 ,-999 ,-999 ,-42 ,-42 ,-42 ,-42 ,-999 ,-999 ,-999 ,-42 ,-999 ,-999 ,-999 ,-999 ,-42 ,-999 ,-999 ,-999 ,-999 ,-42 ,-999 ,-999 ,-999 ,-999 ,-42 ,-999 ,-42 ,-999 ,-999 ,-42 ,-999 ,-42 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-42 ,-42 ,-999 ,-999 ,-999 ,-999 ,-42 ,-999 ,-42 ,-42 ,-42 ,-42 ,-42 ,-999 ,-42 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-47 ,-999 ,-999 ,-47 ,-47 ,-47 ,-47 ,-999 ,-999 ,-999 ,-47 ,-999 ,-999 ,-999 ,-999 ,-47 ,-999 ,-999 ,-999 ,-999 ,-47 ,-999 ,-999 ,-999 ,-999 ,-47 ,-999 ,-47 ,-999 ,-999 ,-47 ,-999 ,-47 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-47 ,-47 ,-999 ,-999 ,-999 ,-999 ,-47 ,-999 ,-47 ,-47 ,-47 ,-47 ,-47 ,-999 ,-47 ,-999 ,-999 ,-999 ,-999 },
+ {-52 ,-999 ,-999 ,-52 ,-52 ,-52 ,-52 ,-999 ,-999 ,-999 ,-52 ,-999 ,-999 ,-999 ,-999 ,-52 ,-999 ,-999 ,-999 ,-999 ,-52 ,-999 ,-999 ,-999 ,-999 ,-52 ,-999 ,-52 ,-999 ,-999 ,-52 ,-999 ,-52 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-52 ,-52 ,-999 ,-999 ,-999 ,-999 ,-52 ,-999 ,-52 ,-52 ,-52 ,-52 ,-52 ,-999 ,-52 ,-999 ,-999 ,-999 ,-999 },
+ {-55 ,-999 ,-999 ,-55 ,-55 ,-55 ,-55 ,-999 ,-999 ,-999 ,-55 ,-999 ,-999 ,-999 ,-999 ,-55 ,-999 ,-999 ,-999 ,-999 ,-55 ,-999 ,-999 ,-999 ,-999 ,-55 ,-999 ,-55 ,-999 ,-999 ,-55 ,-999 ,-55 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-55 ,-55 ,-999 ,-999 ,-999 ,-999 ,-55 ,-999 ,-55 ,-55 ,-55 ,-55 ,-55 ,-999 ,-55 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-49 ,-999 ,-999 ,-49 ,-49 ,-49 ,-49 ,-999 ,-999 ,-999 ,-49 ,-999 ,-999 ,-999 ,-999 ,-49 ,-999 ,-999 ,-999 ,-999 ,-49 ,-999 ,-999 ,-999 ,-999 ,-49 ,-999 ,-49 ,-999 ,-999 ,-49 ,-999 ,-49 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-49 ,-49 ,-999 ,-999 ,-999 ,-999 ,-49 ,-999 ,-49 ,-49 ,-49 ,-49 ,-49 ,-999 ,-49 ,-999 ,-999 ,-999 ,-999 },
+ {-68 ,-999 ,-999 ,-68 ,-68 ,-68 ,-68 ,-999 ,-999 ,-999 ,-68 ,-999 ,-999 ,-999 ,-999 ,-68 ,-999 ,-999 ,-999 ,-999 ,-68 ,-999 ,-999 ,-999 ,-999 ,-68 ,-999 ,-68 ,-999 ,-999 ,-68 ,-999 ,-68 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-68 ,-68 ,-999 ,-999 ,-999 ,-999 ,-68 ,-999 ,-68 ,-68 ,-68 ,-68 ,-68 ,-999 ,-68 ,-999 ,-999 ,-999 ,-999 },
+ {-44 ,-999 ,-999 ,-44 ,-44 ,-44 ,-44 ,-999 ,-999 ,-999 ,-44 ,-999 ,-999 ,-999 ,-999 ,-44 ,-999 ,-999 ,-999 ,-999 ,-44 ,-999 ,-999 ,-999 ,-999 ,-44 ,-999 ,-44 ,-999 ,-999 ,-44 ,-999 ,-44 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-44 ,-44 ,-999 ,-999 ,-999 ,-999 ,-44 ,-999 ,-44 ,-44 ,-44 ,-44 ,-44 ,-999 ,-44 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-54 ,-999 ,-999 ,-54 ,-54 ,-54 ,-54 ,-999 ,-999 ,-999 ,-54 ,-999 ,-999 ,-999 ,-999 ,-54 ,-999 ,-999 ,-999 ,-999 ,-54 ,-999 ,-999 ,-999 ,-999 ,-54 ,-999 ,-54 ,-999 ,-999 ,-54 ,-999 ,-54 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-54 ,-54 ,-999 ,-999 ,-999 ,-999 ,-54 ,-999 ,-54 ,-54 ,-54 ,-54 ,-54 ,-999 ,-54 ,-999 ,-999 ,-999 ,-999 },
+ {-38 ,-999 ,-999 ,-38 ,-38 ,-38 ,-38 ,-999 ,-999 ,-999 ,-38 ,-999 ,-999 ,-999 ,-999 ,-38 ,-999 ,-999 ,-999 ,-999 ,-38 ,-999 ,-999 ,-999 ,-999 ,-38 ,-999 ,-38 ,-999 ,-999 ,-38 ,-999 ,-38 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-38 ,-38 ,-999 ,-999 ,-999 ,-999 ,-38 ,-999 ,-38 ,-38 ,-38 ,-38 ,-38 ,-999 ,-38 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-40 ,-999 ,-999 ,-40 ,-40 ,-40 ,-40 ,-999 ,-999 ,-999 ,-40 ,-999 ,-999 ,-999 ,-999 ,-40 ,-999 ,-999 ,-999 ,-999 ,-40 ,-999 ,-999 ,-999 ,-999 ,-40 ,-999 ,-40 ,-999 ,-999 ,-40 ,-999 ,-40 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-40 ,-40 ,-999 ,-999 ,-999 ,-999 ,-40 ,-999 ,-40 ,-40 ,-40 ,-40 ,-40 ,-999 ,-40 ,-999 ,-999 ,-999 ,-999 },
+ {-41 ,-999 ,-999 ,-41 ,-41 ,-41 ,-41 ,-999 ,-999 ,-999 ,-41 ,-999 ,-999 ,-999 ,-999 ,-41 ,-999 ,-999 ,-999 ,-999 ,-41 ,-999 ,-999 ,-999 ,-999 ,-41 ,-999 ,-41 ,-999 ,-999 ,-41 ,-999 ,-41 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-41 ,-41 ,-999 ,-999 ,-999 ,-999 ,-41 ,-999 ,-41 ,-41 ,-41 ,-41 ,-41 ,-999 ,-41 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,212 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,213 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-84 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,214 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,215 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,216 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,217 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,218 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,219 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,220 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,221 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-66 ,-999 ,-999 ,-66 ,-66 ,-66 ,-66 ,-999 ,-999 ,-999 ,-66 ,-999 ,-999 ,-999 ,-999 ,-66 ,-999 ,-999 ,-999 ,-999 ,-66 ,-999 ,-999 ,-999 ,-999 ,-66 ,-999 ,-66 ,-999 ,-999 ,-66 ,-999 ,-66 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-66 ,-66 ,-999 ,-999 ,-999 ,-999 ,-66 ,-999 ,-66 ,-66 ,-66 ,-66 ,-66 ,-999 ,-66 ,-999 ,-999 ,-999 ,-999 },
+ {-63 ,-999 ,-999 ,-63 ,-63 ,-63 ,-63 ,-999 ,-999 ,-999 ,-63 ,-999 ,-999 ,-999 ,-999 ,-63 ,-999 ,-999 ,-999 ,-999 ,-63 ,-999 ,-999 ,-999 ,-999 ,-63 ,-999 ,-63 ,-999 ,-999 ,-63 ,-999 ,-63 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-63 ,-63 ,-999 ,-999 ,-999 ,-999 ,-63 ,-999 ,-63 ,-63 ,-63 ,-63 ,-63 ,-999 ,-63 ,-999 ,-999 ,-999 ,-999 },
+ {-69 ,-999 ,-999 ,-69 ,-69 ,-69 ,-69 ,-999 ,-999 ,-999 ,-69 ,-999 ,-999 ,-999 ,-999 ,-69 ,-999 ,-999 ,-999 ,-999 ,-69 ,-999 ,-999 ,-999 ,-999 ,-69 ,-999 ,-69 ,-999 ,-999 ,-69 ,-999 ,-69 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-69 ,-69 ,-999 ,-999 ,-999 ,-999 ,-69 ,-999 ,-69 ,-69 ,-69 ,-69 ,-69 ,-999 ,-69 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-60 ,-999 ,-999 ,-60 ,-60 ,-60 ,-60 ,-999 ,-999 ,-999 ,-60 ,-999 ,-999 ,-999 ,-999 ,-60 ,-999 ,-999 ,-999 ,-999 ,-60 ,-999 ,-999 ,-999 ,-999 ,-60 ,-999 ,-60 ,-999 ,-999 ,-60 ,-999 ,-60 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-60 ,-60 ,-999 ,-999 ,-999 ,-999 ,-60 ,-999 ,-60 ,-60 ,-60 ,-60 ,-60 ,-999 ,-60 ,-999 ,-999 ,-999 ,-999 },
+ {-58 ,-999 ,-999 ,-58 ,-58 ,-58 ,-58 ,-999 ,-999 ,-999 ,-58 ,-999 ,-999 ,-999 ,-999 ,-58 ,-999 ,-999 ,-999 ,-999 ,-58 ,-999 ,-999 ,-999 ,-999 ,-58 ,-999 ,-58 ,-999 ,-999 ,-58 ,-999 ,-58 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-58 ,-58 ,-999 ,-999 ,-999 ,-999 ,-58 ,-999 ,-58 ,-58 ,-58 ,-58 ,-58 ,-999 ,-58 ,-999 ,-999 ,-999 ,-999 },
+ {-61 ,-999 ,-999 ,-61 ,-61 ,-61 ,-61 ,-999 ,-999 ,-999 ,-61 ,-999 ,-999 ,-999 ,-999 ,-61 ,-999 ,-999 ,-999 ,-999 ,-61 ,-999 ,-999 ,-999 ,-999 ,-61 ,-999 ,-61 ,-999 ,-999 ,-61 ,-999 ,-61 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-61 ,-61 ,-999 ,-999 ,-999 ,-999 ,-61 ,-999 ,-61 ,-61 ,-61 ,-61 ,-61 ,-999 ,-61 ,-999 ,-999 ,-999 ,-999 },
+ {-62 ,-999 ,-999 ,-62 ,-62 ,-62 ,-62 ,-999 ,-999 ,-999 ,-62 ,-999 ,-999 ,-999 ,-999 ,-62 ,-999 ,-999 ,-999 ,-999 ,-62 ,-999 ,-999 ,-999 ,-999 ,-62 ,-999 ,-62 ,-999 ,-999 ,-62 ,-999 ,-62 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-62 ,-62 ,-999 ,-999 ,-999 ,-999 ,-62 ,-999 ,-62 ,-62 ,-62 ,-62 ,-62 ,-999 ,-62 ,-999 ,-999 ,-999 ,-999 },
+ {-59 ,-999 ,-999 ,-59 ,-59 ,-59 ,-59 ,-999 ,-999 ,-999 ,-59 ,-999 ,-999 ,-999 ,-999 ,-59 ,-999 ,-999 ,-999 ,-999 ,-59 ,-999 ,-999 ,-999 ,-999 ,-59 ,-999 ,-59 ,-999 ,-999 ,-59 ,-999 ,-59 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-59 ,-59 ,-999 ,-999 ,-999 ,-999 ,-59 ,-999 ,-59 ,-59 ,-59 ,-59 ,-59 ,-999 ,-59 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,55 ,20 ,-999 ,-999 ,-999 ,-999 ,24 ,56 ,37 ,-999 ,22 ,39 ,25 ,48 ,-999 ,49 ,53 ,41 ,19 ,-999 ,29 ,54 ,-999 ,36 ,-999 ,44 ,23 ,35 ,21 ,-999 ,58 ,-999 ,17 ,40 ,50 ,38 ,52 ,-999 ,46 ,28 ,18 ,27 ,57 ,-999 ,32 ,34 ,31 ,51 ,33 ,26 ,42 ,30 ,-999 ,-999 ,-999 ,-999 ,43 ,-999 ,47 ,45 ,59 ,16 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,224 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,225 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 },
+ {-67 ,-999 ,-999 ,-67 ,-67 ,-67 ,-67 ,-999 ,-999 ,-999 ,-67 ,-999 ,-999 ,-999 ,-999 ,-67 ,-999 ,-999 ,-999 ,-999 ,-67 ,-999 ,-999 ,-999 ,-999 ,-67 ,-999 ,-67 ,-999 ,-999 ,-67 ,-999 ,-67 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-67 ,-67 ,-999 ,-999 ,-999 ,-999 ,-67 ,-999 ,-67 ,-67 ,-67 ,-67 ,-67 ,-999 ,-67 ,-999 ,-999 ,-999 ,-999 },
+ {-64 ,-999 ,-999 ,-64 ,-64 ,-64 ,-64 ,-999 ,-999 ,-999 ,-64 ,-999 ,-999 ,-999 ,-999 ,-64 ,-999 ,-999 ,-999 ,-999 ,-64 ,-999 ,-999 ,-999 ,-999 ,-64 ,-999 ,-64 ,-999 ,-999 ,-64 ,-999 ,-64 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-999 ,-64 ,-64 ,-999 ,-999 ,-999 ,-999 ,-64 ,-999 ,-64 ,-64 ,-64 ,-64 ,-64 ,-999 ,-64 ,-999 ,-999 ,-999 ,-999 }
};
const struct _TOKEN LalrSemanticRules[RULES_COUNT]=
{
@@ -1985,6 +2215,7 @@ const struct _TOKEN LalrSemanticRules[RULES_COUNT]=
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
+ {SEMANTIC_RULE, "@PUSH"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{UNKNOWN, ""},
diff --git a/hyperdbg/script-engine/code/scanner.c b/hyperdbg/script-engine/code/scanner.c
index a10a7327..95f46ee0 100644
--- a/hyperdbg/script-engine/code/scanner.c
+++ b/hyperdbg/script-engine/code/scanner.c
@@ -51,8 +51,8 @@ GetToken(char * c, char * str)
else if (*c == 'x')
{
char ByteString[] = "000";
- int len = strlen(ByteString);
- int i = 0;
+ int len = strlen(ByteString);
+ int i = 0;
for (; i < len; i++)
{
*c = sgetc(str);
@@ -60,7 +60,7 @@ GetToken(char * c, char * str)
break;
RotateLeftStringOnce(ByteString);
- ByteString[len-1] = *c;
+ ByteString[len - 1] = *c;
}
if (i == 0 || i == 3)
@@ -712,13 +712,20 @@ GetToken(char * c, char * str)
}
else
{
- if (GetLocalIdentifierVal(Token) != -1)
+ if (GetFunctionParameterIdentifier(Token) != -1)
{
- Token->Type = LOCAL_ID;
+ Token->Type = FUNCTION_PARAMETER_ID;
}
else
{
- Token->Type = LOCAL_UNRESOLVED_ID;
+ if (GetLocalIdentifierVal(Token) != -1)
+ {
+ Token->Type = LOCAL_ID;
+ }
+ else
+ {
+ Token->Type = LOCAL_UNRESOLVED_ID;
+ }
}
}
}
@@ -762,13 +769,20 @@ GetToken(char * c, char * str)
}
else
{
- if (GetLocalIdentifierVal(Token) != -1)
+ if (GetFunctionParameterIdentifier(Token) != -1)
{
- Token->Type = LOCAL_ID;
+ Token->Type = FUNCTION_PARAMETER_ID;
}
else
{
- Token->Type = LOCAL_UNRESOLVED_ID;
+ if (GetLocalIdentifierVal(Token) != -1)
+ {
+ Token->Type = LOCAL_ID;
+ }
+ else
+ {
+ Token->Type = LOCAL_UNRESOLVED_ID;
+ }
}
}
}
@@ -823,13 +837,20 @@ GetToken(char * c, char * str)
}
else
{
- if (GetLocalIdentifierVal(Token) != -1)
+ if (GetFunctionParameterIdentifier(Token) != -1)
{
- Token->Type = LOCAL_ID;
+ Token->Type = FUNCTION_PARAMETER_ID;
}
else
{
- Token->Type = LOCAL_UNRESOLVED_ID;
+ if (GetLocalIdentifierVal(Token) != -1)
+ {
+ Token->Type = LOCAL_ID;
+ }
+ else
+ {
+ Token->Type = LOCAL_UNRESOLVED_ID;
+ }
}
}
}
diff --git a/hyperdbg/script-engine/code/script-engine.c b/hyperdbg/script-engine/code/script-engine.c
index 671c4b48..371584e8 100644
--- a/hyperdbg/script-engine/code/script-engine.c
+++ b/hyperdbg/script-engine/code/script-engine.c
@@ -265,14 +265,18 @@ ScriptEngineParse(char * str)
PTOKEN_LIST MatchedStack = NewTokenList();
PSYMBOL_BUFFER CodeBuffer = NewSymbolBuffer();
+ // will modify here later
+ PSYMBOL_BUFFER UserDefinedFunctions = NewSymbolBuffer();
+
SCRIPT_ENGINE_ERROR_TYPE Error = SCRIPT_ENGINE_ERROR_FREE;
char * ErrorMessage = NULL;
static FirstCall = 1;
if (FirstCall)
{
- IdTable = NewTokenList();
- FirstCall = 0;
+ IdTable = NewTokenList();
+ FunctionParameterIdTable = NewTokenList();
+ FirstCall = 0;
}
PTOKEN TopToken = NewUnknownToken();
@@ -337,7 +341,7 @@ ScriptEngineParse(char * str)
{
UINT64 BooleanExpressionSize = BooleanExpressionExtractEnd(str, &WaitForWaitStatementBooleanExpression, CurrentIn);
- ScriptEngineBooleanExpresssionParse(BooleanExpressionSize, CurrentIn, MatchedStack, CodeBuffer, str, &c, &Error);
+ ScriptEngineBooleanExpresssionParse(BooleanExpressionSize, CurrentIn, MatchedStack, UserDefinedFunctions, CodeBuffer, str, &c, &Error);
if (Error != SCRIPT_ENGINE_ERROR_FREE)
{
break;
@@ -347,7 +351,7 @@ ScriptEngineParse(char * str)
CurrentIn = Scan(str, &c);
if (CurrentIn->Type == UNKNOWN)
{
- Error = SCRIPT_ENGINE_ERROR_UNKOWN_TOKEN;
+ Error = SCRIPT_ENGINE_ERROR_UNKNOWN_TOKEN;
break;
}
@@ -355,7 +359,7 @@ ScriptEngineParse(char * str)
CurrentIn = Scan(str, &c);
if (CurrentIn->Type == UNKNOWN)
{
- Error = SCRIPT_ENGINE_ERROR_UNKOWN_TOKEN;
+ Error = SCRIPT_ENGINE_ERROR_UNKNOWN_TOKEN;
break;
}
RemoveToken(&TopToken);
@@ -420,7 +424,7 @@ ScriptEngineParse(char * str)
{
WaitForWaitStatementBooleanExpression = TRUE;
}
- CodeGen(MatchedStack, CodeBuffer, TopToken, &Error);
+ CodeGen(MatchedStack, UserDefinedFunctions, CodeBuffer, TopToken, &Error);
if (Error != SCRIPT_ENGINE_ERROR_FREE)
{
break;
@@ -470,12 +474,21 @@ ScriptEngineParse(char * str)
if (MatchedStack)
RemoveTokenList(MatchedStack);
+ if (UserDefinedFunctions)
+ RemoveSymbolBuffer(UserDefinedFunctions);
+
if (CurrentIn)
RemoveToken(&CurrentIn);
if (TopToken)
RemoveToken(&TopToken);
+ if (FunctionParameterIdTable)
+ {
+ RemoveTokenList(FunctionParameterIdTable);
+ FunctionParameterIdTable = NewTokenList();
+ }
+
return CodeBuffer;
}
@@ -488,20 +501,25 @@ ScriptEngineParse(char * str)
* @param Error
*/
void
-CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PSCRIPT_ENGINE_ERROR_TYPE Error)
+CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PSCRIPT_ENGINE_ERROR_TYPE Error)
{
PTOKEN Op0 = NULL;
PTOKEN Op1 = NULL;
PTOKEN Op2 = NULL;
PTOKEN Temp = NULL;
- PSYMBOL OperatorSymbol = NULL;
- PSYMBOL Op0Symbol = NULL;
- PSYMBOL Op1Symbol = NULL;
- PSYMBOL Op2Symbol = NULL;
- PSYMBOL TempSymbol = NULL;
+ PSYMBOL OperatorSymbol = NULL;
+ PSYMBOL Op0Symbol = NULL;
+ PSYMBOL Op1Symbol = NULL;
+ PSYMBOL Op2Symbol = NULL;
+ PSYMBOL TempSymbol = NULL;
+ VARIABLE_TYPE * VariableType = NULL;
- OperatorSymbol = ToSymbol(Operator, Error);
+ //
+ // It is in user-defined function if CurrentFunctionSymbol is not null
+ //
+ static PSYMBOL CurrentFunctionSymbol = NULL;
+ OperatorSymbol = ToSymbol(Operator, Error);
#ifdef _SCRIPT_ENGINE_CODEGEN_DBG_EN
//
@@ -522,7 +540,355 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
while (TRUE)
{
- if (!strcmp(Operator->Value, "@MOV"))
+ if (IsVariableType(Operator))
+ {
+ PTOKEN PToken = CopyToken(Operator);
+ PToken->Type = INPUT_VARIABLE_TYPE;
+ Push(MatchedStack, PToken);
+ }
+ else if (!strcmp(Operator->Value, "@START_OF_USER_DEFINED_FUNCTION"))
+ {
+ Op0 = Pop(MatchedStack);
+ VariableType = HandleType(MatchedStack);
+
+ if (VariableType == VARIABLE_TYPE_UNKNOWN)
+ {
+ *Error = SCRIPT_ENGINE_ERROR_UNDEFINED_VARIABLE_TYPE;
+ break;
+ }
+
+ UINT64 CurrentPointer = CodeBuffer->Pointer;
+ //
+ // Add jmp instruction to Code Buffer
+ //
+ PSYMBOL JumpInstruction = NewSymbol();
+ JumpInstruction->Type = SYMBOL_SEMANTIC_RULE_TYPE;
+ JumpInstruction->Value = FUNC_JMP;
+ PushSymbol(CodeBuffer, JumpInstruction);
+ RemoveSymbol(&JumpInstruction);
+
+ //
+ // Push jump address
+ //
+
+ PSYMBOL JumpAddressSymbol = NewSymbol();
+ JumpAddressSymbol->Type = SYMBOL_NUM_TYPE;
+ JumpAddressSymbol->Value = 0xffffffffffffffff;
+ PushSymbol(CodeBuffer, JumpAddressSymbol);
+ RemoveSymbol(&JumpAddressSymbol);
+
+ PushSymbol(UserDefinedFunctions, NewFunctionSymbol(Op0->Value, VariableType));
+ CurrentFunctionSymbol = NewFunctionSymbol(Op0->Value, VariableType);
+ PushSymbol(CodeBuffer, CurrentFunctionSymbol);
+
+ PushSymbol(CodeBuffer, OperatorSymbol);
+
+ PSYMBOL StackTempNumberSymbol = NewSymbol();
+ StackTempNumberSymbol->Type = SYMBOL_NUM_TYPE;
+ StackTempNumberSymbol->Value = 0xffffffffffffffff;
+ PushSymbol(CodeBuffer, StackTempNumberSymbol);
+ RemoveSymbol(&StackTempNumberSymbol);
+ }
+ else if (!strcmp(Operator->Value, "@FUNCTION_PARAMETER"))
+ {
+ Op0 = Pop(MatchedStack);
+ VariableType = HandleType(MatchedStack);
+
+ if (VariableType == VARIABLE_TYPE_UNKNOWN)
+ {
+ *Error = SCRIPT_ENGINE_ERROR_UNDEFINED_VARIABLE_TYPE;
+ break;
+ }
+
+ Op0Symbol = NewSymbol();
+ free(Op0Symbol->Value);
+ Op0Symbol->Value = NewFunctionParameterIdentifier(Op0);
+ SetType(&Op0Symbol->Type, SYMBOL_FUNCTION_PARAMETER_ID_TYPE);
+
+ PushSymbol(UserDefinedFunctions, Op0Symbol);
+ }
+ else if (!strcmp(Operator->Value, "@END_OF_USER_DEFINED_FUNCTION"))
+ {
+ PushSymbol(CodeBuffer, OperatorSymbol);
+ UINT64 CurrentPointer = CodeBuffer->Pointer;
+ PSYMBOL Symbol = NULL;
+
+ BOOL Found = FALSE;
+ int i = 0;
+ // for loop not able to begin from CodeBuffer->Pointer to 0 because of string and wstring's size
+ for (; i < CodeBuffer->Pointer;)
+ {
+ Symbol = CodeBuffer->Head + i;
+
+ if (Symbol->Type == SYMBOL_USER_DEFINED_FUNCTION_TYPE && !strcmp(CurrentFunctionSymbol->Value, Symbol->Value))
+ {
+ Found = TRUE;
+ break;
+ }
+ else if (Symbol->Type == SYMBOL_STRING_TYPE || Symbol->Type == SYMBOL_WSTRING_TYPE)
+ {
+ int temp = GetSymbolHeapSize(Symbol);
+ i += temp;
+ }
+ else
+ {
+ i++;
+ }
+ }
+
+ if (!Found)
+ {
+ *Error = SCRIPT_ENGINE_ERROR_SYNTAX;
+ break;
+ }
+
+ //
+ // skip excuting user-defined function first time
+ //
+ Symbol = CodeBuffer->Head + i - 1;
+ Symbol->Value = CurrentPointer;
+
+ int StackTempNumber = 0;
+ for (int j = i; j < CurrentPointer; j++)
+ {
+ Symbol = CodeBuffer->Head + j;
+ if (Symbol->Type == SYMBOL_STACK_TEMP_TYPE && (Symbol->Value + 1) > StackTempNumber)
+ {
+ StackTempNumber = Symbol->Value + 1;
+ }
+ }
+
+ Symbol = CodeBuffer->Head + i + 2;
+ Symbol->Value = StackTempNumber;
+
+ CurrentFunctionSymbol = NULL;
+ }
+ else if (!strcmp(Operator->Value, "@RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE"))
+ {
+ if (!CurrentFunctionSymbol)
+ {
+ *Error = SCRIPT_ENGINE_ERROR_SYNTAX;
+ break;
+ }
+ if (CurrentFunctionSymbol->VariableType != VARIABLE_TYPE_VOID)
+ {
+ *Error = SCRIPT_ENGINE_ERROR_NON_VOID_FUNCTION_NOT_RETURNING_VALUE;
+ break;
+ }
+ PushSymbol(CodeBuffer, OperatorSymbol);
+ }
+ else if (!strcmp(Operator->Value, "@RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE"))
+ {
+ if (!CurrentFunctionSymbol)
+ {
+ *Error = SCRIPT_ENGINE_ERROR_SYNTAX;
+ break;
+ }
+ if (CurrentFunctionSymbol->VariableType == VARIABLE_TYPE_VOID)
+ {
+ *Error = SCRIPT_ENGINE_ERROR_VOID_FUNCTION_RETURNING_VALUE;
+ break;
+ }
+
+ PushSymbol(CodeBuffer, OperatorSymbol);
+
+ Op0 = Pop(MatchedStack);
+ Op0Symbol = ToSymbol(Op0, Error);
+ PushSymbol(CodeBuffer, Op0Symbol);
+ FreeTemp(Op0);
+
+ if (*Error != SCRIPT_ENGINE_ERROR_FREE)
+ {
+ break;
+ }
+ }
+
+ else if (!strcmp(Operator->Value, "@CALL_USER_DEFINED_FUNCTION"))
+ {
+ PSYMBOL Symbol = NULL;
+ int i = 0;
+ PTOKEN FunctionToken = Top(MatchedStack);
+ BOOL Found = FALSE;
+
+ //
+ // find function's address
+ //
+ for (; i < CodeBuffer->Pointer;)
+ {
+ Symbol = CodeBuffer->Head + i;
+
+ if (Symbol->Type == SYMBOL_USER_DEFINED_FUNCTION_TYPE && !strcmp(FunctionToken->Value, Symbol->Value))
+ {
+ Found = TRUE;
+ break;
+ }
+ else if (Symbol->Type == SYMBOL_STRING_TYPE || Symbol->Type == SYMBOL_WSTRING_TYPE)
+ {
+ int temp = GetSymbolHeapSize(Symbol);
+ i += temp;
+ }
+ else
+ {
+ i++;
+ }
+ }
+
+ if (!Found)
+ {
+ *Error = SCRIPT_ENGINE_ERROR_UNDEFINED_FUNCTION;
+ break;
+ }
+
+ FunctionToken->Type = FUNCTION_TYPE;
+ PushSymbol(CodeBuffer, OperatorSymbol);
+ }
+ else if (!strcmp(Operator->Value, "@CALL_USER_DEFINED_FUNCTION_PARAMETER"))
+ {
+ // will rewrite here to input variable's type
+ PushSymbol(CodeBuffer, OperatorSymbol);
+
+ Op0Symbol = ToSymbol(Top(MatchedStack), Error);
+ PushSymbol(CodeBuffer, Op0Symbol);
+ if (*Error != SCRIPT_ENGINE_ERROR_FREE)
+ {
+ break;
+ }
+ }
+ else if (!strcmp(Operator->Value, "@END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE") || !strcmp(Operator->Value, "@END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE"))
+ {
+ PSYMBOL Symbol = NULL;
+ int i = 0;
+ int TargetFunctionVariableNum = 0;
+ int VariableNum = 0;
+ PTOKEN FunctionToken = NULL;
+ BOOL Found = FALSE;
+ PTOKEN ReturnValueToken = NULL;
+
+ while (MatchedStack->Pointer > 0)
+ {
+ FunctionToken = Pop(MatchedStack);
+
+ if (FunctionToken->Type == FUNCTION_TYPE)
+ {
+ break;
+ }
+ else
+ {
+ VariableNum++;
+ // RemoveToken(&FunctionToken);
+ }
+ }
+
+ //
+ // find function's address
+ //
+ for (; i < CodeBuffer->Pointer;)
+ {
+ Symbol = CodeBuffer->Head + i;
+
+ if (Symbol->Type == SYMBOL_USER_DEFINED_FUNCTION_TYPE && !strcmp(FunctionToken->Value, Symbol->Value))
+ {
+ Found = TRUE;
+ break;
+ }
+ else if (Symbol->Type == SYMBOL_STRING_TYPE || Symbol->Type == SYMBOL_WSTRING_TYPE)
+ {
+ int temp = GetSymbolHeapSize(Symbol);
+ i += temp;
+ }
+ else
+ {
+ i++;
+ }
+ }
+
+ if (!Found)
+ {
+ *Error = SCRIPT_ENGINE_ERROR_UNDEFINED_FUNCTION;
+ break;
+ }
+
+ // will rewrite here
+ for (int j = 0; j < UserDefinedFunctions->Pointer; j++)
+ {
+ Symbol = UserDefinedFunctions->Head + j;
+ if (Symbol->Type == SYMBOL_USER_DEFINED_FUNCTION_TYPE && !strcmp(FunctionToken->Value, Symbol->Value))
+ {
+ j++;
+ Symbol = UserDefinedFunctions->Head + j;
+ while (Symbol->Type != SYMBOL_USER_DEFINED_FUNCTION_TYPE && j < UserDefinedFunctions->Pointer)
+ {
+ TargetFunctionVariableNum++;
+ j++;
+ Symbol = UserDefinedFunctions->Head + j;
+ }
+ goto ExitLoop;
+ }
+ }
+
+ ExitLoop:
+
+ if (VariableNum != TargetFunctionVariableNum)
+ {
+ *Error = SCRIPT_ENGINE_ERROR_SYNTAX;
+ break;
+ }
+
+ //
+ // Add call user-defined function instruction
+ //
+ PushSymbol(CodeBuffer, OperatorSymbol);
+
+ //
+ // Add function's address
+ //
+ PSYMBOL JumpAddressSymbol = NewSymbol();
+ JumpAddressSymbol->Type = SYMBOL_NUM_TYPE;
+ JumpAddressSymbol->Value = i;
+ PushSymbol(CodeBuffer, JumpAddressSymbol);
+ RemoveSymbol(&JumpAddressSymbol);
+
+ //
+ // Add return address
+ //
+ JumpAddressSymbol = NewSymbol();
+ JumpAddressSymbol->Type = SYMBOL_RETURN_ADDRESS_TYPE;
+ JumpAddressSymbol->Value = CodeBuffer->Pointer + 1;
+ PushSymbol(CodeBuffer, JumpAddressSymbol);
+ RemoveSymbol(&JumpAddressSymbol);
+
+ if (!strcmp(Operator->Value, "@END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE"))
+ {
+ if (FunctionToken->Type == VARIABLE_TYPE_VOID)
+ {
+ *Error = SCRIPT_ENGINE_ERROR_VOID_FUNCTION_RETURNING_VALUE;
+ break;
+ }
+
+ //
+ // Add return variable symbol
+ //
+ Temp = NewTemp(Error,CurrentFunctionSymbol);
+ Push(MatchedStack, Temp);
+
+ PSYMBOL Symbol = NewSymbol();
+ Symbol->Type = SYMBOL_SEMANTIC_RULE_TYPE;
+ Symbol->Value = FUNC_MOV_RETURN_VALUE;
+ PushSymbol(CodeBuffer, Symbol);
+ RemoveSymbol(&Symbol);
+
+ TempSymbol = ToSymbol(Temp, Error);
+ PushSymbol(CodeBuffer, TempSymbol);
+
+ if (*Error != SCRIPT_ENGINE_ERROR_FREE)
+ {
+ break;
+ }
+ }
+
+ RemoveToken(&FunctionToken);
+ }
+ else if (!strcmp(Operator->Value, "@MOV"))
{
PushSymbol(CodeBuffer, OperatorSymbol);
Op0 = Pop(MatchedStack);
@@ -548,6 +914,22 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
Op1Symbol = ToSymbol(Op1, Error);
}
+ if (MatchedStack->Pointer > 0)
+ {
+ if (Top(MatchedStack)->Type == INPUT_VARIABLE_TYPE)
+ {
+ VariableType = HandleType(MatchedStack);
+
+ if (VariableType == VARIABLE_TYPE_UNKNOWN)
+ {
+ *Error = SCRIPT_ENGINE_ERROR_UNDEFINED_VARIABLE_TYPE;
+ break;
+ }
+
+ Op1Symbol->VariableType = VariableType;
+ }
+ }
+
PushSymbol(CodeBuffer, Op0Symbol);
PushSymbol(CodeBuffer, Op1Symbol);
@@ -579,7 +961,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
Op0 = Pop(MatchedStack);
Op0Symbol = ToSymbol(Op0, Error);
- Temp = NewTemp(Error);
+ Temp = NewTemp(Error, CurrentFunctionSymbol);
Push(MatchedStack, Temp);
TempSymbol = ToSymbol(Temp, Error);
@@ -739,7 +1121,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
break;
}
- Temp = NewTemp(Error);
+ Temp = NewTemp(Error, CurrentFunctionSymbol);
Push(MatchedStack, Temp);
TempSymbol = ToSymbol(Temp, Error);
PushSymbol(CodeBuffer, TempSymbol);
@@ -787,7 +1169,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
PushSymbol(CodeBuffer, Op1Symbol);
PushSymbol(CodeBuffer, Op2Symbol);
- Temp = NewTemp(Error);
+ Temp = NewTemp(Error, CurrentFunctionSymbol);
Push(MatchedStack, Temp);
TempSymbol = ToSymbol(Temp, Error);
PushSymbol(CodeBuffer, TempSymbol);
@@ -839,7 +1221,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
Op1 = Pop(MatchedStack);
Op1Symbol = ToSymbol(Op1, Error);
- Temp = NewTemp(Error);
+ Temp = NewTemp(Error, CurrentFunctionSymbol);
Push(MatchedStack, Temp);
TempSymbol = ToSymbol(Temp, Error);
@@ -886,7 +1268,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
}
else if (!strcmp(Operator->Value, "@JZ"))
{
- UINT64 CurrentPointer = CodeBuffer->Pointer;
+ // UINT64 CurrentPointer = CodeBuffer->Pointer;
PushSymbol(CodeBuffer, OperatorSymbol);
PSYMBOL JumpAddressSymbol = NewSymbol();
@@ -1494,7 +1876,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
Op0 = Pop(MatchedStack);
Op0Symbol = ToSymbol(Op0, Error);
- Temp = NewTemp(Error);
+ Temp = NewTemp(Error, CurrentFunctionSymbol);
Push(MatchedStack, Temp);
TempSymbol = ToSymbol(Temp, Error);
@@ -1523,7 +1905,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
break;
}
- Temp = NewTemp(Error);
+ Temp = NewTemp(Error, CurrentFunctionSymbol);
Push(MatchedStack, Temp);
TempSymbol = ToSymbol(Temp, Error);
PushSymbol(CodeBuffer, TempSymbol);
@@ -1550,7 +1932,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
PushSymbol(CodeBuffer, Op1Symbol);
PushSymbol(CodeBuffer, Op2Symbol);
- Temp = NewTemp(Error);
+ Temp = NewTemp(Error, CurrentFunctionSymbol);
Push(MatchedStack, Temp);
TempSymbol = ToSymbol(Temp, Error);
PushSymbol(CodeBuffer, TempSymbol);
@@ -1573,7 +1955,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
Op0 = Pop(MatchedStack);
Op0Symbol = ToSymbol(Op0, Error);
- Temp = NewTemp(Error);
+ Temp = NewTemp(Error, CurrentFunctionSymbol);
Push(MatchedStack, Temp);
TempSymbol = ToSymbol(Temp, Error);
@@ -1602,7 +1984,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
break;
}
- Temp = NewTemp(Error);
+ Temp = NewTemp(Error, CurrentFunctionSymbol);
Push(MatchedStack, Temp);
TempSymbol = ToSymbol(Temp, Error);
PushSymbol(CodeBuffer, TempSymbol);
@@ -1723,6 +2105,7 @@ ScriptEngineBooleanExpresssionParse(
UINT64 BooleanExpressionSize,
PTOKEN FirstToken,
PTOKEN_LIST MatchedStack,
+ PSYMBOL_BUFFER UserDefinedFunctions,
PSYMBOL_BUFFER CodeBuffer,
char * str,
char * c,
@@ -1854,7 +2237,7 @@ ScriptEngineBooleanExpresssionParse(
}
else
{
- CodeGen(MatchedStack, CodeBuffer, SemanticRule, Error);
+ CodeGen(MatchedStack, UserDefinedFunctions, CodeBuffer, SemanticRule, Error);
if (*Error != SCRIPT_ENGINE_ERROR_FREE)
{
break;
@@ -1898,10 +2281,11 @@ PSYMBOL
NewSymbol(void)
{
PSYMBOL Symbol;
- Symbol = (PSYMBOL)malloc(sizeof(SYMBOL));
- Symbol->Value = 0;
- Symbol->Len = 0;
- Symbol->Type = 0;
+ Symbol = (PSYMBOL)malloc(sizeof(SYMBOL));
+ Symbol->Value = 0;
+ Symbol->Len = 0;
+ Symbol->Type = 0;
+ Symbol->VariableType = 0;
return Symbol;
}
@@ -1915,11 +2299,12 @@ PSYMBOL
NewStringSymbol(PTOKEN Token)
{
PSYMBOL Symbol;
- int BufferSize = (2 * sizeof(unsigned long long) + Token->Len) / sizeof(SYMBOL) + 1;
+ int BufferSize = (3 * sizeof(unsigned long long) + Token->Len) / sizeof(SYMBOL) + 1;
Symbol = (unsigned long long)calloc(sizeof(SYMBOL), BufferSize);
memcpy(&Symbol->Value, Token->Value, Token->Len);
SetType(&Symbol->Type, SYMBOL_STRING_TYPE);
- Symbol->Len = Token->Len;
+ Symbol->Len = Token->Len;
+ Symbol->VariableType = 0;
return Symbol;
}
@@ -1933,14 +2318,40 @@ PSYMBOL
NewWstringSymbol(PTOKEN Token)
{
PSYMBOL Symbol;
- int BufferSize = (2 * sizeof(unsigned long long) + Token->Len) / sizeof(SYMBOL) + 1;
+ int BufferSize = (3 * sizeof(unsigned long long) + Token->Len) / sizeof(SYMBOL) + 1;
Symbol = (unsigned long long)malloc(BufferSize * sizeof(SYMBOL));
memcpy(&Symbol->Value, Token->Value, Token->Len);
SetType(&Symbol->Type, SYMBOL_WSTRING_TYPE);
- Symbol->Len = Token->Len;
+ Symbol->Len = Token->Len;
+ Symbol->VariableType = 0;
return Symbol;
}
+/**
+ * @brief
+ *
+ * @return PSYMBOL
+ */
+PSYMBOL
+NewFunctionSymbol(char * FunctionName, VARIABLE_TYPE * VariableType)
+{
+ int Length = strlen(FunctionName);
+ PSYMBOL Symbol = NewSymbol();
+ Symbol = (PSYMBOL)malloc(sizeof(SYMBOL));
+ Symbol->Value = (char *)calloc(Length + 1, sizeof(char));
+ memcpy(Symbol->Value, FunctionName, Length);
+ Symbol->Len = Length;
+ Symbol->Type = SYMBOL_USER_DEFINED_FUNCTION_TYPE;
+ Symbol->VariableType = VariableType;
+ return Symbol;
+}
+
+/**
+ * @brief
+ *
+ * @return PSYMBOL
+ */
+
/**
* @brief Returns the number of SYMBOL objects (24 bytes) allocated by string or wstring sybmol
*
@@ -1950,7 +2361,7 @@ NewWstringSymbol(PTOKEN Token)
unsigned int
GetSymbolHeapSize(PSYMBOL Symbol)
{
- int Temp = (2 * sizeof(unsigned long long) + Symbol->Len) / sizeof(SYMBOL) + 1;
+ int Temp = (3 * sizeof(unsigned long long) + Symbol->Len) / sizeof(SYMBOL) + 1;
return Temp;
}
@@ -2002,22 +2413,27 @@ ToSymbol(PTOKEN Token, PSCRIPT_ENGINE_ERROR_TYPE Error)
Symbol->Value = GetGlobalIdentifierVal(Token);
SetType(&Symbol->Type, SYMBOL_GLOBAL_ID_TYPE);
return Symbol;
+
case LOCAL_ID:
Symbol->Value = GetLocalIdentifierVal(Token);
SetType(&Symbol->Type, SYMBOL_LOCAL_ID_TYPE);
return Symbol;
+
case DECIMAL:
Symbol->Value = DecimalToInt(Token->Value);
SetType(&Symbol->Type, SYMBOL_NUM_TYPE);
return Symbol;
+
case HEX:
Symbol->Value = HexToInt(Token->Value);
SetType(&Symbol->Type, SYMBOL_NUM_TYPE);
return Symbol;
+
case OCTAL:
Symbol->Value = OctalToInt(Token->Value);
SetType(&Symbol->Type, SYMBOL_NUM_TYPE);
return Symbol;
+
case BINARY:
Symbol->Value = BinaryToInt(Token->Value);
SetType(&Symbol->Type, SYMBOL_NUM_TYPE);
@@ -2037,11 +2453,17 @@ ToSymbol(PTOKEN Token, PSCRIPT_ENGINE_ERROR_TYPE Error)
Symbol->Value = SemanticRuleToInt(Token->Value);
SetType(&Symbol->Type, SYMBOL_SEMANTIC_RULE_TYPE);
return Symbol;
+
case TEMP:
Symbol->Value = DecimalToInt(Token->Value);
SetType(&Symbol->Type, SYMBOL_TEMP_TYPE);
return Symbol;
+ case STACK_TEMP:
+ Symbol->Value = DecimalToInt(Token->Value);
+ SetType(&Symbol->Type, SYMBOL_STACK_TEMP_TYPE);
+ return Symbol;
+
case STRING:
RemoveSymbol(&Symbol);
return NewStringSymbol(Token);
@@ -2050,6 +2472,11 @@ ToSymbol(PTOKEN Token, PSCRIPT_ENGINE_ERROR_TYPE Error)
RemoveSymbol(&Symbol);
return NewWstringSymbol(Token);
+ case FUNCTION_PARAMETER_ID:
+ Symbol->Value = GetFunctionParameterIdentifier(Token);
+ SetType(&Symbol->Type, SYMBOL_FUNCTION_PARAMETER_ID_TYPE);
+ return Symbol;
+
default:
*Error = SCRIPT_ENGINE_ERROR_UNRESOLVED_VARIABLE;
Symbol->Type = INVALID;
@@ -2346,7 +2773,7 @@ HandleError(PSCRIPT_ENGINE_ERROR_TYPE Error, char * str)
strcat(Message, "Invalid Syntax");
return Message;
- case SCRIPT_ENGINE_ERROR_UNKOWN_TOKEN:
+ case SCRIPT_ENGINE_ERROR_UNKNOWN_TOKEN:
strcat(Message, "Syntax Error: ");
strcat(Message, "Unknown Token");
return Message;
@@ -2366,6 +2793,18 @@ HandleError(PSCRIPT_ENGINE_ERROR_TYPE Error, char * str)
strcat(Message, "Please split the expression to many smaller expressions.");
return Message;
+ case SCRIPT_ENGINE_ERROR_UNDEFINED_FUNCTION:
+ strcat(Message, "Undefined Function");
+ return Message;
+ case SCRIPT_ENGINE_ERROR_UNDEFINED_VARIABLE_TYPE:
+ strcat(Message, "Undefined Variable Type");
+ return Message;
+ case SCRIPT_ENGINE_ERROR_VOID_FUNCTION_RETURNING_VALUE:
+ strcat(Message, "Returning a value in void function");
+ return Message;
+ case SCRIPT_ENGINE_ERROR_NON_VOID_FUNCTION_NOT_RETURNING_VALUE:
+ strcat(Message, "Not returning a value in noo-void function");
+ return Message;
default:
strcat(Message, "Unkown Error: ");
return Message;
@@ -2442,6 +2881,41 @@ NewLocalIdentifier(PTOKEN Token)
return IdTable->Pointer - 1;
}
+/**
+ * @brief
+ *
+ * @param Token
+ * @return int
+ */
+int
+NewFunctionParameterIdentifier(PTOKEN Token)
+{
+ PTOKEN CopiedToken = CopyToken(Token);
+ FunctionParameterIdTable = Push(FunctionParameterIdTable, CopiedToken);
+ return FunctionParameterIdTable->Pointer - 1;
+}
+
+/**
+ * @brief
+ *
+ * @param Token
+ * @return int
+ */
+int
+GetFunctionParameterIdentifier(PTOKEN Token)
+{
+ PTOKEN CurrentToken;
+ for (uintptr_t i = 0; i < FunctionParameterIdTable->Pointer; i++)
+ {
+ CurrentToken = *(FunctionParameterIdTable->Head + i);
+ if (!strcmp(Token->Value, CurrentToken->Value))
+ {
+ return (int)i;
+ }
+ }
+ return -1;
+}
+
/**
* @brief Returns the size of Right Hand Side (RHS) of a rule
*
@@ -2488,6 +2962,10 @@ LalrIsOperandType(PTOKEN Token)
{
return TRUE;
}
+ else if (Token->Type == FUNCTION_PARAMETER_ID)
+ {
+ return TRUE;
+ }
else if (Token->Type == DECIMAL)
{
return TRUE;
@@ -2526,3 +3004,14 @@ LalrIsOperandType(PTOKEN Token)
}
return FALSE;
}
+
+PSYMBOL_BUFFER
+GetStackBuffer()
+{
+ PSYMBOL_BUFFER StackBuffer = NewSymbolBuffer();
+ for (int i = 0; i < 128; i++)
+ {
+ PushSymbol(StackBuffer, NewSymbol());
+ }
+ return StackBuffer;
+}
\ No newline at end of file
diff --git a/hyperdbg/script-engine/code/type.c b/hyperdbg/script-engine/code/type.c
new file mode 100644
index 00000000..a087ded8
--- /dev/null
+++ b/hyperdbg/script-engine/code/type.c
@@ -0,0 +1,165 @@
+#include "pch.h"
+
+VARIABLE_TYPE * VARIABLE_TYPE_UNKNOWN = &(VARIABLE_TYPE) {TY_UNKNOWN};
+
+VARIABLE_TYPE * VARIABLE_TYPE_VOID = &(VARIABLE_TYPE) {TY_VOID, 1, 1};
+VARIABLE_TYPE * VARIABLE_TYPE_BOOL = &(VARIABLE_TYPE) {TY_BOOL, 1, 1};
+
+VARIABLE_TYPE * VARIABLE_TYPE_CHAR = &(VARIABLE_TYPE) {TY_CHAR, 1, 1};
+VARIABLE_TYPE * VARIABLE_TYPE_SHORT = &(VARIABLE_TYPE) {TY_SHORT, 2, 2};
+VARIABLE_TYPE * VARIABLE_TYPE_INT = &(VARIABLE_TYPE) {TY_INT, 4, 4};
+VARIABLE_TYPE * VARIABLE_TYPE_LONG = &(VARIABLE_TYPE) {TY_LONG, 8, 8};
+
+VARIABLE_TYPE * VARIABLE_TYPE_UCHAR = &(VARIABLE_TYPE) {TY_CHAR, 1, 1, TRUE};
+VARIABLE_TYPE * VARIABLE_TYPE_USHORT = &(VARIABLE_TYPE) {TY_SHORT, 2, 2, TRUE};
+VARIABLE_TYPE * VARIABLE_TYPE_UINT = &(VARIABLE_TYPE) {TY_INT, 4, 4, TRUE};
+VARIABLE_TYPE * VARIABLE_TYPE_ULONG = &(VARIABLE_TYPE) {TY_LONG, 8, 8, TRUE};
+
+VARIABLE_TYPE * VARIABLE_TYPE_FLOAT = &(VARIABLE_TYPE) {TY_FLOAT, 4, 4};
+VARIABLE_TYPE * VARIABLE_TYPE_DOUBLE = &(VARIABLE_TYPE) {TY_DOUBLE, 8, 8};
+VARIABLE_TYPE * VARIABLE_TYPE_LDOUBLE = &(VARIABLE_TYPE) {TY_LDOUBLE, 16, 16};
+
+/**
+ * @brief Return a variable type
+ *
+ * @param str
+ */
+VARIABLE_TYPE *
+HandleType(PTOKEN_LIST PtokenStack)
+{
+ enum
+ {
+ ENUM_VOID = 1 << 0,
+ ENUM_BOOL = 1 << 2,
+ ENUM_CHAR = 1 << 4,
+ ENUM_SHORT = 1 << 6,
+ ENUM_INT = 1 << 8,
+ ENUM_LONG = 1 << 10,
+ ENUM_FLOAT = 1 << 12,
+ ENUM_DOUBLE = 1 << 14,
+ ENUM_OTHER = 1 << 16,
+ ENUM_SIGNED = 1 << 17,
+ ENUM_UNSIGNED = 1 << 18,
+ };
+
+ VARIABLE_TYPE * Result = VARIABLE_TYPE_UNKNOWN;
+ int Counter = 0;
+ PTOKEN TopToken = NULL;
+
+ while (PtokenStack->Pointer > 0)
+ {
+ TopToken = Pop(PtokenStack);
+ if (TopToken->Type != INPUT_VARIABLE_TYPE)
+ {
+ Push(PtokenStack, TopToken);
+ break;
+ }
+ if (!strcmp(TopToken->Value, "@VOID"))
+ {
+ Counter += ENUM_VOID;
+ }
+ else if (!strcmp(TopToken->Value, "@BOOL"))
+ {
+ Counter += ENUM_BOOL;
+ }
+ else if (!strcmp(TopToken->Value, "@CHAR"))
+ {
+ Counter += ENUM_CHAR;
+ }
+ else if (!strcmp(TopToken->Value, "@SHORT"))
+ {
+ Counter += ENUM_SHORT;
+ }
+ else if (!strcmp(TopToken->Value, "@INT"))
+ {
+ Counter += ENUM_INT;
+ }
+ else if (!strcmp(TopToken->Value, "@LONG"))
+ {
+ Counter += ENUM_LONG;
+ }
+ else if (!strcmp(TopToken->Value, "@FLOAT"))
+ {
+ Counter += ENUM_FLOAT;
+ }
+ else if (!strcmp(TopToken->Value, "@DOUBLE"))
+ {
+ Counter += ENUM_DOUBLE;
+ }
+ else if (!strcmp(TopToken->Value, "@SIGNED"))
+ {
+ Counter |= ENUM_SIGNED;
+ }
+ else if (!strcmp(TopToken->Value, "@UNSIGNED"))
+ {
+ Counter |= ENUM_UNSIGNED;
+ }
+ else
+ {
+ return VARIABLE_TYPE_UNKNOWN;
+ }
+ RemoveToken(&TopToken);
+
+ switch (Counter)
+ {
+ case ENUM_VOID:
+ Result = VARIABLE_TYPE_VOID;
+ break;
+ case ENUM_BOOL:
+ Result = VARIABLE_TYPE_BOOL;
+ break;
+ case ENUM_CHAR:
+ case ENUM_SIGNED + ENUM_CHAR:
+ Result = VARIABLE_TYPE_CHAR;
+ break;
+ case ENUM_UNSIGNED + ENUM_CHAR:
+ Result = VARIABLE_TYPE_UCHAR;
+ break;
+ case ENUM_SHORT:
+ case ENUM_SHORT + ENUM_INT:
+ case ENUM_SIGNED + ENUM_SHORT:
+ case ENUM_SIGNED + ENUM_SHORT + ENUM_INT:
+ Result = VARIABLE_TYPE_INT;
+ break;
+ case ENUM_UNSIGNED + ENUM_SHORT:
+ case ENUM_UNSIGNED + ENUM_SHORT + ENUM_INT:
+ Result = VARIABLE_TYPE_USHORT;
+ break;
+ case ENUM_INT:
+ case ENUM_SIGNED:
+ case ENUM_SIGNED + ENUM_INT:
+ Result = VARIABLE_TYPE_INT;
+ break;
+ case ENUM_UNSIGNED:
+ case ENUM_UNSIGNED + ENUM_INT:
+ Result = VARIABLE_TYPE_UINT;
+ break;
+ case ENUM_LONG:
+ case ENUM_LONG + ENUM_INT:
+ case ENUM_LONG + ENUM_LONG:
+ case ENUM_LONG + ENUM_LONG + ENUM_INT:
+ case ENUM_SIGNED + ENUM_LONG:
+ case ENUM_SIGNED + ENUM_LONG + ENUM_INT:
+ case ENUM_SIGNED + ENUM_LONG + ENUM_LONG:
+ case ENUM_SIGNED + ENUM_LONG + ENUM_LONG + ENUM_INT:
+ Result = VARIABLE_TYPE_LONG;
+ break;
+ case ENUM_UNSIGNED + ENUM_LONG:
+ case ENUM_UNSIGNED + ENUM_LONG + ENUM_INT:
+ case ENUM_UNSIGNED + ENUM_LONG + ENUM_LONG:
+ case ENUM_UNSIGNED + ENUM_LONG + ENUM_LONG + ENUM_INT:
+ Result = VARIABLE_TYPE_ULONG;
+ break;
+ case ENUM_FLOAT:
+ Result = VARIABLE_TYPE_FLOAT;
+ break;
+ case ENUM_DOUBLE:
+ Result = VARIABLE_TYPE_DOUBLE;
+ break;
+ case ENUM_LONG + ENUM_DOUBLE:
+ Result = VARIABLE_TYPE_LDOUBLE;
+ break;
+ }
+ }
+ return Result;
+}
\ No newline at end of file
diff --git a/hyperdbg/script-engine/header/common.h b/hyperdbg/script-engine/header/common.h
index 9fe5d05d..711c605d 100644
--- a/hyperdbg/script-engine/header/common.h
+++ b/hyperdbg/script-engine/header/common.h
@@ -57,6 +57,11 @@ typedef enum TOKEN_TYPE
TEMP,
STRING,
WSTRING,
+ INPUT_VARIABLE_TYPE,
+ HANDLED_VARIABLE_TYPE,
+ FUNCTION_TYPE,
+ FUNCTION_PARAMETER_ID,
+ STACK_TEMP,
UNKNOWN
} TOKEN_TYPE;
@@ -106,7 +111,10 @@ PTOKEN
CopyToken(PTOKEN Token);
PTOKEN
-NewTemp(PSCRIPT_ENGINE_ERROR_TYPE);
+NewTemp(PSCRIPT_ENGINE_ERROR_TYPE, PSYMBOL);
+
+PTOKEN
+NewStackTemp(PSCRIPT_ENGINE_ERROR_TYPE);
void
FreeTemp(PTOKEN Temp);
@@ -194,7 +202,7 @@ BinaryToInt(char * str);
void
RotateLeftStringOnce(char * str);
- ////////////////////////////////////////////////////
+////////////////////////////////////////////////////
// Semantic Rule Related Functions //
////////////////////////////////////////////////////
@@ -243,4 +251,7 @@ IsTwoOperandOperator(PTOKEN Operator);
char
IsOneOperandOperator(PTOKEN Operator);
+char
+IsVariableType(PTOKEN Operator);
+
#endif // !COMMON_H
diff --git a/hyperdbg/script-engine/header/globals.h b/hyperdbg/script-engine/header/globals.h
index c1221ed1..3c69d1e2 100644
--- a/hyperdbg/script-engine/header/globals.h
+++ b/hyperdbg/script-engine/header/globals.h
@@ -16,5 +16,5 @@
# define MAX_TEMP_COUNT 128
extern char TempMap[MAX_TEMP_COUNT];
-
+extern char StackTempMap[MAX_TEMP_COUNT];
#endif // !GLOBALS_H
diff --git a/hyperdbg/script-engine/header/parse-table.h b/hyperdbg/script-engine/header/parse-table.h
index 68a16dd1..81c0710a 100644
--- a/hyperdbg/script-engine/header/parse-table.h
+++ b/hyperdbg/script-engine/header/parse-table.h
@@ -1,17 +1,17 @@
#pragma once
#ifndef PARSE_TABLE_H
#define PARSE_TABLE_H
-#define RULES_COUNT 160
-#define TERMINAL_COUNT 89
-#define NONETERMINAL_COUNT 37
+#define RULES_COUNT 202
+#define TERMINAL_COUNT 101
+#define NONETERMINAL_COUNT 49
#define START_VARIABLE "S"
#define MAX_RHS_LEN 15
-#define KEYWORD_LIST_LENGTH 79
+#define KEYWORD_LIST_LENGTH 89
#define OPERATORS_ONE_OPERAND_LIST_LENGTH 4
#define OPERATORS_TWO_OPERAND_LIST_LENGTH 16
#define REGISTER_MAP_LIST_LENGTH 120
#define PSEUDO_REGISTER_MAP_LIST_LENGTH 14
-#define SEMANTIC_RULES_MAP_LIST_LENGTH 118
+#define SEMANTIC_RULES_MAP_LIST_LENGTH 137
#define THREEOPFUNC1_LENGTH 1
#define THREEOPFUNC2_LENGTH 2
#define TWOOPFUNC1_LENGTH 5
@@ -25,6 +25,7 @@
#define TWOOPFUNC4_LENGTH 1
#define ZEROOPFUNC1_LENGTH 7
#define VARARGFUNC1_LENGTH 1
+#define VARIABLETYPE_LENGTH 10
extern const struct _TOKEN Lhs[RULES_COUNT];
extern const struct _TOKEN Rhs[RULES_COUNT][MAX_RHS_LEN];
extern const unsigned int RhsSize[RULES_COUNT];
@@ -47,16 +48,17 @@ extern const char* OneOpFunc4[];
extern const char* TwoOpFunc4[];
extern const char* ZeroOpFunc1[];
extern const char* VarArgFunc1[];
+extern const char* VARIABLETYPE[];
extern const SYMBOL_MAP SemanticRulesMapList[];
extern const SYMBOL_MAP RegisterMapList[];
extern const SYMBOL_MAP PseudoRegisterMapList[];
-#define LALR_RULES_COUNT 84
-#define LALR_TERMINAL_COUNT 62
+#define LALR_RULES_COUNT 85
+#define LALR_TERMINAL_COUNT 63
#define LALR_NONTERMINAL_COUNT 19
#define LALR_MAX_RHS_LEN 9
-#define LALR_STATE_COUNT 225
+#define LALR_STATE_COUNT 226
extern const struct _TOKEN LalrLhs[RULES_COUNT];
extern const struct _TOKEN LalrRhs[RULES_COUNT][MAX_RHS_LEN];
extern const unsigned int LalrRhsSize[RULES_COUNT];
diff --git a/hyperdbg/script-engine/header/scanner.h b/hyperdbg/script-engine/header/scanner.h
index d20de9e7..8abea1ff 100644
--- a/hyperdbg/script-engine/header/scanner.h
+++ b/hyperdbg/script-engine/header/scanner.h
@@ -19,6 +19,11 @@
*/
PTOKEN_LIST IdTable;
+/**
+ * @brief
+ */
+PTOKEN_LIST FunctionParameterIdTable;
+
/**
* @brief number of read characters from input
*/
diff --git a/hyperdbg/script-engine/header/script-engine.h b/hyperdbg/script-engine/header/script-engine.h
index 0b00a559..ef41b655 100644
--- a/hyperdbg/script-engine/header/script-engine.h
+++ b/hyperdbg/script-engine/header/script-engine.h
@@ -9,7 +9,9 @@
* @copyright This project is released under the GNU Public License v3.
*
*/
+
#pragma once
+#include "type.h"
#ifndef SCRIPT_ENGINE_H
# define SCRIPT_ENGINE_H
@@ -54,10 +56,14 @@ typedef enum _SCRIPT_ENGINE_ERROR_TYPE
{
SCRIPT_ENGINE_ERROR_FREE,
SCRIPT_ENGINE_ERROR_SYNTAX,
- SCRIPT_ENGINE_ERROR_UNKOWN_TOKEN,
+ SCRIPT_ENGINE_ERROR_UNKNOWN_TOKEN,
SCRIPT_ENGINE_ERROR_UNRESOLVED_VARIABLE,
SCRIPT_ENGINE_ERROR_UNHANDLED_SEMANTIC_RULE,
- SCRIPT_ENGINE_ERROR_TEMP_LIST_FULL
+ SCRIPT_ENGINE_ERROR_TEMP_LIST_FULL,
+ SCRIPT_ENGINE_ERROR_UNDEFINED_FUNCTION,
+ SCRIPT_ENGINE_ERROR_UNDEFINED_VARIABLE_TYPE,
+ SCRIPT_ENGINE_ERROR_VOID_FUNCTION_RETURNING_VALUE,
+ SCRIPT_ENGINE_ERROR_NON_VOID_FUNCTION_NOT_RETURNING_VALUE
} SCRIPT_ENGINE_ERROR_TYPE,
*PSCRIPT_ENGINE_ERROR_TYPE;
@@ -70,6 +76,12 @@ NewStringSymbol(PTOKEN Token);
PSYMBOL
NewWstringSymbol(PTOKEN Token);
+PSYMBOL
+NewFunctionSymbol(char * FunctionName, VARIABLE_TYPE * VariableType);
+
+PSYMBOL
+NewVariableSymbol(char * VariableName, VARIABLE_TYPE * VariableType);
+
unsigned int
GetSymbolHeapSize(PSYMBOL Symbol);
@@ -92,12 +104,14 @@ PSYMBOL
ToSymbol(PTOKEN PTOKEN, PSCRIPT_ENGINE_ERROR_TYPE Error);
__declspec(dllexport) PSYMBOL_BUFFER ScriptEngineParse(char * str);
+__declspec(dllimport) PSYMBOL_BUFFER GetStackBuffer();
void
ScriptEngineBooleanExpresssionParse(
UINT64 BooleanExpressionSize,
PTOKEN FirstToken,
PTOKEN_LIST MatchedStack,
+ PSYMBOL_BUFFER UserDefinedFunctions,
PSYMBOL_BUFFER CodeBuffer,
char * str,
char * c,
@@ -107,7 +121,7 @@ UINT64
BooleanExpressionExtractEnd(char * str, BOOL * WaitForWaitStatementBooleanExpression, PTOKEN CurrentIn);
void
-CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PSCRIPT_ENGINE_ERROR_TYPE Error);
+CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PSCRIPT_ENGINE_ERROR_TYPE Error);
unsigned long long int
RegisterToInt(char * str);
@@ -139,4 +153,9 @@ LalrGetRhsSize(int RuleId);
BOOL
LalrIsOperandType(PTOKEN PTOKEN);
+int
+NewFunctionParameterIdentifier(PTOKEN Token);
+
+int
+GetFunctionParameterIdentifier(PTOKEN Token);
#endif
diff --git a/hyperdbg/script-engine/header/type.h b/hyperdbg/script-engine/header/type.h
new file mode 100644
index 00000000..98289513
--- /dev/null
+++ b/hyperdbg/script-engine/header/type.h
@@ -0,0 +1,56 @@
+#pragma once
+
+#ifndef TYPE_H
+# define TYPE_H
+
+typedef enum
+{
+ TY_UNKNOWN,
+ TY_VOID,
+ TY_BOOL,
+ TY_CHAR,
+ TY_SHORT,
+ TY_INT,
+ TY_LONG,
+ TY_FLOAT,
+ TY_DOUBLE,
+ TY_LDOUBLE,
+ TY_ENUM,
+ TY_PTR,
+ TY_FUNC,
+ TY_ARRAY,
+ TY_VLA, // variable-length array
+ TY_STRUCT,
+ TY_UNION,
+} VARIABLE_TYPE_KIND;
+
+typedef struct VARIABLE_TYPE
+{
+ VARIABLE_TYPE_KIND Kind;
+ int Size; // sizeof() value
+ int Align; // alignment
+ BOOLEAN IsUnsigned;
+} VARIABLE_TYPE;
+
+extern VARIABLE_TYPE * VARIABLE_TYPE_UNKNOWN;
+
+extern VARIABLE_TYPE * VARIABLE_TYPE_VOID;
+extern VARIABLE_TYPE * VARIABLE_TYPE_BOOL;
+
+extern VARIABLE_TYPE * VARIABLE_TYPE_CHAR;
+extern VARIABLE_TYPE * VARIABLE_TYPE_SHORT;
+extern VARIABLE_TYPE * VARIABLE_TYPE_INT;
+extern VARIABLE_TYPE * VARIABLE_TYPE_LONG;
+
+extern VARIABLE_TYPE * VARIABLE_TYPE_UCHAR;
+extern VARIABLE_TYPE * VARIABLE_TYPE_USHORT;
+extern VARIABLE_TYPE * VARIABLE_TYPE_UINT;
+extern VARIABLE_TYPE * VARIABLE_TYPE_ULONG;
+
+extern VARIABLE_TYPE * VARIABLE_TYPE_FLOAT;
+extern VARIABLE_TYPE * VARIABLE_TYPE_DOUBLE;
+extern VARIABLE_TYPE * VARIABLE_TYPE_LDOUBLE;
+
+VARIABLE_TYPE *
+HandleType(PTOKEN_LIST PtokenStack);
+#endif
\ No newline at end of file
diff --git a/hyperdbg/script-engine/pch.h b/hyperdbg/script-engine/pch.h
index c04a08d3..66276290 100644
--- a/hyperdbg/script-engine/pch.h
+++ b/hyperdbg/script-engine/pch.h
@@ -32,3 +32,4 @@
#include "..\script-eval\header\ScriptEngineCommonDefinitions.h"
#include "script-engine.h"
#include "parse-table.h"
+#include "type.h"
diff --git a/hyperdbg/script-engine/python/Boolean_Expression_Grammar.txt b/hyperdbg/script-engine/python/Boolean_Expression_Grammar.txt
index 746fabaf..6706bfa0 100644
--- a/hyperdbg/script-engine/python/Boolean_Expression_Grammar.txt
+++ b/hyperdbg/script-engine/python/Boolean_Expression_Grammar.txt
@@ -91,12 +91,11 @@ E12->.TwoOpFunc4 ( WstringNumber , WstringNumber ) @.TwoOpFunc4
E12->( BE )
-
# Types must have '_' at the first
E12->_register @PUSH
E12->_global_id @PUSH
E12->_local_id @PUSH
-
+E12->_function_parameter_id @PUSH
# numbers
E12->_hex @PUSH
diff --git a/hyperdbg/script-engine/python/Grammar.txt b/hyperdbg/script-engine/python/Grammar.txt
index 8dc70954..5cd83620 100644
--- a/hyperdbg/script-engine/python/Grammar.txt
+++ b/hyperdbg/script-engine/python/Grammar.txt
@@ -38,7 +38,7 @@
.OperatorsTwoOperand->or xor and asr asl add sub mul div mod gt lt egt elt equal neq
.OperatorsOneOperand->inc dec reference dereference
-.SemantiRules->start_of_if jmp jz jnz jmp_to_end_and_jzcompleted end_of_if start_of_while end_of_while vargstart mov start_of_do_while start_of_do_while_commands end_of_do_while start_of_for for_inc_dec start_of_for_ommands end_of_if ignore_lvalue
+.SemantiRules->start_of_if jmp jz jnz jmp_to_end_and_jzcompleted end_of_if start_of_while end_of_while vargstart mov start_of_do_while start_of_do_while_commands end_of_do_while start_of_for for_inc_dec start_of_for_ommands end_of_if ignore_lvalue end_of_user_defined_function return_of_user_defined_function_with_value return_of_user_defined_function_without_value call_user_defined_function_parameter end_of_calling_user_defined_function_without_returning_value end_of_calling_user_defined_function_with_returning_value call_user_defined_function start_of_user_defined_function mov_return_value
.Registers->rax eax ax ah al rcx ecx cx ch cl rdx edx dx dh dl rbx ebx bx bh bl rsp esp sp spl rbp ebp bp bpl rsi esi si sil rdi edi di dil r8 r8d r8w r8h r8l r9 r9d r9w r9h r9l r10 r10d r10w r10h r10l r11 r11d r11w r11h r11l r12 r12d r12w r12h r12l r13 r13d r13w r13h r13l r14 r14d r14w r14h r14l r15 r15d r15w r15h r15l ds es fs gs cs ss rflags eflags flags cf pf af zf sf tf if df of iopl nt rf vm ac vif vip id rip eip ip idtr ldtr gdtr tr cr0 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr6 dr7
@@ -48,19 +48,59 @@ S->STATEMENT S
S->{ STATEMENT S }
S->eps
-
STATEMENT->IF_STATEMENT
STATEMENT->WHILE_STATEMENT
STATEMENT->DO_WHILE_STATEMENT
STATEMENT->FOR_STATEMENT
-STATEMENT->ASSIGNMENT_STATEMENT ;
+STATEMENT->L_VALUE L_VALUE2
STATEMENT->CALL_FUNC_STATEMENT ;
STATEMENT->break @BREAK ;
STATEMENT->continue @CONTINUE ;
+STATEMENT->VARIABLE_TYPE3
+S2->STATEMENT2 S2
+S2->{ STATEMENT2 S2 }
+S2->eps
+STATEMENT2->IF_STATEMENT
+STATEMENT2->WHILE_STATEMENT
+STATEMENT2->DO_WHILE_STATEMENT
+STATEMENT2->FOR_STATEMENT
+STATEMENT2->L_VALUE L_VALUE2
+STATEMENT2->CALL_FUNC_STATEMENT ;
+STATEMENT2->break @BREAK ;
+STATEMENT2->continue @CONTINUE ;
+STATEMENT2->VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE = EXPRESSION @MOV ;
+STATEMENT2->return RETURN ;
+RETURN->eps @RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE
+RETURN->EXPRESSION @RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE
+
+# name started with a dot is a list of fun, wii rewrite here
+.VARIABLETYPE->void bool char short int long unsigned signed float double
+VARIABLE_TYPE1->@PUSH .VARIABLETYPE
+
+VARIABLE_TYPE2->VARIABLE_TYPE1
+VARIABLE_TYPE2->eps
+
+VARIABLE_TYPE3->VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE VARIABLE_TYPE4
+VARIABLE_TYPE4->= EXPRESSION @MOV ;
+
+# define function
+VARIABLE_TYPE4->@START_OF_USER_DEFINED_FUNCTION ( VARIABLE_TYPE5 ) { S2 @END_OF_USER_DEFINED_FUNCTION }
+
+VARIABLE_TYPE5->eps
+VARIABLE_TYPE5->VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE @FUNCTION_PARAMETER VARIABLE_TYPE6
+VARIABLE_TYPE6->, VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE @FUNCTION_PARAMETER VARIABLE_TYPE6
+VARIABLE_TYPE6->eps
+
+# L_VALUE2 is to decide whether is assignemnt or call user-defined function
+L_VALUE2->ASSIGNMENT_STATEMENT' ;
+L_VALUE2->@CALL_USER_DEFINED_FUNCTION ( CALL_USER_DEFINED_FUNCTION_PARAMETER ) @END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE ;
+CALL_USER_DEFINED_FUNCTION_PARAMETER->eps
+CALL_USER_DEFINED_FUNCTION_PARAMETER->EXPRESSION @CALL_USER_DEFINED_FUNCTION_PARAMETER CALL_USER_DEFINED_FUNCTION_PARAMETER2
+CALL_USER_DEFINED_FUNCTION_PARAMETER2->, EXPRESSION @CALL_USER_DEFINED_FUNCTION_PARAMETER CALL_USER_DEFINED_FUNCTION_PARAMETER2
+CALL_USER_DEFINED_FUNCTION_PARAMETER2->eps
-ASSIGNMENT_STATEMENT->L_VALUE ASSIGNMENT_STATEMENT'
ASSIGNMENT_STATEMENT'->++ @INC
ASSIGNMENT_STATEMENT'->-- @DEC
ASSIGNMENT_STATEMENT'->= EXPRESSION @MOV
@@ -81,20 +121,21 @@ CALL_FUNC_STATEMENT->.ThreeOpFunc2 ( EXPRESSION , EXPRESSION , EXPRESSION @.Thre
VA->, EXPRESSION VA
VA->eps
-IF_STATEMENT->if @START_OF_IF ( BOOLEAN_EXPRESSION ) @JZ { S } ELSIF_STATEMENT ELSE_STATEMENT @END_OF_IF END_OF_IF
-ELSIF_STATEMENT->elsif @JMP_TO_END_AND_JZCOMPLETED ( BOOLEAN_EXPRESSION ) @JZ { S } ELSIF_STATEMENT
+IF_STATEMENT->if @START_OF_IF ( BOOLEAN_EXPRESSION ) @JZ { S2 } ELSIF_STATEMENT ELSE_STATEMENT @END_OF_IF END_OF_IF
+ELSIF_STATEMENT->elsif @JMP_TO_END_AND_JZCOMPLETED ( BOOLEAN_EXPRESSION ) @JZ { S2 } ELSIF_STATEMENT
ELSIF_STATEMENT->@JMP_TO_END_AND_JZCOMPLETED ELSIF_STATEMENT'
ELSIF_STATEMENT'->eps
-ELSE_STATEMENT->else { S }
+ELSE_STATEMENT->else { S2 }
ELSE_STATEMENT->eps
END_OF_IF->eps
-WHILE_STATEMENT->while @START_OF_WHILE ( BOOLEAN_EXPRESSION ) @START_OF_WHILE_COMMANDS { S @END_OF_WHILE }
-DO_WHILE_STATEMENT->do @START_OF_DO_WHILE { S } while ( BOOLEAN_EXPRESSION ) @END_OF_DO_WHILE ;
+WHILE_STATEMENT->while @START_OF_WHILE ( BOOLEAN_EXPRESSION ) @START_OF_WHILE_COMMANDS { S2 @END_OF_WHILE }
+DO_WHILE_STATEMENT->do @START_OF_DO_WHILE { S2 } while ( BOOLEAN_EXPRESSION ) @END_OF_DO_WHILE ;
-FOR_STATEMENT->for ( SIMPLE_ASSIGNMENT ; @START_OF_FOR BOOLEAN_EXPRESSION ; @FOR_INC_DEC INC_DEC ) { @START_OF_FOR_COMMANDS S @END_OF_FOR }
+FOR_STATEMENT->for ( SIMPLE_ASSIGNMENT ; @START_OF_FOR BOOLEAN_EXPRESSION ; @FOR_INC_DEC INC_DEC ) { @START_OF_FOR_COMMANDS S2 @END_OF_FOR }
+SIMPLE_ASSIGNMENT->VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE = EXPRESSION @MOV SIMPLE_ASSIGNMENT'
SIMPLE_ASSIGNMENT->L_VALUE = EXPRESSION @MOV SIMPLE_ASSIGNMENT'
SIMPLE_ASSIGNMENT->eps
SIMPLE_ASSIGNMENT'->eps
@@ -157,10 +198,10 @@ E12->.TwoOpFunc4 ( WstringNumber , WstringNumber @.TwoOpFunc4 )
E12->( EXPRESSION )
-# Types must have '_' at the first
-E12->@PUSH _register
-E12->@PUSH _local_id
-E12->@PUSH _global_id
+E12->L_VALUE E13
+E13->eps
+E13->@CALL_USER_DEFINED_FUNCTION ( CALL_USER_DEFINED_FUNCTION_PARAMETER ) @END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE
+
# numbers
@@ -178,18 +219,15 @@ E12->~ E12 @NOT
E12->* E12 @POI
E12->& E12 @REFERENCE
-
-
-
-
+# Types must have '_' at the first
STRING->@PUSH _string
WSTRING->@PUSH _wstring
L_VALUE->@PUSH _global_id
L_VALUE->@PUSH _local_id
L_VALUE->@PUSH _register
+L_VALUE->@PUSH _function_parameter_id
StringNumber->EXPRESSION
StringNumber->STRING
WstringNumber->EXPRESSION
WstringNumber->WSTRING
-
diff --git a/hyperdbg/script-engine/python/generator.py b/hyperdbg/script-engine/python/generator.py
index 478cd8cc..34824f0a 100644
--- a/hyperdbg/script-engine/python/generator.py
+++ b/hyperdbg/script-engine/python/generator.py
@@ -41,6 +41,7 @@ class Generator():
typedef struct SYMBOL {
long long unsigned Type;
long long unsigned Len;
+ long long unsigned VariableType;
long long unsigned Value;
} SYMBOL, * PSYMBOL;
typedef struct SYMBOL_BUFFER {
@@ -75,8 +76,13 @@ typedef struct ACTION_BUFFER {
#define SYMBOL_MEM_VALID_CHECK_MASK (1 << 31)
#define SYMBOL_INVALID 9
#define SYMBOL_WSTRING_TYPE 10
-#define INVALID 0xffffffff
-#define LALR_ACCEPT 0x7fffffff
+#define SYMBOL_USER_DEFINED_FUNCTION_TYPE 11
+#define SYMBOL_FUNCTION_PARAMETER_ID_TYPE 12
+#define SYMBOL_RETURN_ADDRESS_TYPE 13
+#define SYMBOL_STACK_TEMP_TYPE 14
+#define SYMBOL_FUNCTION_PARAMETER_TYPE 15
+#define INVALID -999
+#define LALR_ACCEPT 999
\n\n""")
diff --git a/hyperdbg/script-engine/python/ll1_parser.py b/hyperdbg/script-engine/python/ll1_parser.py
index 722288f4..dd995ec5 100644
--- a/hyperdbg/script-engine/python/ll1_parser.py
+++ b/hyperdbg/script-engine/python/ll1_parser.py
@@ -762,6 +762,9 @@ class LL1Parser:
j = 0
for Terminal in self.TerminalList:
if Terminal in self.PredictDict[RuleId]:
+ if i ==34 and j ==3:
+ dccc=3
+
if self.ParseTable[i][j] == self.INVALID:
self.ParseTable[i][j] = RuleId
diff --git a/hyperdbg/script-engine/script-engine.vcxproj b/hyperdbg/script-engine/script-engine.vcxproj
index 03bcfbdf..671c6dc8 100644
--- a/hyperdbg/script-engine/script-engine.vcxproj
+++ b/hyperdbg/script-engine/script-engine.vcxproj
@@ -108,6 +108,7 @@
+
@@ -116,6 +117,7 @@
+
Create
Create
diff --git a/hyperdbg/script-engine/script-engine.vcxproj.filters b/hyperdbg/script-engine/script-engine.vcxproj.filters
index 3e918814..6f89306c 100644
--- a/hyperdbg/script-engine/script-engine.vcxproj.filters
+++ b/hyperdbg/script-engine/script-engine.vcxproj.filters
@@ -29,6 +29,9 @@
header
+
+ header
+
@@ -49,5 +52,8 @@
code
+
+ code
+
\ No newline at end of file
diff --git a/hyperdbg/script-eval/code/Functions.c b/hyperdbg/script-eval/code/Functions.c
index a2c9e5ad..56e5abb9 100644
--- a/hyperdbg/script-eval/code/Functions.c
+++ b/hyperdbg/script-eval/code/Functions.c
@@ -30,7 +30,11 @@ GetValue(PGUEST_REGS GuestRegs,
PACTION_BUFFER ActionBuffer,
SCRIPT_ENGINE_VARIABLES_LIST * VariablesList,
PSYMBOL Symbol,
- BOOLEAN ReturnReference);
+ BOOLEAN ReturnReference,
+ SYMBOL_BUFFER * StackBuffer,
+ int * StackIndx,
+ int * StackBaseIndx,
+ int * StackTempBaseIndx);
//
// *** Functions ***
@@ -1271,7 +1275,11 @@ ScriptEngineFunctionPrintf(PGUEST_REGS GuestRegs,
char * Format,
UINT64 ArgCount,
PSYMBOL FirstArg,
- BOOLEAN * HasError)
+ BOOLEAN * HasError,
+ SYMBOL_BUFFER * StackBuffer,
+ int * StackIndx,
+ int * StackBaseIndx,
+ int * StackTempBaseIndx)
{
//
// *** The printf function ***
@@ -1304,7 +1312,7 @@ ScriptEngineFunctionPrintf(PGUEST_REGS GuestRegs,
memcpy(&TempSymbol, Symbol, sizeof(SYMBOL));
TempSymbol.Type &= 0x7fffffff;
- Val = GetValue(GuestRegs, ActionDetail, VariablesList, &TempSymbol, FALSE);
+ Val = GetValue(GuestRegs, ActionDetail, VariablesList, &TempSymbol, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
CHAR PercentageChar = Format[Position];
diff --git a/hyperdbg/script-eval/code/ScriptEngineEval.c b/hyperdbg/script-eval/code/ScriptEngineEval.c
index 12099d58..ab5c18bc 100644
--- a/hyperdbg/script-eval/code/ScriptEngineEval.c
+++ b/hyperdbg/script-eval/code/ScriptEngineEval.c
@@ -89,7 +89,11 @@ GetValue(PGUEST_REGS GuestRegs,
PACTION_BUFFER ActionBuffer,
PSCRIPT_ENGINE_VARIABLES_LIST VariablesList,
PSYMBOL Symbol,
- BOOLEAN ReturnReference)
+ BOOLEAN ReturnReference,
+ SYMBOL_BUFFER * StackBuffer,
+ int * StackIndx,
+ int * StackBaseIndx,
+ int * StackTempBaseIndx)
{
switch (Symbol->Type)
{
@@ -129,22 +133,27 @@ GetValue(PGUEST_REGS GuestRegs,
return GetPseudoRegValue(Symbol, ActionBuffer);
case SYMBOL_TEMP_TYPE:
-
if (ReturnReference)
return ((UINT64)&VariablesList->TempList[Symbol->Value]);
else
return VariablesList->TempList[Symbol->Value];
- default:
-#ifdef SCRIPT_ENGINE_USER_MODE
- ShowMessages("err, invalid value requested");
-#endif // SCRIPT_ENGINE_USER_MODE
+ case SYMBOL_STACK_TEMP_TYPE:
+ {
+ PSYMBOL StackSymbol = NULL;
-#ifdef SCRIPT_ENGINE_KERNEL_MODE
- LogInfo("Err, invalid value requested");
-#endif // SCRIPT_ENGINE_KERNEL_MODE
+ StackSymbol = (PSYMBOL)((unsigned long long)StackBuffer->Head +
+ (unsigned long long)((*StackTempBaseIndx + Symbol->Value) * sizeof(SYMBOL)));
+ return StackSymbol->Value;
+ }
+ case SYMBOL_FUNCTION_PARAMETER_ID_TYPE:
+ {
+ PSYMBOL StackSymbol = NULL;
- return NULL_ZERO;
+ StackSymbol = (PSYMBOL)((unsigned long long)StackBuffer->Head +
+ (unsigned long long)((*StackBaseIndx + Symbol->Value) * sizeof(SYMBOL)));
+ return StackSymbol->Value;
+ }
}
}
@@ -158,7 +167,7 @@ GetValue(PGUEST_REGS GuestRegs,
* @return VOID
*/
VOID
-SetValue(PGUEST_REGS GuestRegs, SCRIPT_ENGINE_VARIABLES_LIST * VariablesList, PSYMBOL Symbol, UINT64 Value)
+SetValue(PGUEST_REGS GuestRegs, SCRIPT_ENGINE_VARIABLES_LIST * VariablesList, PSYMBOL Symbol, UINT64 Value, SYMBOL_BUFFER * StackBuffer, int * StackIndx, int * StackBaseIndx, int * StackTempBaseIndx)
{
switch (Symbol->Type)
{
@@ -174,6 +183,22 @@ SetValue(PGUEST_REGS GuestRegs, SCRIPT_ENGINE_VARIABLES_LIST * VariablesList, PS
case SYMBOL_REGISTER_TYPE:
SetRegValue(GuestRegs, Symbol, Value);
return;
+ case SYMBOL_STACK_TEMP_TYPE:
+ {
+ PSYMBOL StackSymbol = NULL;
+
+ StackSymbol = (PSYMBOL)((unsigned long long)StackBuffer->Head +
+ (unsigned long long)((*StackTempBaseIndx + Symbol->Value) * sizeof(SYMBOL)));
+ StackSymbol->Value = Value;
+ return;
+ }
+ case SYMBOL_FUNCTION_PARAMETER_ID_TYPE:
+ {
+ PSYMBOL StackSymbol = (PSYMBOL)((unsigned long long)StackBuffer->Head +
+ (unsigned long long)((*StackBaseIndx + Symbol->Value) * sizeof(SYMBOL)));
+ StackSymbol->Value = Value;
+ return;
+ }
}
}
@@ -232,7 +257,11 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
ACTION_BUFFER * ActionDetail,
SCRIPT_ENGINE_VARIABLES_LIST * VariablesList,
SYMBOL_BUFFER * CodeBuffer,
- UINT64 * Indx,
+ int * Indx,
+ SYMBOL_BUFFER * StackBuffer,
+ int * StackIndx,
+ int * StackBaseIndx,
+ int * StackTempBaseIndx,
SYMBOL * ErrorOperator)
{
PSYMBOL Operator;
@@ -248,6 +277,9 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
UINT64 DesVal;
BOOL HasError = FALSE;
+ static int StackIndxTemp = NULL;
+ static unsigned long long ReturnValue = NULL;
+
Operator = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -273,7 +305,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -281,7 +313,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -290,7 +322,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionEd(SrcVal1, (DWORD)SrcVal0, &HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -302,7 +334,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -310,7 +342,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -319,7 +351,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionEb(SrcVal1, (BYTE)SrcVal0, &HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -330,7 +362,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -338,7 +370,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -347,7 +379,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionEq(SrcVal1, SrcVal0, &HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -359,7 +391,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -367,7 +399,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -375,7 +407,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionInterlockedExchange((volatile long long *)SrcVal1, SrcVal0, &HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -387,7 +419,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -395,7 +427,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -404,7 +436,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionInterlockedExchangeAdd((volatile long long *)SrcVal1, SrcVal0, &HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -416,14 +448,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src2 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -431,7 +463,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal2 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -439,7 +471,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionInterlockedCompareExchange((volatile long long *)SrcVal2, SrcVal1, SrcVal0, &HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -451,14 +483,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src2 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -466,7 +498,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal2 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -484,14 +516,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src2 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -499,7 +531,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal2 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -517,7 +549,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -525,7 +557,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
ScriptEngineFunctionSpinlockLockCustomWait((volatile long *)SrcVal1, (UINT32)SrcVal0, &HasError);
@@ -539,7 +571,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -547,7 +579,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
ScriptEngineFunctionEventInject((UINT32)SrcVal1, (UINT32)SrcVal0, &HasError);
@@ -594,7 +626,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -612,7 +644,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -620,7 +652,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -629,7 +661,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal1 | SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -640,13 +672,13 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
DesVal = SrcVal0 + 1;
Des = Src0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -657,13 +689,13 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
DesVal = SrcVal0 - 1;
Des = Src0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -674,7 +706,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -682,7 +714,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -690,7 +722,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal1 ^ SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -701,14 +733,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -716,7 +748,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal1 & SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -727,14 +759,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -742,7 +774,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal1 >> SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -753,7 +785,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -761,7 +793,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -770,7 +802,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal1 << SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -781,14 +813,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -796,7 +828,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal1 + SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -808,7 +840,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -816,7 +848,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -824,7 +856,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal1 - SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -835,14 +867,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -850,7 +882,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal1 * SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -861,14 +893,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -883,7 +915,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal1 / SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -894,14 +926,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -915,7 +947,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal1 % SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -926,14 +958,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -941,7 +973,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = (INT64)SrcVal1 > (INT64)SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -952,14 +984,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -967,7 +999,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = (INT64)SrcVal1 < (INT64)SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -978,14 +1010,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -993,7 +1025,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = (INT64)SrcVal1 >= (INT64)SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1004,14 +1036,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1020,7 +1052,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = (INT64)SrcVal1 <= (INT64)SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1031,7 +1063,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1039,7 +1071,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1047,7 +1079,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal1 == SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1059,7 +1091,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1067,7 +1099,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1075,7 +1107,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal1 != SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1086,16 +1118,16 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
- DesVal = ScriptEngineKeywordPoi((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE),
+ DesVal = ScriptEngineKeywordPoi((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx),
&HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1106,15 +1138,15 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
- DesVal = ScriptEngineKeywordDb((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE),
+ DesVal = ScriptEngineKeywordDb((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx),
&HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1125,16 +1157,16 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
- DesVal = ScriptEngineKeywordDd((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE),
+ DesVal = ScriptEngineKeywordDd((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx),
&HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1146,16 +1178,16 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
- DesVal = ScriptEngineKeywordDw((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE),
+ DesVal = ScriptEngineKeywordDw((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx),
&HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1166,16 +1198,16 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
- DesVal = ScriptEngineKeywordDq((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE),
+ DesVal = ScriptEngineKeywordDq((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx),
&HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1186,7 +1218,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1195,7 +1227,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ~SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1209,7 +1241,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
//
// It's reference, we need an address
//
- SrcVal0 = GetValue(GuestRegs, ActionDetail, VariablesList, Src0, TRUE);
+ SrcVal0 = GetValue(GuestRegs, ActionDetail, VariablesList, Src0, TRUE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1217,7 +1249,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1228,15 +1260,15 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
- DesVal = ScriptEngineFunctionPhysicalToVirtual(GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE));
+ DesVal = ScriptEngineFunctionPhysicalToVirtual(GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx));
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1247,15 +1279,15 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
- DesVal = ScriptEngineFunctionVirtualToPhysical(GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE));
+ DesVal = ScriptEngineFunctionVirtualToPhysical(GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx));
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1266,7 +1298,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1277,7 +1309,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
else
DesVal = 0; // FALSE
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1290,14 +1322,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
if (Src0->Type == SYMBOL_STRING_TYPE)
{
*Indx =
- *Indx + ((2 * sizeof(unsigned long long) + Src0->Len) /
+ *Indx + ((3 * sizeof(unsigned long long) + Src0->Len) /
sizeof(SYMBOL));
SrcVal0 = (UINT64)&Src0->Value;
}
else
{
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
}
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
@@ -1306,7 +1338,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionStrlen((const char *)SrcVal0);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1318,7 +1350,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1326,7 +1358,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionDisassembleLen((PVOID)SrcVal0, FALSE);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1337,7 +1369,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1345,7 +1377,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionDisassembleLen((PVOID)SrcVal0, TRUE);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1358,14 +1390,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
if (Src0->Type == SYMBOL_WSTRING_TYPE)
{
*Indx =
- *Indx + ((2 * sizeof(unsigned long long) + Src0->Len) /
+ *Indx + ((3 * sizeof(unsigned long long) + Src0->Len) /
sizeof(SYMBOL));
SrcVal0 = (UINT64)&Src0->Value;
}
else
{
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
}
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
@@ -1374,7 +1406,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionWcslen((const wchar_t *)SrcVal0);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1385,7 +1417,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1394,7 +1426,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionInterlockedIncrement((volatile long long *)SrcVal0, &HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1405,7 +1437,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1413,7 +1445,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionInterlockedDecrement((volatile long long *)SrcVal0, &HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1425,7 +1457,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1433,7 +1465,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = -(INT64)SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1444,15 +1476,15 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
- DesVal = ScriptEngineKeywordHi((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE),
+ DesVal = ScriptEngineKeywordHi((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx),
&HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1464,16 +1496,16 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
- DesVal = ScriptEngineKeywordLow((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE),
+ DesVal = ScriptEngineKeywordLow((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx),
&HasError);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1484,7 +1516,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1492,7 +1524,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = SrcVal0;
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1504,7 +1536,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
//
// Call the target function
@@ -1519,7 +1551,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
//
// Call the target function
@@ -1535,7 +1567,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
//
// Call the target function
@@ -1549,7 +1581,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
//
// Call the target function
@@ -1564,7 +1596,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
ScriptEngineFunctionEventEnable(SrcVal0);
@@ -1576,7 +1608,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
ScriptEngineFunctionEventDisable(SrcVal0);
@@ -1588,7 +1620,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
ScriptEngineFunctionEventClear(SrcVal0);
@@ -1600,7 +1632,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
//
// Call the target function
@@ -1618,14 +1650,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
if (SrcVal1 == 0)
*Indx = SrcVal0;
@@ -1639,14 +1671,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
if (SrcVal1 != 0)
*Indx = SrcVal0;
@@ -1659,12 +1691,175 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
(unsigned long long)(*Indx * sizeof(SYMBOL)));
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
*Indx = SrcVal0;
break;
+ case FUNC_CALL_USER_DEFINED_FUNCTION:
+ StackIndxTemp = *StackIndx;
+ break;
+ case FUNC_CALL_USER_DEFINED_FUNCTION_PARAMETER:
+
+ //
+ // push parameter variable into stack
+ //
+ Src0 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
+ (unsigned long long)(*Indx * sizeof(SYMBOL)));
+ *Indx = *Indx + 1;
+ SrcVal0 =
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
+
+ Src1 = (PSYMBOL)((unsigned long long)StackBuffer->Head +
+ (unsigned long long)(*StackIndx * sizeof(SYMBOL)));
+ *StackIndx = *StackIndx + 1;
+ Src1->Len = 0;
+ Src1->Type = SYMBOL_FUNCTION_PARAMETER_TYPE;
+ Src1->VariableType = 0;
+ Src1->Value = SrcVal0;
+
+ break;
+
+ case FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE:
+ case FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE:
+ {
+ //
+ //
+ //
+ Src0 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
+ (unsigned long long)(*Indx * sizeof(SYMBOL)));
+ *Indx = *Indx + 1;
+ UINT64 FunctionAddress =
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
+
+ //
+ // push return address symbol into stack
+ //
+ Src0 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
+ (unsigned long long)(*Indx * sizeof(SYMBOL)));
+ *Indx = *Indx + 1;
+ Src1 = (PSYMBOL)((unsigned long long)StackBuffer->Head +
+ (unsigned long long)(*StackIndx * sizeof(SYMBOL)));
+ *StackIndx = *StackIndx + 1;
+ Src1->Len = Src0->Len;
+ Src1->Type = Src0->Type;
+ Src1->Value = Src0->Value;
+ Src1->VariableType = Src0->VariableType;
+
+ *StackTempBaseIndx = *StackIndx;
+ *StackBaseIndx = 0;
+
+ *StackBaseIndx = StackIndxTemp;
+
+ // jump to function
+ *Indx = FunctionAddress + 1;
+ }
+
+ break;
+
+ case FUNC_START_OF_USER_DEFINED_FUNCTION:
+ Src0 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
+ (unsigned long long)(*Indx * sizeof(SYMBOL)));
+ *Indx = *Indx + 1;
+
+ SrcVal0 = GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
+ *StackIndx = *StackIndx + SrcVal0;
+
+ break;
+
+ case FUNC_MOV_RETURN_VALUE:
+ Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
+ (unsigned long long)(*Indx * sizeof(SYMBOL)));
+ *Indx = *Indx + 1;
+ SetValue(GuestRegs, VariablesList, Des, ReturnValue, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
+ break;
+
+ case FUNC_END_OF_USER_DEFINED_FUNCTION:
+ case FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE:
+ // check
+ case FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE:
+ {
+ if (Operator->Value == FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE)
+ {
+ Src0 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
+ (unsigned long long)(*Indx * sizeof(SYMBOL)));
+ *Indx = *Indx + 1;
+ ReturnValue =
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
+ }
+
+ //
+ // pop return address
+ //
+ UINT64 ReturnAddress = 0;
+
+ Src0 = (PSYMBOL)((unsigned long long)StackBuffer->Head +
+ (unsigned long long)((*StackTempBaseIndx - 1) * sizeof(SYMBOL)));
+
+ if (Src0->Type == SYMBOL_RETURN_ADDRESS_TYPE)
+ {
+ ReturnAddress = Src0->Value;
+ }
+ else
+ {
+ // error
+ }
+
+ *StackIndx = *StackBaseIndx;
+
+ // update StackBaseIndx and StackTempBaseIndx
+
+ if (*StackIndx == 0)
+ {
+ *StackTempBaseIndx = 0;
+ *StackBaseIndx = 0;
+ }
+ else
+ {
+ int i = *StackIndx;
+ PSYMBOL StackSymbol = NULL;
+
+ *StackTempBaseIndx = 0;
+ *StackBaseIndx = 0;
+ for (; i > 0; i--)
+ {
+ StackSymbol = (PSYMBOL)((unsigned long long)StackBuffer->Head +
+ (unsigned long long)((i - 1) * sizeof(SYMBOL)));
+ if (StackSymbol->Type == SYMBOL_RETURN_ADDRESS_TYPE)
+ {
+ *StackTempBaseIndx = i;
+ *StackBaseIndx = *StackTempBaseIndx - 1;
+ break;
+ }
+ }
+
+ for (i = *StackTempBaseIndx - 2; i >= 0; i--)
+ {
+ StackSymbol = (PSYMBOL)((unsigned long long)StackBuffer->Head +
+ (unsigned long long)((i) * sizeof(SYMBOL)));
+ if (StackSymbol->Type == SYMBOL_FUNCTION_PARAMETER_TYPE)
+ {
+ continue;
+ }
+ else
+ {
+ *StackBaseIndx = i + 1;
+ break;
+ }
+ }
+
+ if (i == -1)
+ {
+ *StackBaseIndx = 0;
+ }
+ }
+
+ *Indx = ReturnAddress;
+ }
+
+ break;
+
case FUNC_STRCMP:
Src0 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
@@ -1675,14 +1870,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
if (Src0->Type == SYMBOL_STRING_TYPE)
{
*Indx =
- *Indx + ((2 * sizeof(unsigned long long) + Src0->Len) /
+ *Indx + ((3 * sizeof(unsigned long long) + Src0->Len) /
sizeof(SYMBOL));
SrcVal0 = (UINT64)&Src0->Value;
}
else
{
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
}
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
@@ -1693,14 +1888,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
if (Src1->Type == SYMBOL_STRING_TYPE)
{
*Indx =
- *Indx + ((2 * sizeof(unsigned long long) + Src1->Len) /
+ *Indx + ((3 * sizeof(unsigned long long) + Src1->Len) /
sizeof(SYMBOL));
SrcVal1 = (UINT64)&Src1->Value;
}
else
{
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
}
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
@@ -1710,7 +1905,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionStrcmp((const char *)SrcVal1, (const char *)SrcVal0);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1724,14 +1919,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
if (Src0->Type == SYMBOL_WSTRING_TYPE)
{
*Indx =
- *Indx + ((2 * sizeof(unsigned long long) + Src0->Len) /
+ *Indx + ((3 * sizeof(unsigned long long) + Src0->Len) /
sizeof(SYMBOL));
SrcVal0 = (UINT64)&Src0->Value;
}
else
{
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
}
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
@@ -1742,14 +1937,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
if (Src1->Type == SYMBOL_WSTRING_TYPE)
{
*Indx =
- *Indx + ((2 * sizeof(unsigned long long) + Src1->Len) /
+ *Indx + ((3 * sizeof(unsigned long long) + Src1->Len) /
sizeof(SYMBOL));
SrcVal1 = (UINT64)&Src1->Value;
}
else
{
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
}
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
@@ -1759,7 +1954,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionWcscmp((const wchar_t *)SrcVal1, (const wchar_t *)SrcVal0);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1771,7 +1966,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
*Indx = *Indx + 1;
SrcVal0 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
(unsigned long long)(*Indx * sizeof(SYMBOL)));
@@ -1781,14 +1976,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
if (Src1->Type == SYMBOL_STRING_TYPE)
{
*Indx =
- *Indx + ((2 * sizeof(unsigned long long) + Src1->Len) /
+ *Indx + ((3 * sizeof(unsigned long long) + Src1->Len) /
sizeof(SYMBOL));
SrcVal1 = (UINT64)&Src1->Value;
}
else
{
SrcVal1 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
}
Src2 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
@@ -1799,14 +1994,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
if (Src2->Type == SYMBOL_STRING_TYPE)
{
*Indx =
- *Indx + ((2 * sizeof(unsigned long long) + Src2->Len) /
+ *Indx + ((3 * sizeof(unsigned long long) + Src2->Len) /
sizeof(SYMBOL));
SrcVal2 = (UINT64)&Src2->Value;
}
else
{
SrcVal2 =
- GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE);
+ GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
}
Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
@@ -1816,7 +2011,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
DesVal = ScriptEngineFunctionMemcmp((const char *)SrcVal2, (const char *)SrcVal1, SrcVal0);
- SetValue(GuestRegs, VariablesList, Des, DesVal);
+ SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx);
break;
@@ -1831,7 +2026,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
//
*Indx =
- *Indx + ((2 * sizeof(unsigned long long) + Src0->Len) /
+ *Indx + ((3 * sizeof(unsigned long long) + Src0->Len) /
sizeof(SYMBOL));
Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head +
@@ -1858,7 +2053,11 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
(char *)&Src0->Value,
Src1->Value,
Src2,
- (BOOLEAN *)&HasError);
+ (BOOLEAN *)&HasError,
+ StackBuffer,
+ StackIndx,
+ StackBaseIndx,
+ StackTempBaseIndx);
break;
}
diff --git a/hyperdbg/script-eval/header/ScriptEngineCommonDefinitions.h b/hyperdbg/script-eval/header/ScriptEngineCommonDefinitions.h
index b66ebaed..8a6ed3d7 100644
--- a/hyperdbg/script-eval/header/ScriptEngineCommonDefinitions.h
+++ b/hyperdbg/script-eval/header/ScriptEngineCommonDefinitions.h
@@ -4,6 +4,7 @@
typedef struct SYMBOL {
long long unsigned Type;
long long unsigned Len;
+ long long unsigned VariableType;
long long unsigned Value;
} SYMBOL, * PSYMBOL;
typedef struct SYMBOL_BUFFER {
@@ -38,8 +39,13 @@ typedef struct ACTION_BUFFER {
#define SYMBOL_MEM_VALID_CHECK_MASK (1 << 31)
#define SYMBOL_INVALID 9
#define SYMBOL_WSTRING_TYPE 10
-#define INVALID 0xffffffff
-#define LALR_ACCEPT 0x7fffffff
+#define SYMBOL_USER_DEFINED_FUNCTION_TYPE 11
+#define SYMBOL_FUNCTION_PARAMETER_ID_TYPE 12
+#define SYMBOL_RETURN_ADDRESS_TYPE 13
+#define SYMBOL_STACK_TEMP_TYPE 14
+#define SYMBOL_FUNCTION_PARAMETER_TYPE 15
+#define INVALID -999
+#define LALR_ACCEPT 999
@@ -199,320 +205,396 @@ typedef struct ACTION_BUFFER {
#define FUNC_IGNORE_LVALUE 38
#endif // !FUNC_IGNORE_LVALUE
+#ifndef FUNC_END_OF_USER_DEFINED_FUNCTION
+#define FUNC_END_OF_USER_DEFINED_FUNCTION 39
+#endif // !FUNC_END_OF_USER_DEFINED_FUNCTION
+
+#ifndef FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE
+#define FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE 40
+#endif // !FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE
+
+#ifndef FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE
+#define FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE 41
+#endif // !FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE
+
+#ifndef FUNC_CALL_USER_DEFINED_FUNCTION_PARAMETER
+#define FUNC_CALL_USER_DEFINED_FUNCTION_PARAMETER 42
+#endif // !FUNC_CALL_USER_DEFINED_FUNCTION_PARAMETER
+
+#ifndef FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE
+#define FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE 43
+#endif // !FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE
+
+#ifndef FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE
+#define FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE 44
+#endif // !FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE
+
+#ifndef FUNC_CALL_USER_DEFINED_FUNCTION
+#define FUNC_CALL_USER_DEFINED_FUNCTION 45
+#endif // !FUNC_CALL_USER_DEFINED_FUNCTION
+
+#ifndef FUNC_START_OF_USER_DEFINED_FUNCTION
+#define FUNC_START_OF_USER_DEFINED_FUNCTION 46
+#endif // !FUNC_START_OF_USER_DEFINED_FUNCTION
+
+#ifndef FUNC_MOV_RETURN_VALUE
+#define FUNC_MOV_RETURN_VALUE 47
+#endif // !FUNC_MOV_RETURN_VALUE
+
+#ifndef FUNC_VOID
+#define FUNC_VOID 48
+#endif // !FUNC_VOID
+
+#ifndef FUNC_BOOL
+#define FUNC_BOOL 49
+#endif // !FUNC_BOOL
+
+#ifndef FUNC_CHAR
+#define FUNC_CHAR 50
+#endif // !FUNC_CHAR
+
+#ifndef FUNC_SHORT
+#define FUNC_SHORT 51
+#endif // !FUNC_SHORT
+
+#ifndef FUNC_INT
+#define FUNC_INT 52
+#endif // !FUNC_INT
+
+#ifndef FUNC_LONG
+#define FUNC_LONG 53
+#endif // !FUNC_LONG
+
+#ifndef FUNC_UNSIGNED
+#define FUNC_UNSIGNED 54
+#endif // !FUNC_UNSIGNED
+
+#ifndef FUNC_SIGNED
+#define FUNC_SIGNED 55
+#endif // !FUNC_SIGNED
+
+#ifndef FUNC_FLOAT
+#define FUNC_FLOAT 56
+#endif // !FUNC_FLOAT
+
+#ifndef FUNC_DOUBLE
+#define FUNC_DOUBLE 57
+#endif // !FUNC_DOUBLE
+
#ifndef FUNC_PRINT
-#define FUNC_PRINT 39
+#define FUNC_PRINT 58
#endif // !FUNC_PRINT
#ifndef FUNC_FORMATS
-#define FUNC_FORMATS 40
+#define FUNC_FORMATS 59
#endif // !FUNC_FORMATS
#ifndef FUNC_EVENT_ENABLE
-#define FUNC_EVENT_ENABLE 41
+#define FUNC_EVENT_ENABLE 60
#endif // !FUNC_EVENT_ENABLE
#ifndef FUNC_EVENT_DISABLE
-#define FUNC_EVENT_DISABLE 42
+#define FUNC_EVENT_DISABLE 61
#endif // !FUNC_EVENT_DISABLE
#ifndef FUNC_EVENT_CLEAR
-#define FUNC_EVENT_CLEAR 43
+#define FUNC_EVENT_CLEAR 62
#endif // !FUNC_EVENT_CLEAR
#ifndef FUNC_TEST_STATEMENT
-#define FUNC_TEST_STATEMENT 44
+#define FUNC_TEST_STATEMENT 63
#endif // !FUNC_TEST_STATEMENT
#ifndef FUNC_SPINLOCK_LOCK
-#define FUNC_SPINLOCK_LOCK 45
+#define FUNC_SPINLOCK_LOCK 64
#endif // !FUNC_SPINLOCK_LOCK
#ifndef FUNC_SPINLOCK_UNLOCK
-#define FUNC_SPINLOCK_UNLOCK 46
+#define FUNC_SPINLOCK_UNLOCK 65
#endif // !FUNC_SPINLOCK_UNLOCK
#ifndef FUNC_EVENT_SC
-#define FUNC_EVENT_SC 47
+#define FUNC_EVENT_SC 66
#endif // !FUNC_EVENT_SC
#ifndef FUNC_PRINTF
-#define FUNC_PRINTF 48
+#define FUNC_PRINTF 67
#endif // !FUNC_PRINTF
#ifndef FUNC_PAUSE
-#define FUNC_PAUSE 49
+#define FUNC_PAUSE 68
#endif // !FUNC_PAUSE
#ifndef FUNC_FLUSH
-#define FUNC_FLUSH 50
+#define FUNC_FLUSH 69
#endif // !FUNC_FLUSH
#ifndef FUNC_EVENT_TRACE_STEP
-#define FUNC_EVENT_TRACE_STEP 51
+#define FUNC_EVENT_TRACE_STEP 70
#endif // !FUNC_EVENT_TRACE_STEP
#ifndef FUNC_EVENT_TRACE_STEP_IN
-#define FUNC_EVENT_TRACE_STEP_IN 52
+#define FUNC_EVENT_TRACE_STEP_IN 71
#endif // !FUNC_EVENT_TRACE_STEP_IN
#ifndef FUNC_EVENT_TRACE_STEP_OUT
-#define FUNC_EVENT_TRACE_STEP_OUT 53
+#define FUNC_EVENT_TRACE_STEP_OUT 72
#endif // !FUNC_EVENT_TRACE_STEP_OUT
#ifndef FUNC_EVENT_TRACE_INSTRUMENTATION_STEP
-#define FUNC_EVENT_TRACE_INSTRUMENTATION_STEP 54
+#define FUNC_EVENT_TRACE_INSTRUMENTATION_STEP 73
#endif // !FUNC_EVENT_TRACE_INSTRUMENTATION_STEP
#ifndef FUNC_EVENT_TRACE_INSTRUMENTATION_STEP_IN
-#define FUNC_EVENT_TRACE_INSTRUMENTATION_STEP_IN 55
+#define FUNC_EVENT_TRACE_INSTRUMENTATION_STEP_IN 74
#endif // !FUNC_EVENT_TRACE_INSTRUMENTATION_STEP_IN
#ifndef FUNC_SPINLOCK_LOCK_CUSTOM_WAIT
-#define FUNC_SPINLOCK_LOCK_CUSTOM_WAIT 56
+#define FUNC_SPINLOCK_LOCK_CUSTOM_WAIT 75
#endif // !FUNC_SPINLOCK_LOCK_CUSTOM_WAIT
#ifndef FUNC_EVENT_INJECT
-#define FUNC_EVENT_INJECT 57
+#define FUNC_EVENT_INJECT 76
#endif // !FUNC_EVENT_INJECT
#ifndef FUNC_POI
-#define FUNC_POI 58
+#define FUNC_POI 77
#endif // !FUNC_POI
#ifndef FUNC_DB
-#define FUNC_DB 59
+#define FUNC_DB 78
#endif // !FUNC_DB
#ifndef FUNC_DD
-#define FUNC_DD 60
+#define FUNC_DD 79
#endif // !FUNC_DD
#ifndef FUNC_DW
-#define FUNC_DW 61
+#define FUNC_DW 80
#endif // !FUNC_DW
#ifndef FUNC_DQ
-#define FUNC_DQ 62
+#define FUNC_DQ 81
#endif // !FUNC_DQ
#ifndef FUNC_NEG
-#define FUNC_NEG 63
+#define FUNC_NEG 82
#endif // !FUNC_NEG
#ifndef FUNC_HI
-#define FUNC_HI 64
+#define FUNC_HI 83
#endif // !FUNC_HI
#ifndef FUNC_LOW
-#define FUNC_LOW 65
+#define FUNC_LOW 84
#endif // !FUNC_LOW
#ifndef FUNC_NOT
-#define FUNC_NOT 66
+#define FUNC_NOT 85
#endif // !FUNC_NOT
#ifndef FUNC_CHECK_ADDRESS
-#define FUNC_CHECK_ADDRESS 67
+#define FUNC_CHECK_ADDRESS 86
#endif // !FUNC_CHECK_ADDRESS
#ifndef FUNC_DISASSEMBLE_LEN
-#define FUNC_DISASSEMBLE_LEN 68
+#define FUNC_DISASSEMBLE_LEN 87
#endif // !FUNC_DISASSEMBLE_LEN
#ifndef FUNC_DISASSEMBLE_LEN32
-#define FUNC_DISASSEMBLE_LEN32 69
+#define FUNC_DISASSEMBLE_LEN32 88
#endif // !FUNC_DISASSEMBLE_LEN32
#ifndef FUNC_DISASSEMBLE_LEN64
-#define FUNC_DISASSEMBLE_LEN64 70
+#define FUNC_DISASSEMBLE_LEN64 89
#endif // !FUNC_DISASSEMBLE_LEN64
#ifndef FUNC_INTERLOCKED_INCREMENT
-#define FUNC_INTERLOCKED_INCREMENT 71
+#define FUNC_INTERLOCKED_INCREMENT 90
#endif // !FUNC_INTERLOCKED_INCREMENT
#ifndef FUNC_INTERLOCKED_DECREMENT
-#define FUNC_INTERLOCKED_DECREMENT 72
+#define FUNC_INTERLOCKED_DECREMENT 91
#endif // !FUNC_INTERLOCKED_DECREMENT
#ifndef FUNC_REFERENCE
-#define FUNC_REFERENCE 73
+#define FUNC_REFERENCE 92
#endif // !FUNC_REFERENCE
#ifndef FUNC_PHYSICAL_TO_VIRTUAL
-#define FUNC_PHYSICAL_TO_VIRTUAL 74
+#define FUNC_PHYSICAL_TO_VIRTUAL 93
#endif // !FUNC_PHYSICAL_TO_VIRTUAL
#ifndef FUNC_VIRTUAL_TO_PHYSICAL
-#define FUNC_VIRTUAL_TO_PHYSICAL 75
+#define FUNC_VIRTUAL_TO_PHYSICAL 94
#endif // !FUNC_VIRTUAL_TO_PHYSICAL
#ifndef FUNC_ED
-#define FUNC_ED 76
+#define FUNC_ED 95
#endif // !FUNC_ED
#ifndef FUNC_EB
-#define FUNC_EB 77
+#define FUNC_EB 96
#endif // !FUNC_EB
#ifndef FUNC_EQ
-#define FUNC_EQ 78
+#define FUNC_EQ 97
#endif // !FUNC_EQ
#ifndef FUNC_INTERLOCKED_EXCHANGE
-#define FUNC_INTERLOCKED_EXCHANGE 79
+#define FUNC_INTERLOCKED_EXCHANGE 98
#endif // !FUNC_INTERLOCKED_EXCHANGE
#ifndef FUNC_INTERLOCKED_EXCHANGE_ADD
-#define FUNC_INTERLOCKED_EXCHANGE_ADD 80
+#define FUNC_INTERLOCKED_EXCHANGE_ADD 99
#endif // !FUNC_INTERLOCKED_EXCHANGE_ADD
#ifndef FUNC_INTERLOCKED_COMPARE_EXCHANGE
-#define FUNC_INTERLOCKED_COMPARE_EXCHANGE 81
+#define FUNC_INTERLOCKED_COMPARE_EXCHANGE 100
#endif // !FUNC_INTERLOCKED_COMPARE_EXCHANGE
#ifndef FUNC_STRLEN
-#define FUNC_STRLEN 82
+#define FUNC_STRLEN 101
#endif // !FUNC_STRLEN
#ifndef FUNC_STRCMP
-#define FUNC_STRCMP 83
+#define FUNC_STRCMP 102
#endif // !FUNC_STRCMP
#ifndef FUNC_MEMCMP
-#define FUNC_MEMCMP 84
+#define FUNC_MEMCMP 103
#endif // !FUNC_MEMCMP
#ifndef FUNC_WCSLEN
-#define FUNC_WCSLEN 85
+#define FUNC_WCSLEN 104
#endif // !FUNC_WCSLEN
#ifndef FUNC_WCSCMP
-#define FUNC_WCSCMP 86
+#define FUNC_WCSCMP 105
#endif // !FUNC_WCSCMP
#ifndef FUNC_EVENT_INJECT_ERROR_CODE
-#define FUNC_EVENT_INJECT_ERROR_CODE 87
+#define FUNC_EVENT_INJECT_ERROR_CODE 106
#endif // !FUNC_EVENT_INJECT_ERROR_CODE
#ifndef FUNC_MEMCPY
-#define FUNC_MEMCPY 88
+#define FUNC_MEMCPY 107
#endif // !FUNC_MEMCPY
#ifndef FUNC_POI
-#define FUNC_POI 89
+#define FUNC_POI 108
#endif // !FUNC_POI
#ifndef FUNC_DB
-#define FUNC_DB 90
+#define FUNC_DB 109
#endif // !FUNC_DB
#ifndef FUNC_DD
-#define FUNC_DD 91
+#define FUNC_DD 110
#endif // !FUNC_DD
#ifndef FUNC_DW
-#define FUNC_DW 92
+#define FUNC_DW 111
#endif // !FUNC_DW
#ifndef FUNC_DQ
-#define FUNC_DQ 93
+#define FUNC_DQ 112
#endif // !FUNC_DQ
#ifndef FUNC_NEG
-#define FUNC_NEG 94
+#define FUNC_NEG 113
#endif // !FUNC_NEG
#ifndef FUNC_HI
-#define FUNC_HI 95
+#define FUNC_HI 114
#endif // !FUNC_HI
#ifndef FUNC_LOW
-#define FUNC_LOW 96
+#define FUNC_LOW 115
#endif // !FUNC_LOW
#ifndef FUNC_NOT
-#define FUNC_NOT 97
+#define FUNC_NOT 116
#endif // !FUNC_NOT
#ifndef FUNC_CHECK_ADDRESS
-#define FUNC_CHECK_ADDRESS 98
+#define FUNC_CHECK_ADDRESS 117
#endif // !FUNC_CHECK_ADDRESS
#ifndef FUNC_DISASSEMBLE_LEN
-#define FUNC_DISASSEMBLE_LEN 99
+#define FUNC_DISASSEMBLE_LEN 118
#endif // !FUNC_DISASSEMBLE_LEN
#ifndef FUNC_DISASSEMBLE_LEN32
-#define FUNC_DISASSEMBLE_LEN32 100
+#define FUNC_DISASSEMBLE_LEN32 119
#endif // !FUNC_DISASSEMBLE_LEN32
#ifndef FUNC_DISASSEMBLE_LEN64
-#define FUNC_DISASSEMBLE_LEN64 101
+#define FUNC_DISASSEMBLE_LEN64 120
#endif // !FUNC_DISASSEMBLE_LEN64
#ifndef FUNC_INTERLOCKED_INCREMENT
-#define FUNC_INTERLOCKED_INCREMENT 102
+#define FUNC_INTERLOCKED_INCREMENT 121
#endif // !FUNC_INTERLOCKED_INCREMENT
#ifndef FUNC_INTERLOCKED_DECREMENT
-#define FUNC_INTERLOCKED_DECREMENT 103
+#define FUNC_INTERLOCKED_DECREMENT 122
#endif // !FUNC_INTERLOCKED_DECREMENT
#ifndef FUNC_REFERENCE
-#define FUNC_REFERENCE 104
+#define FUNC_REFERENCE 123
#endif // !FUNC_REFERENCE
#ifndef FUNC_PHYSICAL_TO_VIRTUAL
-#define FUNC_PHYSICAL_TO_VIRTUAL 105
+#define FUNC_PHYSICAL_TO_VIRTUAL 124
#endif // !FUNC_PHYSICAL_TO_VIRTUAL
#ifndef FUNC_VIRTUAL_TO_PHYSICAL
-#define FUNC_VIRTUAL_TO_PHYSICAL 106
+#define FUNC_VIRTUAL_TO_PHYSICAL 125
#endif // !FUNC_VIRTUAL_TO_PHYSICAL
#ifndef FUNC_ED
-#define FUNC_ED 107
+#define FUNC_ED 126
#endif // !FUNC_ED
#ifndef FUNC_EB
-#define FUNC_EB 108
+#define FUNC_EB 127
#endif // !FUNC_EB
#ifndef FUNC_EQ
-#define FUNC_EQ 109
+#define FUNC_EQ 128
#endif // !FUNC_EQ
#ifndef FUNC_INTERLOCKED_EXCHANGE
-#define FUNC_INTERLOCKED_EXCHANGE 110
+#define FUNC_INTERLOCKED_EXCHANGE 129
#endif // !FUNC_INTERLOCKED_EXCHANGE
#ifndef FUNC_INTERLOCKED_EXCHANGE_ADD
-#define FUNC_INTERLOCKED_EXCHANGE_ADD 111
+#define FUNC_INTERLOCKED_EXCHANGE_ADD 130
#endif // !FUNC_INTERLOCKED_EXCHANGE_ADD
#ifndef FUNC_INTERLOCKED_COMPARE_EXCHANGE
-#define FUNC_INTERLOCKED_COMPARE_EXCHANGE 112
+#define FUNC_INTERLOCKED_COMPARE_EXCHANGE 131
#endif // !FUNC_INTERLOCKED_COMPARE_EXCHANGE
#ifndef FUNC_STRLEN
-#define FUNC_STRLEN 113
+#define FUNC_STRLEN 132
#endif // !FUNC_STRLEN
#ifndef FUNC_STRCMP
-#define FUNC_STRCMP 114
+#define FUNC_STRCMP 133
#endif // !FUNC_STRCMP
#ifndef FUNC_MEMCMP
-#define FUNC_MEMCMP 115
+#define FUNC_MEMCMP 134
#endif // !FUNC_MEMCMP
#ifndef FUNC_WCSLEN
-#define FUNC_WCSLEN 116
+#define FUNC_WCSLEN 135
#endif // !FUNC_WCSLEN
#ifndef FUNC_WCSCMP
-#define FUNC_WCSCMP 117
+#define FUNC_WCSCMP 136
#endif // !FUNC_WCSCMP
typedef enum REGS_ENUM {
diff --git a/hyperdbg/script-eval/header/ScriptEngineHeader.h b/hyperdbg/script-eval/header/ScriptEngineHeader.h
index 61705a03..072cb926 100644
--- a/hyperdbg/script-eval/header/ScriptEngineHeader.h
+++ b/hyperdbg/script-eval/header/ScriptEngineHeader.h
@@ -16,7 +16,11 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs,
ACTION_BUFFER * ActionDetail,
SCRIPT_ENGINE_VARIABLES_LIST * VariablesList,
SYMBOL_BUFFER * CodeBuffer,
- UINT64 * Indx,
+ int * Indx,
+ SYMBOL_BUFFER * StackBuffer,
+ int * StackIndx,
+ int * StackBaseIndx,
+ int * StackTempBaseIndx,
SYMBOL * ErrorOperator);
UINT64
diff --git a/hyperdbg/script-eval/header/ScriptEngineInternalHeader.h b/hyperdbg/script-eval/header/ScriptEngineInternalHeader.h
index f60f28f0..3dbba7d7 100644
--- a/hyperdbg/script-eval/header/ScriptEngineInternalHeader.h
+++ b/hyperdbg/script-eval/header/ScriptEngineInternalHeader.h
@@ -196,7 +196,11 @@ ScriptEngineFunctionPrintf(PGUEST_REGS GuestRegs,
char * Format,
UINT64 ArgCount,
PSYMBOL FirstArg,
- BOOLEAN * HasError);
+ BOOLEAN * HasError,
+ SYMBOL_BUFFER * StackBuffer,
+ int * StackIndx,
+ int * StackBaseIndx,
+ int * StackTempBaseIndx);
VOID
ScriptEngineFunctionEventInject(UINT32 InterruptionType, UINT32 Vector, BOOL * HasError);