diff --git a/hwdbg/src/main/scala/hwdbg/script/script_definitions.scala b/hwdbg/src/main/scala/hwdbg/script/script_definitions.scala index 93574310..a247f77a 100644 --- a/hwdbg/src/main/scala/hwdbg/script/script_definitions.scala +++ b/hwdbg/src/main/scala/hwdbg/script/script_definitions.scala @@ -45,6 +45,6 @@ object ScriptConstantTypes { object ScriptEvalFunc { object ScriptOperators extends ChiselEnum { - val sFuncUndefined, sFuncInc, sFuncDec, sFuncReference, sFuncDereference, sFuncOr, sFuncXor, sFuncAnd, sFuncAsr, sFuncAsl, sFuncAdd, sFuncSub, sFuncMul, sFuncDiv, sFuncMod, sFuncGt, sFuncLt, sFuncEgt, sFuncElt, sFuncEqual, sFuncNeq, sFuncStart_of_if, sFuncJmp, sFuncJz, sFuncJnz, sFuncJmp_to_end_and_jzcompleted, sFuncEnd_of_if, sFuncStart_of_while, sFuncEnd_of_while, sFuncVargstart, sFuncMov, sFuncStart_of_do_while, sFunc, sFuncStart_of_do_while_commands, sFuncEnd_of_do_while, sFuncStart_of_for, sFuncFor_inc_dec, sFuncStart_of_for_ommands, sFuncIgnore_lvalue, sFuncEnd_of_user_defined_function, sFuncReturn_of_user_defined_function_with_value, sFuncReturn_of_user_defined_function_without_value, sFuncCall_user_defined_function_parameter, sFuncEnd_of_calling_user_defined_function_without_returning_value, sFuncEnd_of_calling_user_defined_function_with_returning_value, sFuncCall_user_defined_function, sFuncStart_of_user_defined_function, sFuncMov_return_value, sFuncVoid, sFuncBool, sFuncChar, sFuncShort, sFuncInt, sFuncLong, sFuncUnsigned, sFuncSigned, sFuncFloat, sFuncDouble, sFuncPrint, sFuncFormats, sFuncEvent_enable, sFuncEvent_disable, sFuncEvent_clear, sFuncTest_statement, sFuncSpinlock_lock, sFuncSpinlock_unlock, sFuncEvent_sc, sFuncPrintf, sFuncPause, sFuncFlush, sFuncEvent_trace_step, sFuncEvent_trace_step_in, sFuncEvent_trace_step_out, sFuncEvent_trace_instrumentation_step, sFuncEvent_trace_instrumentation_step_in, sFuncSpinlock_lock_custom_wait, sFuncEvent_inject, sFuncPoi, sFuncDb, sFuncDd, sFuncDw, sFuncDq, sFuncNeg, sFuncHi, sFuncLow, sFuncNot, sFuncCheck_address, sFuncDisassemble_len, sFuncDisassemble_len32, sFuncDisassemble_len64, sFuncInterlocked_increment, sFuncInterlocked_decrement, sFuncPhysical_to_virtual, sFuncVirtual_to_physical, sFuncEd, sFuncEb, sFuncEq, sFuncInterlocked_exchange, sFuncInterlocked_exchange_add, sFuncInterlocked_compare_exchange, sFuncStrlen, sFuncStrcmp, sFuncMemcmp, sFuncStrncmp, sFuncWcslen, sFuncWcscmp, sFuncEvent_inject_error_code, sFuncMemcpy, sFuncWcsncmp = Value + val sFuncUndefined, sFuncInc, sFuncDec, sFuncReference, sFuncDereference, sFuncOr, sFuncXor, sFuncAnd, sFuncAsr, sFuncAsl, sFuncAdd, sFuncSub, sFuncMul, sFuncDiv, sFuncMod, sFuncGt, sFuncLt, sFuncEgt, sFuncElt, sFuncEqual, sFuncNeq, sFuncStart_of_if, sFuncJmp, sFuncJz, sFuncJnz, sFuncJmp_to_end_and_jzcompleted, sFuncEnd_of_if, sFuncStart_of_while, sFuncEnd_of_while, sFuncVargstart, sFuncMov, sFuncStart_of_do_while, sFunc, sFuncStart_of_do_while_commands, sFuncEnd_of_do_while, sFuncStart_of_for, sFuncFor_inc_dec, sFuncStart_of_for_ommands, sFuncIgnore_lvalue, sFuncPush, sFuncPop, sFuncCall, sFuncRet, sFuncVoid, sFuncBool, sFuncChar, sFuncShort, sFuncInt, sFuncLong, sFuncUnsigned, sFuncSigned, sFuncFloat, sFuncDouble, sFuncPrint, sFuncFormats, sFuncEvent_enable, sFuncEvent_disable, sFuncEvent_clear, sFuncTest_statement, sFuncSpinlock_lock, sFuncSpinlock_unlock, sFuncEvent_sc, sFuncPrintf, sFuncPause, sFuncFlush, sFuncEvent_trace_step, sFuncEvent_trace_step_in, sFuncEvent_trace_step_out, sFuncEvent_trace_instrumentation_step, sFuncEvent_trace_instrumentation_step_in, sFuncSpinlock_lock_custom_wait, sFuncEvent_inject, sFuncPoi, sFuncDb, sFuncDd, sFuncDw, sFuncDq, sFuncNeg, sFuncHi, sFuncLow, sFuncNot, sFuncCheck_address, sFuncDisassemble_len, sFuncDisassemble_len32, sFuncDisassemble_len64, sFuncInterlocked_increment, sFuncInterlocked_decrement, sFuncPhysical_to_virtual, sFuncVirtual_to_physical, sFuncEd, sFuncEb, sFuncEq, sFuncInterlocked_exchange, sFuncInterlocked_exchange_add, sFuncInterlocked_compare_exchange, sFuncStrlen, sFuncStrcmp, sFuncMemcmp, sFuncStrncmp, sFuncWcslen, sFuncWcscmp, sFuncEvent_inject_error_code, sFuncMemcpy, sFuncWcsncmp = Value } } \ No newline at end of file diff --git a/hyperdbg/hyperkd/code/debugger/core/Debugger.c b/hyperdbg/hyperkd/code/debugger/core/Debugger.c index 9d05fe33..3ed911b5 100644 --- a/hyperdbg/hyperkd/code/debugger/core/Debugger.c +++ b/hyperdbg/hyperkd/code/debugger/core/Debugger.c @@ -1685,8 +1685,10 @@ DebuggerPerformRunScript(PROCESSOR_DEBUGGING_STATE * DbgState, // Fill the variables list for this run // VariablesList.GlobalVariablesList = g_ScriptGlobalVariables; - VariablesList.LocalVariablesList = DbgState->ScriptEngineCoreSpecificLocalVariable; - VariablesList.TempList = DbgState->ScriptEngineCoreSpecificTempVariable; + RtlZeroMemory(DbgState->ScriptEngineCoreSpecificLocalVariable, MAX_VAR_COUNT * sizeof(UINT64)); + RtlZeroMemory(DbgState->ScriptEngineCoreSpecificTempVariable, MAX_TEMP_COUNT * sizeof(UINT64)); + VariablesList.LocalVariablesList = DbgState->ScriptEngineCoreSpecificLocalVariable; + VariablesList.TempList = DbgState->ScriptEngineCoreSpecificTempVariable; PSYMBOL_BUFFER StackBuffer = (PSYMBOL_BUFFER)DbgState->ScriptEngineCoreSpecificStackBuffer; if (!StackBuffer || !StackBuffer->Head) @@ -1702,9 +1704,10 @@ DebuggerPerformRunScript(PROCESSOR_DEBUGGING_STATE * DbgState, StackBuffer->Message = NULL; RtlZeroMemory(StackBuffer->Head, MAX_STACK_BUFFER_COUNT * sizeof(SYMBOL)); - int StackIndx = 0; - int StackBaseIndx = 0; - int StackTempBaseIndx = 0; + UINT64 StackIndx = 0; + UINT64 StackBaseIndx = 0; + UINT64 EXECUTENUMBER = 0; + UINT64 ReturnValue = 0; for (UINT64 i = 0; i < CodeBuffer.Pointer;) { @@ -1720,18 +1723,25 @@ DebuggerPerformRunScript(PROCESSOR_DEBUGGING_STATE * DbgState, StackBuffer, &StackIndx, &StackBaseIndx, - &StackTempBaseIndx, - &ErrorSymbol) == TRUE) + &ErrorSymbol, + &ReturnValue) == TRUE) { - LogInfo("err ScriptEngineExecute, function = % s\n ", + LogInfo("err, ScriptEngineExecute, function = % s\n ", FunctionNames[ErrorSymbol.Value]); break; } else if (StackIndx >= MAX_STACK_BUFFER_COUNT) { - LogInfo("err stack buffer overflow\n"); + LogInfo("err, stack buffer overflow\n"); break; } + else if (EXECUTENUMBER >= MAX_EXECUTION_COUNT) + { + LogInfo("err, exceeding the max execution count\n"); + break; + } + + EXECUTENUMBER++; } return TRUE; diff --git a/hyperdbg/include/SDK/Headers/Constants.h b/hyperdbg/include/SDK/Headers/Constants.h index a6de6185..681f04e5 100644 --- a/hyperdbg/include/SDK/Headers/Constants.h +++ b/hyperdbg/include/SDK/Headers/Constants.h @@ -565,7 +565,9 @@ const unsigned char BuildSignature[] = { #define MAX_TEMP_COUNT 128 -#define MAX_STACK_BUFFER_COUNT 128 +#define MAX_STACK_BUFFER_COUNT 256 + +#define MAX_EXECUTION_COUNT 2000 // TODO: Extract number of variables from input of ScriptEngine // and allocate variableList Dynamically. diff --git a/hyperdbg/include/SDK/Headers/ScriptEngineCommonDefinitions.h b/hyperdbg/include/SDK/Headers/ScriptEngineCommonDefinitions.h index f3861417..5383f0e5 100644 --- a/hyperdbg/include/SDK/Headers/ScriptEngineCommonDefinitions.h +++ b/hyperdbg/include/SDK/Headers/ScriptEngineCommonDefinitions.h @@ -30,6 +30,7 @@ typedef struct SYMBOL_MAP char* Name; long long unsigned Type; } SYMBOL_MAP, * PSYMBOL_MAP; + typedef struct ACTION_BUFFER { long long unsigned Tag; long long unsigned CurrentAction; @@ -38,6 +39,17 @@ typedef struct ACTION_BUFFER { char CallingStage; } ACTION_BUFFER, *PACTION_BUFFER; +typedef struct USER_DEFINED_FUNCTION_NODE +{ + char * Name; + long long unsigned Address; + long long unsigned VariableType; + PSYMBOL_BUFFER ParameterBuffer; + long long unsigned ParameterNumber; + long long unsigned StackTempNumber; + struct USER_DEFINED_FUNCTION_NODE * NextNode; +} USER_DEFINED_FUNCTION_NODE, *PUSER_DEFINED_FUNCTION_NODE; + #define SYMBOL_UNDEFINED 0 #define SYMBOL_GLOBAL_ID_TYPE 1 #define SYMBOL_LOCAL_ID_TYPE 2 @@ -50,11 +62,13 @@ typedef struct ACTION_BUFFER { #define SYMBOL_VARIABLE_COUNT_TYPE 9 #define SYMBOL_INVALID 10 #define SYMBOL_WSTRING_TYPE 11 -#define SYMBOL_USER_DEFINED_FUNCTION_TYPE 12 -#define SYMBOL_FUNCTION_PARAMETER_ID_TYPE 13 -#define SYMBOL_RETURN_ADDRESS_TYPE 14 -#define SYMBOL_STACK_TEMP_TYPE 15 -#define SYMBOL_FUNCTION_PARAMETER_TYPE 16 +#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 SYMBOL_STACK_INDEX_TYPE 16 +#define SYMBOL_STACK_BASE_INDEX_TYPE 17 +#define SYMBOL_RETURN_VALUE_TYPE 18 static const char *const SymbolTypeNames[] = { "SYMBOL_UNDEFINED", @@ -69,11 +83,13 @@ static const char *const SymbolTypeNames[] = { "SYMBOL_VARIABLE_COUNT_TYPE", "SYMBOL_INVALID", "SYMBOL_WSTRING_TYPE", -"SYMBOL_USER_DEFINED_FUNCTION_TYPE", "SYMBOL_FUNCTION_PARAMETER_ID_TYPE", "SYMBOL_RETURN_ADDRESS_TYPE", "SYMBOL_STACK_TEMP_TYPE", -"SYMBOL_FUNCTION_PARAMETER_TYPE" +"SYMBOL_FUNCTION_PARAMETER_TYPE", +"SYMBOL_STACK_INDEX_TYPE", +"SYMBOL_STACK_BASE_INDEX_TYPE", +"SYMBOL_RETURN_VALUE_TYPE" }; #define SYMBOL_MEM_VALID_CHECK_MASK (1 << 31) @@ -121,76 +137,71 @@ static const char *const SymbolTypeNames[] = { #define FUNC_FOR_INC_DEC 36 #define FUNC_START_OF_FOR_OMMANDS 37 #define FUNC_IGNORE_LVALUE 38 -#define FUNC_END_OF_USER_DEFINED_FUNCTION 39 -#define FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE 40 -#define FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE 41 -#define FUNC_CALL_USER_DEFINED_FUNCTION_PARAMETER 42 -#define FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE 43 -#define FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE 44 -#define FUNC_CALL_USER_DEFINED_FUNCTION 45 -#define FUNC_START_OF_USER_DEFINED_FUNCTION 46 -#define FUNC_MOV_RETURN_VALUE 47 -#define FUNC_VOID 48 -#define FUNC_BOOL 49 -#define FUNC_CHAR 50 -#define FUNC_SHORT 51 -#define FUNC_INT 52 -#define FUNC_LONG 53 -#define FUNC_UNSIGNED 54 -#define FUNC_SIGNED 55 -#define FUNC_FLOAT 56 -#define FUNC_DOUBLE 57 -#define FUNC_PRINT 58 -#define FUNC_FORMATS 59 -#define FUNC_EVENT_ENABLE 60 -#define FUNC_EVENT_DISABLE 61 -#define FUNC_EVENT_CLEAR 62 -#define FUNC_TEST_STATEMENT 63 -#define FUNC_SPINLOCK_LOCK 64 -#define FUNC_SPINLOCK_UNLOCK 65 -#define FUNC_EVENT_SC 66 -#define FUNC_PRINTF 67 -#define FUNC_PAUSE 68 -#define FUNC_FLUSH 69 -#define FUNC_EVENT_TRACE_STEP 70 -#define FUNC_EVENT_TRACE_STEP_IN 71 -#define FUNC_EVENT_TRACE_STEP_OUT 72 -#define FUNC_EVENT_TRACE_INSTRUMENTATION_STEP 73 -#define FUNC_EVENT_TRACE_INSTRUMENTATION_STEP_IN 74 -#define FUNC_SPINLOCK_LOCK_CUSTOM_WAIT 75 -#define FUNC_EVENT_INJECT 76 -#define FUNC_POI 77 -#define FUNC_DB 78 -#define FUNC_DD 79 -#define FUNC_DW 80 -#define FUNC_DQ 81 -#define FUNC_NEG 82 -#define FUNC_HI 83 -#define FUNC_LOW 84 -#define FUNC_NOT 85 -#define FUNC_CHECK_ADDRESS 86 -#define FUNC_DISASSEMBLE_LEN 87 -#define FUNC_DISASSEMBLE_LEN32 88 -#define FUNC_DISASSEMBLE_LEN64 89 -#define FUNC_INTERLOCKED_INCREMENT 90 -#define FUNC_INTERLOCKED_DECREMENT 91 -#define FUNC_PHYSICAL_TO_VIRTUAL 92 -#define FUNC_VIRTUAL_TO_PHYSICAL 93 -#define FUNC_ED 94 -#define FUNC_EB 95 -#define FUNC_EQ 96 -#define FUNC_INTERLOCKED_EXCHANGE 97 -#define FUNC_INTERLOCKED_EXCHANGE_ADD 98 -#define FUNC_INTERLOCKED_COMPARE_EXCHANGE 99 -#define FUNC_STRLEN 100 -#define FUNC_STRCMP 101 -#define FUNC_MEMCMP 102 -#define FUNC_STRNCMP 103 -#define FUNC_WCSLEN 104 -#define FUNC_WCSCMP 105 -#define FUNC_EVENT_INJECT_ERROR_CODE 106 -#define FUNC_MEMCPY 107 -#define FUNC_WCSNCMP 108 +#define FUNC_PUSH 39 +#define FUNC_POP 40 +#define FUNC_CALL 41 +#define FUNC_RET 42 +#define FUNC_VOID 43 +#define FUNC_BOOL 44 +#define FUNC_CHAR 45 +#define FUNC_SHORT 46 +#define FUNC_INT 47 +#define FUNC_LONG 48 +#define FUNC_UNSIGNED 49 +#define FUNC_SIGNED 50 +#define FUNC_FLOAT 51 +#define FUNC_DOUBLE 52 +#define FUNC_PRINT 53 +#define FUNC_FORMATS 54 +#define FUNC_EVENT_ENABLE 55 +#define FUNC_EVENT_DISABLE 56 +#define FUNC_EVENT_CLEAR 57 +#define FUNC_TEST_STATEMENT 58 +#define FUNC_SPINLOCK_LOCK 59 +#define FUNC_SPINLOCK_UNLOCK 60 +#define FUNC_EVENT_SC 61 +#define FUNC_PRINTF 62 +#define FUNC_PAUSE 63 +#define FUNC_FLUSH 64 +#define FUNC_EVENT_TRACE_STEP 65 +#define FUNC_EVENT_TRACE_STEP_IN 66 +#define FUNC_EVENT_TRACE_STEP_OUT 67 +#define FUNC_EVENT_TRACE_INSTRUMENTATION_STEP 68 +#define FUNC_EVENT_TRACE_INSTRUMENTATION_STEP_IN 69 +#define FUNC_SPINLOCK_LOCK_CUSTOM_WAIT 70 +#define FUNC_EVENT_INJECT 71 +#define FUNC_POI 72 +#define FUNC_DB 73 +#define FUNC_DD 74 +#define FUNC_DW 75 +#define FUNC_DQ 76 +#define FUNC_NEG 77 +#define FUNC_HI 78 +#define FUNC_LOW 79 +#define FUNC_NOT 80 +#define FUNC_CHECK_ADDRESS 81 +#define FUNC_DISASSEMBLE_LEN 82 +#define FUNC_DISASSEMBLE_LEN32 83 +#define FUNC_DISASSEMBLE_LEN64 84 +#define FUNC_INTERLOCKED_INCREMENT 85 +#define FUNC_INTERLOCKED_DECREMENT 86 +#define FUNC_PHYSICAL_TO_VIRTUAL 87 +#define FUNC_VIRTUAL_TO_PHYSICAL 88 +#define FUNC_ED 89 +#define FUNC_EB 90 +#define FUNC_EQ 91 +#define FUNC_INTERLOCKED_EXCHANGE 92 +#define FUNC_INTERLOCKED_EXCHANGE_ADD 93 +#define FUNC_INTERLOCKED_COMPARE_EXCHANGE 94 +#define FUNC_STRLEN 95 +#define FUNC_STRCMP 96 +#define FUNC_MEMCMP 97 +#define FUNC_STRNCMP 98 +#define FUNC_WCSLEN 99 +#define FUNC_WCSCMP 100 +#define FUNC_EVENT_INJECT_ERROR_CODE 101 +#define FUNC_MEMCPY 102 +#define FUNC_WCSNCMP 103 static const char *const FunctionNames[] = { "FUNC_UNDEFINED", @@ -232,15 +243,10 @@ static const char *const FunctionNames[] = { "FUNC_FOR_INC_DEC", "FUNC_START_OF_FOR_OMMANDS", "FUNC_IGNORE_LVALUE", -"FUNC_END_OF_USER_DEFINED_FUNCTION", -"FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE", -"FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE", -"FUNC_CALL_USER_DEFINED_FUNCTION_PARAMETER", -"FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE", -"FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE", -"FUNC_CALL_USER_DEFINED_FUNCTION", -"FUNC_START_OF_USER_DEFINED_FUNCTION", -"FUNC_MOV_RETURN_VALUE", +"FUNC_PUSH", +"FUNC_POP", +"FUNC_CALL", +"FUNC_RET", "FUNC_VOID", "FUNC_BOOL", "FUNC_CHAR", diff --git a/hyperdbg/libhyperdbg/code/debugger/script-engine/script-engine-wrapper.cpp b/hyperdbg/libhyperdbg/code/debugger/script-engine/script-engine-wrapper.cpp index 88d3e061..febfa66f 100644 --- a/hyperdbg/libhyperdbg/code/debugger/script-engine/script-engine-wrapper.cpp +++ b/hyperdbg/libhyperdbg/code/debugger/script-engine/script-engine-wrapper.cpp @@ -420,9 +420,12 @@ ScriptEngineEvalWrapper(PGUEST_REGS GuestRegs, } RtlZeroMemory(StackBuffer->Head, MAX_STACK_BUFFER_COUNT * sizeof(SYMBOL)); - int StackIndx = 0; - int StackBaseIndx = 0; - int StackTempBaseIndx = 0; + UINT64 StackIndx = 0; + UINT64 StackBaseIndx = 0; + UINT64 EXECUTENUMBER = 0; + UINT64 ReturnValue = 0; + RtlZeroMemory(g_ScriptTempVariables, MAX_TEMP_COUNT * sizeof(UINT64)); + RtlZeroMemory(g_ScriptLocalVariables, MAX_VAR_COUNT * sizeof(UINT64)); if (CodeBuffer->Message == NULL) { @@ -449,39 +452,27 @@ ScriptEngineEvalWrapper(PGUEST_REGS GuestRegs, VariablesList.LocalVariablesList = g_ScriptLocalVariables; #ifdef _SCRIPT_ENGINE_CODEEXEC_DBG_EN - printf("Address = %lld, StackIndx = %d, StackBaseIndx = %d, StackTempBaseIndx = %d\n", i, StackIndx, StackBaseIndx, StackTempBaseIndx); + printf("Address = %lld, StackIndx = %lld, StackBaseIndx = %lld\n", i, StackIndx, StackBaseIndx); PSYMBOL Operator = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(i * sizeof(SYMBOL))); printf("Function = %s\n", FunctionNames[Operator->Value]); printf("Stack Buffer:\n"); - for (int j = 0; j < StackIndx; j++) + for (UINT64 j = 0; j < StackIndx; j++) { PSYMBOL StackSymbol = (PSYMBOL)((unsigned long long)StackBuffer->Head + (unsigned long long)(j * sizeof(SYMBOL))); - printf("StackIndx = %d, Value = %lld", j, StackSymbol->Value); + printf("StackIndx = %lld, Value = %lld", j, StackSymbol->Value); - if (StackSymbol->Type == SYMBOL_FUNCTION_PARAMETER_TYPE) - { - printf(", Type = SYMBOL_FUNCTION_PARAMETER_TYPE"); - } - else if (StackSymbol->Type == SYMBOL_RETURN_ADDRESS_TYPE) + if (StackSymbol->Type == SYMBOL_RETURN_ADDRESS_TYPE) { printf(", Type = SYMBOL_RETURN_ADDRESS_TYPE"); } - else - { - printf(", Type = SYMBOL_STACK_TEMP_TYPE"); - } if (j == StackBaseIndx) { printf(" <===== StackBaseIndx"); } - else if (j == StackTempBaseIndx) - { - printf(" <===== StackTempBaseIndx"); - } printf("\n"); } printf("\n"); @@ -498,10 +489,10 @@ ScriptEngineEvalWrapper(PGUEST_REGS GuestRegs, StackBuffer, &StackIndx, &StackBaseIndx, - &StackTempBaseIndx, - &ErrorSymbol) == TRUE) + &ErrorSymbol, + &ReturnValue) == TRUE) { - ShowMessages("err ScriptEngineExecute, function = %s\n", + ShowMessages("err, ScriptEngineExecute, function = %s\n", FunctionNames[ErrorSymbol.Value]); g_CurrentExprEvalResultHasError = TRUE; g_CurrentExprEvalResult = NULL; @@ -509,14 +500,23 @@ ScriptEngineEvalWrapper(PGUEST_REGS GuestRegs, } else if (StackIndx >= MAX_STACK_BUFFER_COUNT) { - ShowMessages("err stack buffer overflow\n"); + ShowMessages("err, stack buffer overflow\n"); g_CurrentExprEvalResultHasError = TRUE; g_CurrentExprEvalResult = NULL; break; } + else if (EXECUTENUMBER >= MAX_EXECUTION_COUNT) + { + ShowMessages("err, exceeding the max execution count\n"); + g_CurrentExprEvalResultHasError = TRUE; + g_CurrentExprEvalResult = NULL; + break; + } + + EXECUTENUMBER++; } #ifdef _SCRIPT_ENGINE_CODEEXEC_DBG_EN - printf("Address = %lld, StackIndx = %d, StackBaseIndx = %d, StackTempBaseIndx = %d\n", i, StackIndx, StackBaseIndx, StackTempBaseIndx); + printf("Address = %lld, StackIndx = %lld, StackBaseIndx = %lld\n", i, StackIndx, StackBaseIndx); #endif } else diff --git a/hyperdbg/script-engine/code/common.c b/hyperdbg/script-engine/code/common.c index 009d4250..66f18dcb 100644 --- a/hyperdbg/script-engine/code/common.c +++ b/hyperdbg/script-engine/code/common.c @@ -618,7 +618,7 @@ IsOctal(char c) * @return PTOKEN */ PTOKEN -NewTemp(PSCRIPT_ENGINE_ERROR_TYPE Error, PSYMBOL CurrentFunctionSymbol) +NewTemp(PSCRIPT_ENGINE_ERROR_TYPE Error, PUSER_DEFINED_FUNCTION_NODE CurrentFunctionSymbol) { if (CurrentFunctionSymbol) { @@ -715,6 +715,19 @@ CleanTempList(void) } } +/** + * @brief Resets the stack temporary variables map + * + */ +void +CleanStackTempList(void) +{ + for (int i = 0; i < MAX_TEMP_COUNT; i++) + { + StackTempMap[i] = 0; + } +} + /** * @brief Checks whether this Token type is OneOpFunc1 * diff --git a/hyperdbg/script-engine/code/parse-table.c b/hyperdbg/script-engine/code/parse-table.c index 4ad018dd..3b024c31 100644 --- a/hyperdbg/script-engine/code/parse-table.c +++ b/hyperdbg/script-engine/code/parse-table.c @@ -628,213 +628,213 @@ const unsigned int RhsSize[RULES_COUNT]= }; const char* NoneTerminalMap[NONETERMINAL_COUNT]= { -"L_VALUE2", -"STATEMENT", -"BOOLEAN_EXPRESSION", -"E1'", -"EXPRESSION", -"ELSIF_STATEMENT", -"VARIABLE_TYPE4", -"IF_STATEMENT", -"ELSE_STATEMENT", -"FOR_STATEMENT", -"ELSIF_STATEMENT'", -"END_OF_IF", -"VARIABLE_TYPE1", -"VARIABLE_TYPE2", -"E0'", -"E13", -"S", -"E1", -"E5", -"WstringNumber", -"RETURN", -"E3", -"E3'", -"CALL_USER_DEFINED_FUNCTION_PARAMETER", -"E2'", -"E12", -"WSTRING", -"StringNumber", -"CALL_USER_DEFINED_FUNCTION_PARAMETER2", -"VARIABLE_TYPE6", -"E4'", -"VA", -"INC_DEC'", -"E5'", -"L_VALUE", -"INC_DEC", -"SIMPLE_ASSIGNMENT'", "VARIABLE_TYPE3", -"ASSIGNMENT_STATEMENT'", -"E4", +"WSTRING", +"S2", +"BOOLEAN_EXPRESSION", +"SIMPLE_ASSIGNMENT'", +"ELSIF_STATEMENT", +"END_OF_IF", +"S", +"E2'", +"E0'", +"E3'", +"E4'", +"WstringNumber", +"CALL_USER_DEFINED_FUNCTION_PARAMETER2", +"ELSE_STATEMENT", +"VARIABLE_TYPE2", "STRING", -"VARIABLE_TYPE5", -"WHILE_STATEMENT", +"STATEMENT", +"FOR_STATEMENT", +"E3", +"RETURN", +"E1", +"L_VALUE2", "E2", -"CALL_FUNC_STATEMENT", -"SIMPLE_ASSIGNMENT", -"DO_WHILE_STATEMENT", "STATEMENT2", -"S2" +"ELSIF_STATEMENT'", +"VARIABLE_TYPE4", +"StringNumber", +"IF_STATEMENT", +"DO_WHILE_STATEMENT", +"E4", +"CALL_USER_DEFINED_FUNCTION_PARAMETER", +"L_VALUE", +"EXPRESSION", +"E5'", +"VARIABLE_TYPE5", +"INC_DEC'", +"CALL_FUNC_STATEMENT", +"E5", +"VA", +"E13", +"ASSIGNMENT_STATEMENT'", +"INC_DEC", +"WHILE_STATEMENT", +"VARIABLE_TYPE6", +"E1'", +"E12", +"VARIABLE_TYPE1", +"SIMPLE_ASSIGNMENT" }; const char* TerminalMap[TERMINAL_COUNT]= { -"for", -"flush", -"not", -"spinlock_unlock", -"elsif", -"formats", -"short", -"continue", -"physical_to_virtual", -"strncmp", -"~", -"interlocked_decrement", -"^", -"char", -"spinlock_lock", -"<<", -"dw", -"hi", -";", -"spinlock_lock_custom_wait", -"dd", -"test_statement", -"strlen", -"interlocked_exchange_add", -"neg", -"/", -"_binary", -"event_trace_step_in", -"event_enable", -"_function_parameter_id", -"_wstring", -"_octal", -"wcslen", -"$", -"&", -"event_trace_instrumentation_step", -"disassemble_len", -"_decimal", -"check_address", -"unsigned", -"float", -"+", -"++", -"interlocked_compare_exchange", -"reference", -"ed", -"|", -"long", -"virtual_to_physical", -"(", -"else", -"disassemble_len32", -"}", -"_global_id", -"event_sc", -"wcscmp", -"_hex", -">>", -"{", -"return", -"_string", -"event_inject_error_code", -"wcsncmp", -"memcpy", -"=", -",", +"low", "disassemble_len64", -"event_clear", -"bool", -"do", -"--", +"_binary", +"/", +"_decimal", +"event_trace_step_in", +"dw", +"event_trace_step_out", +"++", +"printf", +"strncmp", +"^", +"_string", +"(", +"strlen", +"print", +"unsigned", +"formats", +"{", +"$", +"~", +"check_address", +"reference", +"physical_to_virtual", +"event_sc", +"else", "interlocked_exchange", "break", -"-", -"strcmp", "event_disable", -"poi", -"print", -"event_inject", -"db", -")", -"eb", -"memcmp", -"double", +"neg", "if", -"int", -"signed", -"void", -"event_trace_step_out", -"pause", -"_register", -"eq", -"*", -"interlocked_increment", -"dq", -"_local_id", -"_pseudo_register", -"printf", -"while", -"event_trace_instrumentation_step_in", +"dd", +"disassemble_len", +"_global_id", "%", -"low", -"event_trace_step" +")", +"spinlock_lock", +"wcscmp", +"short", +"memcmp", +"pause", +"flush", +",", +"test_statement", +"_octal", +"&", +"event_trace_step", +"char", +"int", +"_local_id", +"hi", +">>", +"void", +"wcsncmp", +"+", +"for", +"--", +"db", +"float", +"eb", +"event_trace_instrumentation_step", +"|", +"event_enable", +"event_clear", +"do", +"_wstring", +"memcpy", +"interlocked_exchange_add", +"_hex", +"dq", +"long", +"spinlock_unlock", +"_pseudo_register", +"disassemble_len32", +"double", +"wcslen", +"virtual_to_physical", +"spinlock_lock_custom_wait", +"poi", +"event_trace_instrumentation_step_in", +"elsif", +"*", +"}", +"eq", +"interlocked_compare_exchange", +"_function_parameter_id", +"signed", +"interlocked_decrement", +"ed", +"_register", +"-", +"bool", +"event_inject_error_code", +"strcmp", +"=", +"while", +"<<", +";", +"event_inject", +"interlocked_increment", +"return", +"not", +"continue" }; const int ParseTable[NONETERMINAL_COUNT][TERMINAL_COUNT]= { - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,47 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {6 ,8 ,8 ,8 ,2147483648 ,8 ,11 ,10 ,8 ,8 ,2147483648 ,8 ,2147483648 ,11 ,8 ,2147483648 ,8 ,8 ,2147483648 ,8 ,8 ,8 ,8 ,8 ,8 ,2147483648 ,2147483648 ,8 ,8 ,7 ,2147483648 ,2147483648 ,8 ,2147483648 ,2147483648 ,8 ,8 ,2147483648 ,8 ,11 ,11 ,2147483648 ,2147483648 ,8 ,8 ,8 ,2147483648 ,11 ,8 ,2147483648 ,2147483648 ,8 ,2147483648 ,7 ,8 ,8 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,8 ,8 ,8 ,2147483648 ,2147483648 ,8 ,8 ,11 ,5 ,2147483648 ,8 ,9 ,2147483648 ,8 ,8 ,8 ,8 ,8 ,8 ,2147483648 ,8 ,8 ,11 ,3 ,11 ,11 ,11 ,8 ,8 ,7 ,8 ,2147483648 ,8 ,8 ,7 ,2147483648 ,8 ,4 ,8 ,2147483648 ,8 ,8 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,128 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,128 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,133 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,134 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,134 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,134 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,134 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,129 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,129 ,129 ,129 ,129 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,129 ,129 ,2147483648 ,2147483648 ,129 ,2147483648 ,129 ,129 ,129 ,2147483648 ,129 ,2147483648 ,2147483648 ,129 ,2147483648 ,129 ,129 ,2147483648 ,129 ,2147483648 ,129 ,129 ,129 ,2147483648 ,2147483648 ,129 ,2147483648 ,129 ,129 ,129 ,2147483648 ,2147483648 ,129 ,129 ,2147483648 ,129 ,2147483648 ,129 ,2147483648 ,129 ,129 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,129 ,2147483648 ,2147483648 ,2147483648 ,129 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,129 ,2147483648 ,129 ,129 ,2147483648 ,129 ,2147483648 ,2147483648 ,129 ,2147483648 ,129 ,129 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,129 ,129 ,129 ,129 ,129 ,129 ,129 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,129 ,2147483648 }, - {111 ,111 ,111 ,111 ,110 ,111 ,111 ,111 ,111 ,111 ,2147483648 ,111 ,2147483648 ,111 ,111 ,2147483648 ,111 ,111 ,2147483648 ,111 ,111 ,111 ,111 ,111 ,111 ,2147483648 ,2147483648 ,111 ,111 ,111 ,2147483648 ,2147483648 ,111 ,111 ,2147483648 ,111 ,111 ,2147483648 ,111 ,111 ,111 ,2147483648 ,2147483648 ,111 ,111 ,111 ,2147483648 ,111 ,111 ,2147483648 ,111 ,111 ,111 ,111 ,111 ,111 ,2147483648 ,2147483648 ,111 ,111 ,2147483648 ,111 ,111 ,111 ,2147483648 ,2147483648 ,111 ,111 ,111 ,111 ,2147483648 ,111 ,111 ,2147483648 ,111 ,111 ,111 ,111 ,111 ,111 ,2147483648 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,2147483648 ,111 ,111 ,111 ,2147483648 ,111 ,111 ,111 ,2147483648 ,111 ,111 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,41 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,40 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,109 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {114 ,114 ,114 ,114 ,2147483648 ,114 ,114 ,114 ,114 ,114 ,2147483648 ,114 ,2147483648 ,114 ,114 ,2147483648 ,114 ,114 ,2147483648 ,114 ,114 ,114 ,114 ,114 ,114 ,2147483648 ,2147483648 ,114 ,114 ,114 ,2147483648 ,2147483648 ,114 ,114 ,2147483648 ,114 ,114 ,2147483648 ,114 ,114 ,114 ,2147483648 ,2147483648 ,114 ,114 ,114 ,2147483648 ,114 ,114 ,2147483648 ,113 ,114 ,114 ,114 ,114 ,114 ,2147483648 ,2147483648 ,114 ,114 ,2147483648 ,114 ,114 ,114 ,2147483648 ,2147483648 ,114 ,114 ,114 ,114 ,2147483648 ,114 ,114 ,2147483648 ,114 ,114 ,114 ,114 ,114 ,114 ,2147483648 ,114 ,114 ,114 ,114 ,114 ,114 ,114 ,114 ,114 ,114 ,114 ,2147483648 ,114 ,114 ,114 ,2147483648 ,114 ,114 ,114 ,2147483648 ,114 ,114 }, - {118 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {112 ,112 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,112 ,112 ,2147483648 ,112 ,2147483648 ,112 ,112 ,2147483648 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,112 ,112 ,112 ,2147483648 ,2147483648 ,112 ,112 ,112 ,2147483648 ,2147483648 ,112 ,112 ,2147483648 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,2147483648 ,2147483648 ,112 ,112 ,112 ,2147483648 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,112 ,112 ,112 ,2147483648 ,2147483648 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,2147483648 ,2147483648 ,112 ,112 ,112 ,112 ,2147483648 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,112 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,2147483648 ,112 ,112 }, - {115 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,115 ,115 ,2147483648 ,115 ,2147483648 ,115 ,115 ,2147483648 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,115 ,115 ,115 ,2147483648 ,2147483648 ,115 ,115 ,115 ,2147483648 ,2147483648 ,115 ,115 ,2147483648 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,2147483648 ,2147483648 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,2147483648 ,2147483648 ,115 ,115 ,115 ,115 ,115 ,2147483648 ,2147483648 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,2147483648 ,2147483648 ,115 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,115 ,115 ,115 ,115 ,115 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,2147483648 ,115 ,115 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,30 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,29 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,33 ,35 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,32 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,28 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,36 ,2147483648 ,31 ,34 ,27 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,37 ,37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,37 ,2147483648 ,37 ,37 ,37 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,131 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,130 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,131 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,131 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,185 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 }, - {0 ,0 ,0 ,0 ,2147483648 ,0 ,0 ,0 ,0 ,0 ,2147483648 ,0 ,2147483648 ,0 ,0 ,2147483648 ,0 ,0 ,2147483648 ,0 ,0 ,0 ,0 ,0 ,0 ,2147483648 ,2147483648 ,0 ,0 ,0 ,2147483648 ,2147483648 ,0 ,2 ,2147483648 ,0 ,0 ,2147483648 ,0 ,0 ,0 ,2147483648 ,2147483648 ,0 ,0 ,0 ,2147483648 ,0 ,0 ,2147483648 ,2147483648 ,0 ,2 ,0 ,0 ,0 ,2147483648 ,2147483648 ,1 ,2147483648 ,2147483648 ,0 ,0 ,0 ,2147483648 ,2147483648 ,0 ,0 ,0 ,0 ,2147483648 ,0 ,0 ,2147483648 ,0 ,0 ,0 ,0 ,0 ,0 ,2147483648 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,2147483648 ,0 ,0 ,0 ,2147483648 ,0 ,0 ,0 ,2147483648 ,0 ,0 }, - {2147483648 ,2147483648 ,132 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,132 ,132 ,132 ,132 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,132 ,132 ,2147483648 ,2147483648 ,132 ,2147483648 ,132 ,132 ,132 ,2147483648 ,132 ,2147483648 ,2147483648 ,132 ,2147483648 ,132 ,132 ,2147483648 ,132 ,2147483648 ,132 ,132 ,132 ,2147483648 ,2147483648 ,132 ,2147483648 ,132 ,132 ,132 ,2147483648 ,2147483648 ,132 ,132 ,2147483648 ,132 ,2147483648 ,132 ,2147483648 ,132 ,132 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,132 ,2147483648 ,2147483648 ,2147483648 ,132 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,132 ,2147483648 ,132 ,132 ,2147483648 ,132 ,2147483648 ,2147483648 ,132 ,2147483648 ,132 ,132 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,132 ,132 ,132 ,132 ,132 ,132 ,132 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,132 ,2147483648 }, - {2147483648 ,2147483648 ,146 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,146 ,146 ,146 ,146 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,146 ,146 ,2147483648 ,2147483648 ,146 ,2147483648 ,146 ,146 ,146 ,2147483648 ,146 ,2147483648 ,2147483648 ,146 ,2147483648 ,146 ,146 ,2147483648 ,146 ,2147483648 ,146 ,146 ,146 ,2147483648 ,2147483648 ,146 ,2147483648 ,146 ,146 ,146 ,2147483648 ,2147483648 ,146 ,146 ,2147483648 ,146 ,2147483648 ,146 ,2147483648 ,146 ,146 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,146 ,2147483648 ,2147483648 ,2147483648 ,146 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,146 ,2147483648 ,146 ,146 ,2147483648 ,146 ,2147483648 ,2147483648 ,146 ,2147483648 ,146 ,146 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,146 ,146 ,146 ,146 ,146 ,146 ,146 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,146 ,2147483648 }, - {2147483648 ,2147483648 ,204 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,204 ,204 ,204 ,204 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,204 ,204 ,2147483648 ,2147483648 ,204 ,2147483648 ,204 ,204 ,204 ,2147483648 ,204 ,2147483648 ,2147483648 ,204 ,205 ,204 ,204 ,2147483648 ,204 ,2147483648 ,204 ,204 ,204 ,2147483648 ,2147483648 ,204 ,2147483648 ,204 ,204 ,204 ,2147483648 ,2147483648 ,204 ,204 ,2147483648 ,204 ,2147483648 ,204 ,2147483648 ,204 ,204 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,204 ,2147483648 ,2147483648 ,2147483648 ,204 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,204 ,2147483648 ,204 ,204 ,2147483648 ,204 ,2147483648 ,2147483648 ,204 ,2147483648 ,204 ,204 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,204 ,204 ,204 ,204 ,204 ,204 ,204 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,204 ,2147483648 }, - {2147483648 ,2147483648 ,26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,26 ,26 ,26 ,26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,26 ,26 ,25 ,2147483648 ,26 ,2147483648 ,26 ,26 ,26 ,2147483648 ,26 ,2147483648 ,2147483648 ,26 ,2147483648 ,26 ,26 ,2147483648 ,26 ,2147483648 ,26 ,26 ,26 ,2147483648 ,2147483648 ,26 ,2147483648 ,26 ,26 ,26 ,2147483648 ,2147483648 ,26 ,26 ,2147483648 ,26 ,2147483648 ,26 ,2147483648 ,26 ,26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,26 ,2147483648 ,2147483648 ,2147483648 ,26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,26 ,2147483648 ,26 ,26 ,2147483648 ,26 ,2147483648 ,2147483648 ,26 ,2147483648 ,26 ,26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,26 ,26 ,26 ,26 ,26 ,26 ,26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,26 ,2147483648 }, - {2147483648 ,2147483648 ,138 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,138 ,138 ,138 ,138 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,138 ,138 ,2147483648 ,2147483648 ,138 ,2147483648 ,138 ,138 ,138 ,2147483648 ,138 ,2147483648 ,2147483648 ,138 ,2147483648 ,138 ,138 ,2147483648 ,138 ,2147483648 ,138 ,138 ,138 ,2147483648 ,2147483648 ,138 ,2147483648 ,138 ,138 ,138 ,2147483648 ,2147483648 ,138 ,138 ,2147483648 ,138 ,2147483648 ,138 ,2147483648 ,138 ,138 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,138 ,2147483648 ,2147483648 ,2147483648 ,138 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,138 ,2147483648 ,138 ,138 ,2147483648 ,138 ,2147483648 ,2147483648 ,138 ,2147483648 ,138 ,138 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,138 ,138 ,138 ,138 ,138 ,138 ,138 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,138 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,2147483648 ,2147483648 ,140 ,2147483648 ,2147483648 ,141 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,139 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,49 ,49 ,49 ,49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,49 ,49 ,2147483648 ,2147483648 ,49 ,2147483648 ,49 ,49 ,49 ,2147483648 ,49 ,2147483648 ,2147483648 ,49 ,2147483648 ,49 ,49 ,2147483648 ,49 ,2147483648 ,49 ,49 ,49 ,2147483648 ,2147483648 ,49 ,2147483648 ,49 ,49 ,49 ,2147483648 ,2147483648 ,49 ,49 ,2147483648 ,49 ,2147483648 ,49 ,2147483648 ,49 ,49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,49 ,2147483648 ,2147483648 ,2147483648 ,49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,49 ,2147483648 ,49 ,49 ,2147483648 ,49 ,2147483648 ,2147483648 ,49 ,48 ,49 ,49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,49 ,49 ,49 ,49 ,49 ,49 ,49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,49 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,137 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,137 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,136 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,137 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,137 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,137 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,159 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,167 ,178 ,193 ,165 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,154 ,157 ,2147483648 ,2147483648 ,153 ,2147483648 ,175 ,173 ,156 ,2147483648 ,189 ,2147483648 ,2147483648 ,183 ,2147483648 ,188 ,179 ,2147483648 ,195 ,2147483648 ,161 ,187 ,160 ,2147483648 ,2147483648 ,192 ,2147483648 ,174 ,166 ,169 ,2147483648 ,2147483648 ,168 ,182 ,2147483648 ,162 ,2147483648 ,183 ,2147483648 ,180 ,186 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,181 ,2147483648 ,2147483648 ,2147483648 ,163 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,172 ,2147483648 ,191 ,176 ,2147483648 ,151 ,2147483648 ,2147483648 ,152 ,2147483648 ,170 ,177 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,183 ,171 ,194 ,164 ,155 ,183 ,190 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,158 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,197 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,202 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,202 ,202 ,202 ,202 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,202 ,202 ,2147483648 ,2147483648 ,202 ,2147483648 ,202 ,202 ,202 ,2147483648 ,202 ,2147483648 ,2147483648 ,202 ,2147483648 ,202 ,202 ,2147483648 ,202 ,2147483648 ,202 ,202 ,202 ,2147483648 ,2147483648 ,202 ,2147483648 ,202 ,202 ,202 ,2147483648 ,2147483648 ,202 ,202 ,2147483648 ,202 ,2147483648 ,202 ,2147483648 ,202 ,202 ,2147483648 ,2147483648 ,2147483648 ,203 ,2147483648 ,202 ,2147483648 ,2147483648 ,2147483648 ,202 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,202 ,2147483648 ,202 ,202 ,2147483648 ,202 ,2147483648 ,2147483648 ,202 ,2147483648 ,202 ,202 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,202 ,202 ,202 ,202 ,202 ,202 ,202 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,202 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,50 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,51 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,45 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,143 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,144 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,107 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,108 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,124 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,126 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,125 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,127 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,147 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,149 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,148 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,201 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,198 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,200 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,199 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,123 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,123 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,123 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,123 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,122 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,122 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,39 ,39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,39 ,2147483648 ,39 ,39 ,39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,52 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,54 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,53 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,142 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,142 ,142 ,142 ,142 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,142 ,142 ,2147483648 ,2147483648 ,142 ,2147483648 ,142 ,142 ,142 ,2147483648 ,142 ,2147483648 ,2147483648 ,142 ,2147483648 ,142 ,142 ,2147483648 ,142 ,2147483648 ,142 ,142 ,142 ,2147483648 ,2147483648 ,142 ,2147483648 ,142 ,142 ,142 ,2147483648 ,2147483648 ,142 ,142 ,2147483648 ,142 ,2147483648 ,142 ,2147483648 ,142 ,142 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,142 ,2147483648 ,2147483648 ,2147483648 ,142 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,142 ,2147483648 ,142 ,142 ,2147483648 ,142 ,2147483648 ,2147483648 ,142 ,2147483648 ,142 ,142 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,142 ,142 ,142 ,142 ,142 ,142 ,142 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,142 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,196 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,43 ,43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,42 ,2147483648 ,2147483648 ,43 ,2147483648 ,43 ,43 ,43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,116 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,135 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,135 ,135 ,135 ,135 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,135 ,135 ,2147483648 ,2147483648 ,135 ,2147483648 ,135 ,135 ,135 ,2147483648 ,135 ,2147483648 ,2147483648 ,135 ,2147483648 ,135 ,135 ,2147483648 ,135 ,2147483648 ,135 ,135 ,135 ,2147483648 ,2147483648 ,135 ,2147483648 ,135 ,135 ,135 ,2147483648 ,2147483648 ,135 ,135 ,2147483648 ,135 ,2147483648 ,135 ,2147483648 ,135 ,135 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,135 ,2147483648 ,2147483648 ,2147483648 ,135 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,135 ,2147483648 ,135 ,135 ,2147483648 ,135 ,2147483648 ,2147483648 ,135 ,2147483648 ,135 ,135 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,135 ,135 ,135 ,135 ,135 ,135 ,135 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,135 ,2147483648 }, - {2147483648 ,66 ,82 ,62 ,2147483648 ,56 ,2147483648 ,2147483648 ,90 ,101 ,2147483648 ,88 ,2147483648 ,2147483648 ,61 ,2147483648 ,77 ,80 ,2147483648 ,72 ,76 ,60 ,98 ,96 ,79 ,2147483648 ,2147483648 ,68 ,57 ,2147483648 ,2147483648 ,2147483648 ,102 ,2147483648 ,2147483648 ,70 ,84 ,2147483648 ,83 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,97 ,89 ,92 ,2147483648 ,2147483648 ,91 ,2147483648 ,2147483648 ,85 ,2147483648 ,2147483648 ,63 ,103 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,104 ,106 ,105 ,2147483648 ,2147483648 ,86 ,59 ,2147483648 ,2147483648 ,2147483648 ,95 ,2147483648 ,2147483648 ,99 ,58 ,74 ,55 ,73 ,75 ,2147483648 ,93 ,100 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,69 ,65 ,2147483648 ,94 ,2147483648 ,87 ,78 ,2147483648 ,2147483648 ,64 ,2147483648 ,71 ,2147483648 ,81 ,67 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,119 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,119 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,121 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,120 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,119 ,119 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,119 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,120 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,119 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,119 ,2147483648 ,119 ,119 ,119 ,2147483648 ,2147483648 ,120 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,120 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,117 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {18 ,20 ,20 ,20 ,2147483648 ,20 ,23 ,22 ,20 ,20 ,2147483648 ,20 ,2147483648 ,23 ,20 ,2147483648 ,20 ,20 ,2147483648 ,20 ,20 ,20 ,20 ,20 ,20 ,2147483648 ,2147483648 ,20 ,20 ,19 ,2147483648 ,2147483648 ,20 ,2147483648 ,2147483648 ,20 ,20 ,2147483648 ,20 ,23 ,23 ,2147483648 ,2147483648 ,20 ,20 ,20 ,2147483648 ,23 ,20 ,2147483648 ,2147483648 ,20 ,2147483648 ,19 ,20 ,20 ,2147483648 ,2147483648 ,2147483648 ,24 ,2147483648 ,20 ,20 ,20 ,2147483648 ,2147483648 ,20 ,20 ,23 ,17 ,2147483648 ,20 ,21 ,2147483648 ,20 ,20 ,20 ,20 ,20 ,20 ,2147483648 ,20 ,20 ,23 ,15 ,23 ,23 ,23 ,20 ,20 ,19 ,20 ,2147483648 ,20 ,20 ,19 ,2147483648 ,20 ,16 ,20 ,2147483648 ,20 ,20 }, - {12 ,12 ,12 ,12 ,2147483648 ,12 ,12 ,12 ,12 ,12 ,2147483648 ,12 ,2147483648 ,12 ,12 ,2147483648 ,12 ,12 ,2147483648 ,12 ,12 ,12 ,12 ,12 ,12 ,2147483648 ,2147483648 ,12 ,12 ,12 ,2147483648 ,2147483648 ,12 ,2147483648 ,2147483648 ,12 ,12 ,2147483648 ,12 ,12 ,12 ,2147483648 ,2147483648 ,12 ,12 ,12 ,2147483648 ,12 ,12 ,2147483648 ,2147483648 ,12 ,14 ,12 ,12 ,12 ,2147483648 ,2147483648 ,13 ,12 ,2147483648 ,12 ,12 ,12 ,2147483648 ,2147483648 ,12 ,12 ,12 ,12 ,2147483648 ,12 ,12 ,2147483648 ,12 ,12 ,12 ,12 ,12 ,12 ,2147483648 ,12 ,12 ,12 ,12 ,12 ,12 ,12 ,12 ,12 ,12 ,12 ,2147483648 ,12 ,12 ,12 ,2147483648 ,12 ,12 ,12 ,2147483648 ,12 ,12 } + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,39 ,39 ,2147483648 ,2147483648 ,2147483648 ,39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,39 ,2147483648 ,2147483648 ,2147483648 ,39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,197 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {12 ,12 ,2147483648 ,2147483648 ,2147483648 ,12 ,12 ,12 ,2147483648 ,12 ,12 ,2147483648 ,2147483648 ,2147483648 ,12 ,12 ,12 ,12 ,13 ,2147483648 ,2147483648 ,12 ,12 ,12 ,12 ,2147483648 ,12 ,12 ,12 ,12 ,12 ,12 ,12 ,12 ,2147483648 ,2147483648 ,12 ,12 ,12 ,12 ,12 ,12 ,2147483648 ,12 ,2147483648 ,2147483648 ,12 ,12 ,12 ,12 ,12 ,2147483648 ,12 ,12 ,2147483648 ,12 ,2147483648 ,12 ,12 ,12 ,12 ,2147483648 ,12 ,12 ,12 ,2147483648 ,12 ,12 ,2147483648 ,12 ,12 ,12 ,2147483648 ,12 ,12 ,12 ,12 ,12 ,12 ,12 ,2147483648 ,2147483648 ,14 ,12 ,12 ,12 ,12 ,12 ,12 ,12 ,2147483648 ,12 ,12 ,12 ,2147483648 ,12 ,2147483648 ,2147483648 ,12 ,12 ,12 ,12 ,12 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,128 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,128 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,122 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,122 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {111 ,111 ,2147483648 ,2147483648 ,2147483648 ,111 ,111 ,111 ,2147483648 ,111 ,111 ,2147483648 ,2147483648 ,2147483648 ,111 ,111 ,111 ,111 ,111 ,111 ,2147483648 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,2147483648 ,2147483648 ,111 ,111 ,111 ,111 ,111 ,111 ,2147483648 ,111 ,2147483648 ,2147483648 ,111 ,111 ,111 ,111 ,111 ,2147483648 ,111 ,111 ,2147483648 ,111 ,2147483648 ,111 ,111 ,111 ,111 ,2147483648 ,111 ,111 ,111 ,2147483648 ,111 ,111 ,2147483648 ,111 ,111 ,111 ,2147483648 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,110 ,2147483648 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,111 ,2147483648 ,111 ,111 ,111 ,2147483648 ,111 ,2147483648 ,2147483648 ,111 ,111 ,111 ,111 ,111 }, + {115 ,115 ,2147483648 ,2147483648 ,2147483648 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,2147483648 ,2147483648 ,2147483648 ,115 ,115 ,115 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,115 ,115 ,115 ,115 ,115 ,2147483648 ,2147483648 ,115 ,115 ,115 ,115 ,115 ,115 ,2147483648 ,115 ,2147483648 ,2147483648 ,115 ,115 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,2147483648 ,115 ,2147483648 ,115 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,115 ,115 ,115 ,115 ,2147483648 ,2147483648 ,115 ,115 ,115 ,115 ,115 ,115 ,115 ,115 ,2147483648 ,115 ,115 ,115 ,2147483648 ,115 ,2147483648 ,2147483648 ,115 ,115 ,115 ,115 ,115 }, + {0 ,0 ,2147483648 ,2147483648 ,2147483648 ,0 ,0 ,0 ,2147483648 ,0 ,0 ,2147483648 ,2147483648 ,2147483648 ,0 ,0 ,0 ,0 ,1 ,2 ,2147483648 ,0 ,0 ,0 ,0 ,2147483648 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,2147483648 ,2147483648 ,0 ,0 ,0 ,0 ,0 ,0 ,2147483648 ,0 ,2147483648 ,2147483648 ,0 ,0 ,0 ,0 ,0 ,2147483648 ,0 ,0 ,2147483648 ,0 ,2147483648 ,0 ,0 ,0 ,0 ,2147483648 ,0 ,0 ,0 ,2147483648 ,0 ,0 ,2147483648 ,0 ,0 ,0 ,2147483648 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,2147483648 ,2147483648 ,2 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,2147483648 ,0 ,0 ,0 ,2147483648 ,0 ,2147483648 ,2147483648 ,0 ,0 ,2147483648 ,0 ,0 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,137 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,137 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,137 ,2147483648 ,2147483648 ,136 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,137 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,137 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,131 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,131 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,130 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,131 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,2147483648 ,2147483648 ,141 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,139 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,140 ,141 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,143 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,145 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,144 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,145 ,145 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {204 ,204 ,204 ,2147483648 ,204 ,2147483648 ,204 ,2147483648 ,2147483648 ,2147483648 ,204 ,2147483648 ,2147483648 ,204 ,204 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,204 ,204 ,204 ,204 ,2147483648 ,2147483648 ,204 ,2147483648 ,2147483648 ,204 ,2147483648 ,204 ,204 ,204 ,2147483648 ,2147483648 ,2147483648 ,204 ,2147483648 ,204 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,204 ,204 ,2147483648 ,2147483648 ,2147483648 ,204 ,204 ,2147483648 ,2147483648 ,204 ,204 ,2147483648 ,2147483648 ,204 ,2147483648 ,204 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,205 ,2147483648 ,204 ,204 ,204 ,2147483648 ,2147483648 ,204 ,204 ,2147483648 ,204 ,204 ,2147483648 ,204 ,2147483648 ,2147483648 ,204 ,2147483648 ,204 ,204 ,204 ,2147483648 ,204 ,204 ,204 ,204 ,2147483648 ,2147483648 ,204 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,204 ,2147483648 ,204 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,51 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,50 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {114 ,114 ,2147483648 ,2147483648 ,2147483648 ,114 ,114 ,114 ,2147483648 ,114 ,114 ,2147483648 ,2147483648 ,2147483648 ,114 ,114 ,114 ,114 ,114 ,114 ,2147483648 ,114 ,114 ,114 ,114 ,113 ,114 ,114 ,114 ,114 ,114 ,114 ,114 ,114 ,2147483648 ,2147483648 ,114 ,114 ,114 ,114 ,114 ,114 ,2147483648 ,114 ,2147483648 ,2147483648 ,114 ,114 ,114 ,114 ,114 ,2147483648 ,114 ,114 ,2147483648 ,114 ,2147483648 ,114 ,114 ,114 ,114 ,2147483648 ,114 ,114 ,114 ,2147483648 ,114 ,114 ,2147483648 ,114 ,114 ,114 ,2147483648 ,114 ,114 ,114 ,114 ,114 ,114 ,114 ,2147483648 ,2147483648 ,114 ,114 ,114 ,114 ,114 ,114 ,114 ,114 ,2147483648 ,114 ,114 ,114 ,2147483648 ,114 ,2147483648 ,2147483648 ,114 ,114 ,114 ,114 ,114 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,37 ,37 ,38 ,2147483648 ,2147483648 ,37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,37 ,2147483648 ,2147483648 ,2147483648 ,37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,38 ,37 ,2147483648 ,2147483648 ,38 ,2147483648 ,37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,196 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {8 ,8 ,2147483648 ,2147483648 ,2147483648 ,8 ,8 ,8 ,2147483648 ,8 ,8 ,2147483648 ,2147483648 ,2147483648 ,8 ,8 ,11 ,8 ,2147483648 ,2147483648 ,2147483648 ,8 ,8 ,8 ,8 ,2147483648 ,8 ,9 ,8 ,8 ,3 ,8 ,8 ,7 ,2147483648 ,2147483648 ,8 ,8 ,11 ,8 ,8 ,8 ,2147483648 ,8 ,2147483648 ,2147483648 ,8 ,11 ,11 ,7 ,8 ,2147483648 ,11 ,8 ,2147483648 ,6 ,2147483648 ,8 ,11 ,8 ,8 ,2147483648 ,8 ,8 ,5 ,2147483648 ,8 ,8 ,2147483648 ,8 ,11 ,8 ,2147483648 ,8 ,11 ,8 ,8 ,8 ,8 ,8 ,2147483648 ,2147483648 ,2147483648 ,8 ,8 ,7 ,11 ,8 ,8 ,7 ,2147483648 ,11 ,8 ,8 ,2147483648 ,4 ,2147483648 ,2147483648 ,8 ,8 ,2147483648 ,8 ,10 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,118 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {138 ,138 ,138 ,2147483648 ,138 ,2147483648 ,138 ,2147483648 ,2147483648 ,2147483648 ,138 ,2147483648 ,2147483648 ,138 ,138 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,138 ,138 ,138 ,138 ,2147483648 ,2147483648 ,138 ,2147483648 ,2147483648 ,138 ,2147483648 ,138 ,138 ,138 ,2147483648 ,2147483648 ,2147483648 ,138 ,2147483648 ,138 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,138 ,138 ,2147483648 ,2147483648 ,2147483648 ,138 ,138 ,2147483648 ,2147483648 ,138 ,138 ,2147483648 ,2147483648 ,138 ,2147483648 ,138 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,138 ,138 ,138 ,2147483648 ,2147483648 ,138 ,138 ,2147483648 ,138 ,138 ,2147483648 ,138 ,2147483648 ,2147483648 ,138 ,2147483648 ,138 ,138 ,138 ,2147483648 ,138 ,138 ,138 ,138 ,2147483648 ,2147483648 ,138 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,138 ,2147483648 ,138 ,2147483648 }, + {26 ,26 ,26 ,2147483648 ,26 ,2147483648 ,26 ,2147483648 ,2147483648 ,2147483648 ,26 ,2147483648 ,2147483648 ,26 ,26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,26 ,26 ,26 ,26 ,2147483648 ,2147483648 ,26 ,2147483648 ,2147483648 ,26 ,2147483648 ,26 ,26 ,26 ,2147483648 ,2147483648 ,2147483648 ,26 ,2147483648 ,26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,26 ,26 ,2147483648 ,2147483648 ,2147483648 ,26 ,26 ,2147483648 ,2147483648 ,26 ,26 ,2147483648 ,2147483648 ,26 ,2147483648 ,26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,26 ,26 ,26 ,2147483648 ,2147483648 ,26 ,26 ,2147483648 ,26 ,26 ,2147483648 ,26 ,2147483648 ,2147483648 ,26 ,2147483648 ,26 ,26 ,26 ,2147483648 ,26 ,26 ,26 ,26 ,2147483648 ,2147483648 ,26 ,2147483648 ,2147483648 ,2147483648 ,25 ,2147483648 ,26 ,2147483648 ,26 ,2147483648 }, + {132 ,132 ,132 ,2147483648 ,132 ,2147483648 ,132 ,2147483648 ,2147483648 ,2147483648 ,132 ,2147483648 ,2147483648 ,132 ,132 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,132 ,132 ,132 ,132 ,2147483648 ,2147483648 ,132 ,2147483648 ,2147483648 ,132 ,2147483648 ,132 ,132 ,132 ,2147483648 ,2147483648 ,2147483648 ,132 ,2147483648 ,132 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,132 ,132 ,2147483648 ,2147483648 ,2147483648 ,132 ,132 ,2147483648 ,2147483648 ,132 ,132 ,2147483648 ,2147483648 ,132 ,2147483648 ,132 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,132 ,132 ,132 ,2147483648 ,2147483648 ,132 ,132 ,2147483648 ,132 ,132 ,2147483648 ,132 ,2147483648 ,2147483648 ,132 ,2147483648 ,132 ,132 ,132 ,2147483648 ,132 ,132 ,132 ,132 ,2147483648 ,2147483648 ,132 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,132 ,2147483648 ,132 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,47 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {135 ,135 ,135 ,2147483648 ,135 ,2147483648 ,135 ,2147483648 ,2147483648 ,2147483648 ,135 ,2147483648 ,2147483648 ,135 ,135 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,135 ,135 ,135 ,135 ,2147483648 ,2147483648 ,135 ,2147483648 ,2147483648 ,135 ,2147483648 ,135 ,135 ,135 ,2147483648 ,2147483648 ,2147483648 ,135 ,2147483648 ,135 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,135 ,135 ,2147483648 ,2147483648 ,2147483648 ,135 ,135 ,2147483648 ,2147483648 ,135 ,135 ,2147483648 ,2147483648 ,135 ,2147483648 ,135 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,135 ,135 ,135 ,2147483648 ,2147483648 ,135 ,135 ,2147483648 ,135 ,135 ,2147483648 ,135 ,2147483648 ,2147483648 ,135 ,2147483648 ,135 ,135 ,135 ,2147483648 ,135 ,135 ,135 ,135 ,2147483648 ,2147483648 ,135 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,135 ,2147483648 ,135 ,2147483648 }, + {20 ,20 ,2147483648 ,2147483648 ,2147483648 ,20 ,20 ,20 ,2147483648 ,20 ,20 ,2147483648 ,2147483648 ,2147483648 ,20 ,20 ,23 ,20 ,2147483648 ,2147483648 ,2147483648 ,20 ,20 ,20 ,20 ,2147483648 ,20 ,21 ,20 ,20 ,15 ,20 ,20 ,19 ,2147483648 ,2147483648 ,20 ,20 ,23 ,20 ,20 ,20 ,2147483648 ,20 ,2147483648 ,2147483648 ,20 ,23 ,23 ,19 ,20 ,2147483648 ,23 ,20 ,2147483648 ,18 ,2147483648 ,20 ,23 ,20 ,20 ,2147483648 ,20 ,20 ,17 ,2147483648 ,20 ,20 ,2147483648 ,20 ,23 ,20 ,2147483648 ,20 ,23 ,20 ,20 ,20 ,20 ,20 ,2147483648 ,2147483648 ,2147483648 ,20 ,20 ,19 ,23 ,20 ,20 ,19 ,2147483648 ,23 ,20 ,20 ,2147483648 ,16 ,2147483648 ,2147483648 ,20 ,20 ,24 ,20 ,22 }, + {112 ,112 ,2147483648 ,2147483648 ,2147483648 ,112 ,112 ,112 ,2147483648 ,112 ,112 ,2147483648 ,2147483648 ,2147483648 ,112 ,112 ,112 ,112 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,2147483648 ,2147483648 ,112 ,112 ,112 ,112 ,112 ,112 ,2147483648 ,112 ,2147483648 ,2147483648 ,112 ,112 ,112 ,112 ,112 ,2147483648 ,112 ,112 ,2147483648 ,112 ,2147483648 ,112 ,112 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,2147483648 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,2147483648 ,2147483648 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,112 ,2147483648 ,112 ,112 ,112 ,2147483648 ,112 ,2147483648 ,2147483648 ,112 ,112 ,112 ,112 ,112 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,41 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,40 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {202 ,202 ,202 ,2147483648 ,202 ,2147483648 ,202 ,2147483648 ,2147483648 ,2147483648 ,202 ,2147483648 ,203 ,202 ,202 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,202 ,202 ,202 ,202 ,2147483648 ,2147483648 ,202 ,2147483648 ,2147483648 ,202 ,2147483648 ,202 ,202 ,202 ,2147483648 ,2147483648 ,2147483648 ,202 ,2147483648 ,202 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,202 ,202 ,2147483648 ,2147483648 ,2147483648 ,202 ,202 ,2147483648 ,2147483648 ,202 ,202 ,2147483648 ,2147483648 ,202 ,2147483648 ,202 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,202 ,202 ,202 ,2147483648 ,2147483648 ,202 ,202 ,2147483648 ,202 ,202 ,2147483648 ,202 ,2147483648 ,2147483648 ,202 ,2147483648 ,202 ,202 ,202 ,2147483648 ,202 ,202 ,202 ,202 ,2147483648 ,2147483648 ,202 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,202 ,2147483648 ,202 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,109 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,117 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {142 ,142 ,142 ,2147483648 ,142 ,2147483648 ,142 ,2147483648 ,2147483648 ,2147483648 ,142 ,2147483648 ,2147483648 ,142 ,142 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,142 ,142 ,142 ,142 ,2147483648 ,2147483648 ,142 ,2147483648 ,2147483648 ,142 ,2147483648 ,142 ,142 ,142 ,2147483648 ,2147483648 ,2147483648 ,142 ,2147483648 ,142 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,142 ,142 ,2147483648 ,2147483648 ,2147483648 ,142 ,142 ,2147483648 ,2147483648 ,142 ,142 ,2147483648 ,2147483648 ,142 ,2147483648 ,142 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,142 ,142 ,142 ,2147483648 ,2147483648 ,142 ,142 ,2147483648 ,142 ,142 ,2147483648 ,142 ,2147483648 ,2147483648 ,142 ,2147483648 ,142 ,142 ,142 ,2147483648 ,142 ,142 ,142 ,142 ,2147483648 ,2147483648 ,142 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,142 ,2147483648 ,142 ,2147483648 }, + {49 ,49 ,49 ,2147483648 ,49 ,2147483648 ,49 ,2147483648 ,2147483648 ,2147483648 ,49 ,2147483648 ,2147483648 ,49 ,49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,49 ,49 ,49 ,49 ,2147483648 ,2147483648 ,49 ,2147483648 ,2147483648 ,49 ,2147483648 ,49 ,49 ,49 ,2147483648 ,48 ,2147483648 ,49 ,2147483648 ,49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,49 ,49 ,2147483648 ,2147483648 ,2147483648 ,49 ,49 ,2147483648 ,2147483648 ,49 ,49 ,2147483648 ,2147483648 ,49 ,2147483648 ,49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,49 ,49 ,49 ,2147483648 ,2147483648 ,49 ,49 ,2147483648 ,49 ,49 ,2147483648 ,49 ,2147483648 ,2147483648 ,49 ,2147483648 ,49 ,49 ,49 ,2147483648 ,49 ,49 ,49 ,49 ,2147483648 ,2147483648 ,49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,49 ,2147483648 ,49 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,198 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,199 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,201 ,2147483648 ,2147483648 ,2147483648 ,200 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {129 ,129 ,129 ,2147483648 ,129 ,2147483648 ,129 ,2147483648 ,2147483648 ,2147483648 ,129 ,2147483648 ,2147483648 ,129 ,129 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,129 ,129 ,129 ,129 ,2147483648 ,2147483648 ,129 ,2147483648 ,2147483648 ,129 ,2147483648 ,129 ,129 ,129 ,2147483648 ,2147483648 ,2147483648 ,129 ,2147483648 ,129 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,129 ,129 ,2147483648 ,2147483648 ,2147483648 ,129 ,129 ,2147483648 ,2147483648 ,129 ,129 ,2147483648 ,2147483648 ,129 ,2147483648 ,129 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,129 ,129 ,129 ,2147483648 ,2147483648 ,129 ,129 ,2147483648 ,129 ,129 ,2147483648 ,129 ,2147483648 ,2147483648 ,129 ,2147483648 ,129 ,129 ,129 ,2147483648 ,129 ,129 ,129 ,129 ,2147483648 ,2147483648 ,129 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,129 ,2147483648 ,129 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,147 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,148 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,149 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,150 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,42 ,2147483648 ,2147483648 ,43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,43 ,43 ,2147483648 ,2147483648 ,2147483648 ,43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,43 ,2147483648 ,2147483648 ,2147483648 ,43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,124 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,127 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,125 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,126 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {81 ,86 ,2147483648 ,2147483648 ,2147483648 ,68 ,77 ,69 ,2147483648 ,64 ,101 ,2147483648 ,2147483648 ,2147483648 ,98 ,55 ,2147483648 ,56 ,2147483648 ,2147483648 ,2147483648 ,83 ,89 ,90 ,63 ,2147483648 ,95 ,2147483648 ,58 ,79 ,2147483648 ,76 ,84 ,2147483648 ,2147483648 ,2147483648 ,61 ,103 ,2147483648 ,100 ,65 ,66 ,2147483648 ,60 ,2147483648 ,2147483648 ,67 ,2147483648 ,2147483648 ,2147483648 ,80 ,2147483648 ,2147483648 ,106 ,2147483648 ,2147483648 ,2147483648 ,75 ,2147483648 ,93 ,70 ,2147483648 ,57 ,59 ,2147483648 ,2147483648 ,105 ,96 ,2147483648 ,78 ,2147483648 ,62 ,2147483648 ,85 ,2147483648 ,102 ,91 ,72 ,74 ,71 ,2147483648 ,2147483648 ,2147483648 ,94 ,97 ,2147483648 ,2147483648 ,88 ,92 ,2147483648 ,2147483648 ,2147483648 ,104 ,99 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,73 ,87 ,2147483648 ,82 ,2147483648 }, + {146 ,146 ,146 ,2147483648 ,146 ,2147483648 ,146 ,2147483648 ,2147483648 ,2147483648 ,146 ,2147483648 ,2147483648 ,146 ,146 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,146 ,146 ,146 ,146 ,2147483648 ,2147483648 ,146 ,2147483648 ,2147483648 ,146 ,2147483648 ,146 ,146 ,146 ,2147483648 ,2147483648 ,2147483648 ,146 ,2147483648 ,146 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,146 ,146 ,2147483648 ,2147483648 ,2147483648 ,146 ,146 ,2147483648 ,2147483648 ,146 ,146 ,2147483648 ,2147483648 ,146 ,2147483648 ,146 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,146 ,146 ,146 ,2147483648 ,2147483648 ,146 ,146 ,2147483648 ,146 ,146 ,2147483648 ,146 ,2147483648 ,2147483648 ,146 ,2147483648 ,146 ,146 ,146 ,2147483648 ,146 ,146 ,146 ,146 ,2147483648 ,2147483648 ,146 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,146 ,2147483648 ,146 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,108 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,107 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,185 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,52 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,53 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,54 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,123 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,123 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,123 ,2147483648 ,2147483648 ,2147483648 ,123 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,116 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,45 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,133 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,134 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,134 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,134 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,134 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {158 ,163 ,189 ,2147483648 ,187 ,2147483648 ,154 ,2147483648 ,2147483648 ,2147483648 ,178 ,2147483648 ,2147483648 ,182 ,175 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,193 ,160 ,166 ,167 ,2147483648 ,2147483648 ,172 ,2147483648 ,2147483648 ,156 ,2147483648 ,153 ,161 ,183 ,2147483648 ,2147483648 ,2147483648 ,180 ,2147483648 ,177 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,188 ,195 ,2147483648 ,2147483648 ,2147483648 ,183 ,157 ,2147483648 ,2147483648 ,181 ,192 ,2147483648 ,2147483648 ,152 ,2147483648 ,170 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,173 ,186 ,155 ,2147483648 ,2147483648 ,190 ,162 ,2147483648 ,179 ,168 ,2147483648 ,151 ,2147483648 ,2147483648 ,194 ,2147483648 ,171 ,174 ,183 ,2147483648 ,165 ,169 ,183 ,191 ,2147483648 ,2147483648 ,176 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,164 ,2147483648 ,159 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,33 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,30 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,29 ,31 ,2147483648 ,2147483648 ,2147483648 ,27 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,35 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,32 ,2147483648 ,2147483648 ,2147483648 ,36 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,34 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,28 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,119 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,120 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,119 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,119 ,119 ,120 ,2147483648 ,2147483648 ,119 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,119 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,119 ,2147483648 ,2147483648 ,2147483648 ,119 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,120 ,119 ,2147483648 ,2147483648 ,120 ,2147483648 ,119 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,121 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 } }; const char* KeywordList[]= { "void", @@ -1087,15 +1087,10 @@ 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}, +{"@PUSH", FUNC_PUSH}, +{"@POP", FUNC_POP}, +{"@CALL", FUNC_CALL}, +{"@RET", FUNC_RET}, {"@VOID", FUNC_VOID}, {"@BOOL", FUNC_BOOL}, {"@CHAR", FUNC_CHAR}, @@ -1602,97 +1597,97 @@ const unsigned int LalrRhsSize[RULES_COUNT]= }; const char* LalrNoneTerminalMap[NONETERMINAL_COUNT]= { -"E10", -"EXP", -"S", -"E5", -"WstringNumber", -"E3", -"E12", -"B2", -"B3", +"B4", "WSTRING", -"StringNumber", -"CMP", -"BE", -"B6", +"WstringNumber", +"S", "B1", +"B6", +"E10", +"E3", +"BE", +"B2", +"CMP", +"StringNumber", +"EXP", "B5", -"STRING", "E4", -"B4" +"B3", +"E5", +"E12", +"STRING" }; const char* LalrTerminalMap[TERMINAL_COUNT]= { -"virtual_to_physical", -"not", +"low", +"<", +"+", +"disassemble_len64", +"wcsncmp", +"!=", +"reference", +"*", "_binary", -"_function_parameter_id", -"(", -"-", +"/", +"_decimal", "<=", -"disassemble_len32", -"strcmp", -"poi", "db", "==", -"physical_to_virtual", -")", -"_global_id", -"_wstring", -"_octal", -"strncmp", -"~", -"wcslen", -"$", -"neg", -"interlocked_decrement", -"wcscmp", -">", "eb", -"memcmp", -"_hex", -">>", -"^", -"&", -"_string", -"<<", -"_register", -"dw", -"*", -"low", -"hi", -"check_address", -"dq", -"disassemble_len", -"interlocked_increment", -"eq", -"wcsncmp", -"_decimal", -"dd", -"_local_id", -"||", -"_pseudo_register", -"+", -"strlen", -",", -"!=", -"disassemble_len64", -"<", -">=", -"interlocked_compare_exchange", -"reference", -"%", -"ed", "|", -"interlocked_exchange_add", +"eq", +"dw", +"physical_to_virtual", +"interlocked_compare_exchange", +"hi", +">=", +"_function_parameter_id", +"interlocked_decrement", +"strncmp", +"ed", "interlocked_exchange", -"/", -"&&" +"_register", +"_wstring", +"^", +"-", +"_string", +"neg", +"(", +"strlen", +"check_address", +"dd", +"disassemble_len", +"_local_id", +"strcmp", +"interlocked_exchange_add", +"_global_id", +"%", +")", +"wcscmp", +"<<", +"dq", +"_hex", +"memcmp", +"&&", +"_pseudo_register", +"disassemble_len32", +",", +"interlocked_increment", +"wcslen", +"||", +"_octal", +"$", +"not", +"&", +"virtual_to_physical", +">", +"~", +"poi", +">>" }; const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]= { - {14 ,10 ,1 ,13 ,2147483648 ,11 ,15 ,4 ,5 ,2147483648 ,2147483648 ,9 ,2 ,8 ,3 ,7 ,2147483648 ,12 ,6 }, + {6 ,2147483648 ,2147483648 ,1 ,3 ,8 ,14 ,11 ,2 ,4 ,9 ,2147483648 ,10 ,7 ,12 ,5 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, @@ -1714,32 +1709,33 @@ const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]= {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,85 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,86 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,89 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,90 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,90 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,94 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,97 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,10 ,2147483648 ,13 ,2147483648 ,11 ,15 ,4 ,5 ,2147483648 ,2147483648 ,9 ,99 ,8 ,3 ,7 ,2147483648 ,12 ,6 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,102 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,103 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {6 ,2147483648 ,2147483648 ,2147483648 ,3 ,8 ,14 ,11 ,104 ,4 ,9 ,2147483648 ,10 ,7 ,12 ,5 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, @@ -1753,62 +1749,61 @@ const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]= {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,116 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,10 ,2147483648 ,13 ,2147483648 ,11 ,15 ,117 ,5 ,2147483648 ,2147483648 ,9 ,2147483648 ,8 ,2147483648 ,7 ,2147483648 ,12 ,6 }, - {14 ,10 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,118 ,2147483648 ,2147483648 ,9 ,2147483648 ,8 ,2147483648 ,7 ,2147483648 ,12 ,6 }, - {14 ,10 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,9 ,2147483648 ,8 ,2147483648 ,7 ,2147483648 ,12 ,119 }, - {14 ,10 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,9 ,2147483648 ,8 ,2147483648 ,120 ,2147483648 ,12 ,2147483648 }, - {14 ,10 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,9 ,2147483648 ,121 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,122 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,123 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,124 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,125 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,126 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,127 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,2147483648 ,2147483648 ,13 ,2147483648 ,2147483648 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,128 ,2147483648 }, - {14 ,2147483648 ,2147483648 ,13 ,2147483648 ,2147483648 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,129 ,2147483648 }, - {14 ,2147483648 ,2147483648 ,130 ,2147483648 ,2147483648 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,2147483648 ,2147483648 ,131 ,2147483648 ,2147483648 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {132 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {133 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {134 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,135 ,2147483648 ,13 ,137 ,11 ,15 ,2147483648 ,2147483648 ,136 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,139 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,140 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,142 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,12 ,2147483648 }, - {14 ,144 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,145 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,146 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, + {6 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,8 ,14 ,11 ,2147483648 ,117 ,9 ,2147483648 ,10 ,7 ,12 ,5 ,13 ,15 ,2147483648 }, + {6 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,8 ,14 ,11 ,2147483648 ,2147483648 ,9 ,2147483648 ,10 ,7 ,12 ,118 ,13 ,15 ,2147483648 }, + {119 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,8 ,14 ,11 ,2147483648 ,2147483648 ,9 ,2147483648 ,10 ,7 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,8 ,14 ,11 ,2147483648 ,2147483648 ,9 ,2147483648 ,10 ,120 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,121 ,14 ,11 ,2147483648 ,2147483648 ,9 ,2147483648 ,10 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,122 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,123 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,124 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,125 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,126 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,127 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,128 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,129 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,130 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,131 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,132 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,133 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,134 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,15 ,2147483648 }, + {2147483648 ,136 ,137 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,135 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,141 ,139 ,2147483648 ,12 ,2147483648 ,13 ,15 ,140 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,143 ,139 ,2147483648 ,12 ,2147483648 ,13 ,15 ,140 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,144 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,145 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,147 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,148 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,146 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,147 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,148 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,149 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,150 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,151 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,152 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,149 ,2147483648 ,13 ,150 ,11 ,15 ,2147483648 ,2147483648 ,136 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,140 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,151 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,12 ,2147483648 }, - {14 ,152 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,153 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,154 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,155 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,156 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,157 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,153 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,136 ,155 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,154 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,159 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,160 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,161 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,12 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,156 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,158 ,157 ,2147483648 ,12 ,2147483648 ,13 ,15 ,140 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,159 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,160 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,161 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,162 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,163 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,164 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,140 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,165 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,12 ,2147483648 }, - {14 ,166 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,167 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,168 ,2147483648 ,13 ,169 ,11 ,15 ,2147483648 ,2147483648 ,136 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,170 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,171 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,172 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,173 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,174 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,175 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,163 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,164 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,136 ,166 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,165 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,167 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,168 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,169 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,170 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,171 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,172 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,173 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,174 ,139 ,2147483648 ,12 ,2147483648 ,13 ,15 ,140 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,175 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, @@ -1868,40 +1863,40 @@ const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]= {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,210 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,136 ,211 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,154 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,212 ,139 ,2147483648 ,12 ,2147483648 ,13 ,15 ,140 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,213 ,139 ,2147483648 ,12 ,2147483648 ,13 ,15 ,140 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,214 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,210 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,140 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,211 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,12 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,212 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,213 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,214 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,168 ,2147483648 ,13 ,215 ,11 ,15 ,2147483648 ,2147483648 ,136 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,140 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,216 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,12 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,217 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,136 ,215 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,154 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,218 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,140 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,219 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,141 ,12 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,220 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, - {14 ,168 ,2147483648 ,13 ,221 ,11 ,15 ,2147483648 ,2147483648 ,136 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,216 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,217 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,218 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,219 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,220 ,139 ,2147483648 ,12 ,2147483648 ,13 ,15 ,140 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,221 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, @@ -1915,17 +1910,17 @@ const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]= {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,234 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,234 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,235 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,236 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,14 ,11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,237 ,2147483648 ,12 ,2147483648 ,13 ,15 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,235 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,236 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {14 ,237 ,2147483648 ,13 ,2147483648 ,11 ,15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,12 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, @@ -1937,248 +1932,248 @@ const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT]= }; const int LalrActionTable[LALR_STATE_COUNT][LALR_TERMINAL_COUNT]= { - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483647 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-1 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-2 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-2 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,62 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-4 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-4 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-4 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,63 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-6 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-6 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-6 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,64 ,2147483648 ,2147483648 ,2147483648 ,-6 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-8 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-8 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,65 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-8 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-8 ,2147483648 ,2147483648 ,2147483648 ,-8 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-10 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-10 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-10 ,66 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-10 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-10 ,2147483648 ,2147483648 ,2147483648 ,-10 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-12 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-12 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-12 ,-12 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-12 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-12 ,2147483648 ,2147483648 ,2147483648 ,-12 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,72 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,68 ,2147483648 ,-13 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-13 ,2147483648 ,2147483648 ,2147483648 ,67 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-13 ,-13 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-13 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,69 ,2147483648 ,71 ,70 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-13 ,2147483648 ,2147483648 ,2147483648 ,-13 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-20 ,-20 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,-20 ,-20 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 ,-20 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-21 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-21 ,2147483648 ,-21 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-21 ,2147483648 ,2147483648 ,2147483648 ,-21 ,2147483648 ,2147483648 ,2147483648 ,73 ,-21 ,-21 ,2147483648 ,74 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-21 ,2147483648 ,2147483648 ,2147483648 ,-21 ,-21 ,2147483648 ,-21 ,-21 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-21 ,2147483648 ,2147483648 ,2147483648 ,-21 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,76 ,-24 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-24 ,2147483648 ,-24 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-24 ,2147483648 ,2147483648 ,2147483648 ,-24 ,2147483648 ,2147483648 ,2147483648 ,-24 ,-24 ,-24 ,2147483648 ,-24 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-24 ,2147483648 ,75 ,2147483648 ,-24 ,-24 ,2147483648 ,-24 ,-24 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-24 ,2147483648 ,2147483648 ,2147483648 ,-24 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-27 ,-27 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-27 ,2147483648 ,-27 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-27 ,2147483648 ,2147483648 ,2147483648 ,-27 ,2147483648 ,2147483648 ,2147483648 ,-27 ,-27 ,-27 ,2147483648 ,-27 ,2147483648 ,2147483648 ,79 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-27 ,2147483648 ,-27 ,2147483648 ,-27 ,-27 ,2147483648 ,-27 ,-27 ,2147483648 ,2147483648 ,77 ,2147483648 ,-27 ,2147483648 ,2147483648 ,78 ,-27 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-31 ,-31 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-31 ,2147483648 ,-31 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-31 ,2147483648 ,2147483648 ,2147483648 ,-31 ,2147483648 ,2147483648 ,2147483648 ,-31 ,-31 ,-31 ,2147483648 ,-31 ,2147483648 ,2147483648 ,-31 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-31 ,2147483648 ,-31 ,2147483648 ,-31 ,-31 ,2147483648 ,-31 ,-31 ,2147483648 ,2147483648 ,-31 ,2147483648 ,-31 ,2147483648 ,2147483648 ,-31 ,-31 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-32 ,-32 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-32 ,2147483648 ,-32 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-32 ,2147483648 ,2147483648 ,2147483648 ,-32 ,2147483648 ,2147483648 ,2147483648 ,-32 ,-32 ,-32 ,2147483648 ,-32 ,2147483648 ,2147483648 ,-32 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-32 ,2147483648 ,-32 ,2147483648 ,-32 ,-32 ,2147483648 ,-32 ,-32 ,2147483648 ,2147483648 ,-32 ,2147483648 ,-32 ,2147483648 ,2147483648 ,-32 ,-32 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,80 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-76 ,-76 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-76 ,2147483648 ,-76 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-76 ,2147483648 ,2147483648 ,2147483648 ,-76 ,2147483648 ,2147483648 ,2147483648 ,-76 ,-76 ,-76 ,2147483648 ,-76 ,2147483648 ,2147483648 ,-76 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-76 ,2147483648 ,-76 ,2147483648 ,-76 ,-76 ,2147483648 ,-76 ,-76 ,2147483648 ,2147483648 ,-76 ,2147483648 ,-76 ,2147483648 ,2147483648 ,-76 ,-76 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,81 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,82 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-73 ,-73 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-73 ,2147483648 ,-73 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-73 ,2147483648 ,2147483648 ,2147483648 ,-73 ,2147483648 ,2147483648 ,2147483648 ,-73 ,-73 ,-73 ,2147483648 ,-73 ,2147483648 ,2147483648 ,-73 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-73 ,2147483648 ,-73 ,2147483648 ,-73 ,-73 ,2147483648 ,-73 ,-73 ,2147483648 ,2147483648 ,-73 ,2147483648 ,-73 ,2147483648 ,2147483648 ,-73 ,-73 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,83 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,84 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,85 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,2147483648 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,2147483648 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,20 ,58 ,2147483648 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,2147483648 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,87 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,88 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,2147483648 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,2147483648 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,20 ,58 ,2147483648 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,2147483648 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,2147483648 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,2147483648 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,20 ,58 ,2147483648 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,2147483648 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,91 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,92 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-81 ,-81 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-81 ,2147483648 ,-81 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-81 ,2147483648 ,2147483648 ,2147483648 ,-81 ,2147483648 ,2147483648 ,2147483648 ,-81 ,-81 ,-81 ,2147483648 ,-81 ,2147483648 ,2147483648 ,-81 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-81 ,2147483648 ,-81 ,2147483648 ,-81 ,-81 ,2147483648 ,-81 ,-81 ,2147483648 ,2147483648 ,-81 ,2147483648 ,-81 ,2147483648 ,2147483648 ,-81 ,-81 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,93 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,94 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,95 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,96 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-75 ,-75 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-75 ,2147483648 ,-75 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-75 ,2147483648 ,2147483648 ,2147483648 ,-75 ,2147483648 ,2147483648 ,2147483648 ,-75 ,-75 ,-75 ,2147483648 ,-75 ,2147483648 ,2147483648 ,-75 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-75 ,2147483648 ,-75 ,2147483648 ,-75 ,-75 ,2147483648 ,-75 ,-75 ,2147483648 ,2147483648 ,-75 ,2147483648 ,-75 ,2147483648 ,2147483648 ,-75 ,-75 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,97 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,98 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,100 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-77 ,-77 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-77 ,2147483648 ,-77 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-77 ,2147483648 ,2147483648 ,2147483648 ,-77 ,2147483648 ,2147483648 ,2147483648 ,-77 ,-77 ,-77 ,2147483648 ,-77 ,2147483648 ,2147483648 ,-77 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-77 ,2147483648 ,-77 ,2147483648 ,-77 ,-77 ,2147483648 ,-77 ,-77 ,2147483648 ,2147483648 ,-77 ,2147483648 ,-77 ,2147483648 ,2147483648 ,-77 ,-77 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-80 ,-80 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-80 ,2147483648 ,-80 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-80 ,2147483648 ,2147483648 ,2147483648 ,-80 ,2147483648 ,2147483648 ,2147483648 ,-80 ,-80 ,-80 ,2147483648 ,-80 ,2147483648 ,2147483648 ,-80 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-80 ,2147483648 ,-80 ,2147483648 ,-80 ,-80 ,2147483648 ,-80 ,-80 ,2147483648 ,2147483648 ,-80 ,2147483648 ,-80 ,2147483648 ,2147483648 ,-80 ,-80 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,101 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,2147483648 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,2147483648 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,20 ,58 ,2147483648 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,2147483648 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,103 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-79 ,-79 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-79 ,2147483648 ,-79 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-79 ,2147483648 ,2147483648 ,2147483648 ,-79 ,2147483648 ,2147483648 ,2147483648 ,-79 ,-79 ,-79 ,2147483648 ,-79 ,2147483648 ,2147483648 ,-79 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-79 ,2147483648 ,-79 ,2147483648 ,-79 ,-79 ,2147483648 ,-79 ,-79 ,2147483648 ,2147483648 ,-79 ,2147483648 ,-79 ,2147483648 ,2147483648 ,-79 ,-79 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,104 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-78 ,-78 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-78 ,2147483648 ,-78 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-78 ,2147483648 ,2147483648 ,2147483648 ,-78 ,2147483648 ,2147483648 ,2147483648 ,-78 ,-78 ,-78 ,2147483648 ,-78 ,2147483648 ,2147483648 ,-78 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-78 ,2147483648 ,-78 ,2147483648 ,-78 ,-78 ,2147483648 ,-78 ,-78 ,2147483648 ,2147483648 ,-78 ,2147483648 ,-78 ,2147483648 ,2147483648 ,-78 ,-78 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,105 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,106 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,107 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,108 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,109 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,110 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,111 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-74 ,-74 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-74 ,2147483648 ,-74 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-74 ,2147483648 ,2147483648 ,2147483648 ,-74 ,2147483648 ,2147483648 ,2147483648 ,-74 ,-74 ,-74 ,2147483648 ,-74 ,2147483648 ,2147483648 ,-74 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-74 ,2147483648 ,-74 ,2147483648 ,-74 ,-74 ,2147483648 ,-74 ,-74 ,2147483648 ,2147483648 ,-74 ,2147483648 ,-74 ,2147483648 ,2147483648 ,-74 ,-74 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,112 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,113 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,114 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,115 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,2147483648 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,2147483648 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,20 ,58 ,2147483648 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,2147483648 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,138 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,143 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-34 ,-34 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-34 ,2147483648 ,-34 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-34 ,2147483648 ,2147483648 ,2147483648 ,-34 ,2147483648 ,2147483648 ,2147483648 ,-34 ,-34 ,-34 ,2147483648 ,-34 ,2147483648 ,2147483648 ,-34 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-34 ,2147483648 ,-34 ,2147483648 ,-34 ,-34 ,2147483648 ,-34 ,-34 ,2147483648 ,2147483648 ,-34 ,2147483648 ,-34 ,2147483648 ,2147483648 ,-34 ,-34 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-35 ,-35 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-35 ,2147483648 ,-35 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-35 ,2147483648 ,2147483648 ,2147483648 ,-35 ,2147483648 ,2147483648 ,2147483648 ,-35 ,-35 ,-35 ,2147483648 ,-35 ,2147483648 ,2147483648 ,-35 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-35 ,2147483648 ,-35 ,2147483648 ,-35 ,-35 ,2147483648 ,-35 ,-35 ,2147483648 ,2147483648 ,-35 ,2147483648 ,-35 ,2147483648 ,2147483648 ,-35 ,-35 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-33 ,-33 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-33 ,2147483648 ,-33 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-33 ,2147483648 ,2147483648 ,2147483648 ,-33 ,2147483648 ,2147483648 ,2147483648 ,-33 ,-33 ,-33 ,2147483648 ,-33 ,2147483648 ,2147483648 ,-33 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-33 ,2147483648 ,-33 ,2147483648 ,-33 ,-33 ,2147483648 ,-33 ,-33 ,2147483648 ,2147483648 ,-33 ,2147483648 ,-33 ,2147483648 ,2147483648 ,-33 ,-33 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,138 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,143 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,158 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,143 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-37 ,-37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-37 ,2147483648 ,-37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-37 ,2147483648 ,2147483648 ,2147483648 ,-37 ,2147483648 ,2147483648 ,2147483648 ,-37 ,-37 ,-37 ,2147483648 ,-37 ,2147483648 ,2147483648 ,-37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-37 ,2147483648 ,-37 ,2147483648 ,-37 ,-37 ,2147483648 ,-37 ,-37 ,2147483648 ,2147483648 ,-37 ,2147483648 ,-37 ,2147483648 ,2147483648 ,-37 ,-37 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,143 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,138 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-36 ,-36 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-36 ,2147483648 ,-36 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-36 ,2147483648 ,2147483648 ,2147483648 ,-36 ,2147483648 ,2147483648 ,2147483648 ,-36 ,-36 ,-36 ,2147483648 ,-36 ,2147483648 ,2147483648 ,-36 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-36 ,2147483648 ,-36 ,2147483648 ,-36 ,-36 ,2147483648 ,-36 ,-36 ,2147483648 ,2147483648 ,-36 ,2147483648 ,-36 ,2147483648 ,2147483648 ,-36 ,-36 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-3 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-3 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-3 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,63 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-5 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-5 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-5 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,64 ,2147483648 ,2147483648 ,2147483648 ,-5 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-7 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-7 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,65 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-7 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-7 ,2147483648 ,2147483648 ,2147483648 ,-7 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-9 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-9 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-9 ,66 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-9 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-9 ,2147483648 ,2147483648 ,2147483648 ,-9 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-11 ,-11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-11 ,2147483648 ,2147483648 ,2147483648 ,-11 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-14 ,-14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,-14 ,-14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 ,-14 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-18 ,-18 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,-18 ,-18 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 ,-18 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-19 ,-19 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,-19 ,-19 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 ,-19 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-16 ,-16 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,-16 ,-16 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 ,-16 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-15 ,-15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,-15 ,-15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 ,-15 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-17 ,-17 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,-17 ,-17 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 ,-17 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,76 ,-22 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-22 ,2147483648 ,-22 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-22 ,2147483648 ,2147483648 ,2147483648 ,-22 ,2147483648 ,2147483648 ,2147483648 ,-22 ,-22 ,-22 ,2147483648 ,-22 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-22 ,2147483648 ,75 ,2147483648 ,-22 ,-22 ,2147483648 ,-22 ,-22 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-22 ,2147483648 ,2147483648 ,2147483648 ,-22 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,76 ,-23 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-23 ,2147483648 ,-23 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-23 ,2147483648 ,2147483648 ,2147483648 ,-23 ,2147483648 ,2147483648 ,2147483648 ,-23 ,-23 ,-23 ,2147483648 ,-23 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-23 ,2147483648 ,75 ,2147483648 ,-23 ,-23 ,2147483648 ,-23 ,-23 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-23 ,2147483648 ,2147483648 ,2147483648 ,-23 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-25 ,-25 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-25 ,2147483648 ,-25 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-25 ,2147483648 ,2147483648 ,2147483648 ,-25 ,2147483648 ,2147483648 ,2147483648 ,-25 ,-25 ,-25 ,2147483648 ,-25 ,2147483648 ,2147483648 ,79 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-25 ,2147483648 ,-25 ,2147483648 ,-25 ,-25 ,2147483648 ,-25 ,-25 ,2147483648 ,2147483648 ,77 ,2147483648 ,-25 ,2147483648 ,2147483648 ,78 ,-25 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-26 ,-26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-26 ,2147483648 ,-26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-26 ,2147483648 ,2147483648 ,2147483648 ,-26 ,2147483648 ,2147483648 ,2147483648 ,-26 ,-26 ,-26 ,2147483648 ,-26 ,2147483648 ,2147483648 ,79 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-26 ,2147483648 ,-26 ,2147483648 ,-26 ,-26 ,2147483648 ,-26 ,-26 ,2147483648 ,2147483648 ,77 ,2147483648 ,-26 ,2147483648 ,2147483648 ,78 ,-26 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-29 ,-29 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-29 ,2147483648 ,-29 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-29 ,2147483648 ,2147483648 ,2147483648 ,-29 ,2147483648 ,2147483648 ,2147483648 ,-29 ,-29 ,-29 ,2147483648 ,-29 ,2147483648 ,2147483648 ,-29 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-29 ,2147483648 ,-29 ,2147483648 ,-29 ,-29 ,2147483648 ,-29 ,-29 ,2147483648 ,2147483648 ,-29 ,2147483648 ,-29 ,2147483648 ,2147483648 ,-29 ,-29 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-28 ,-28 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-28 ,2147483648 ,-28 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-28 ,2147483648 ,2147483648 ,2147483648 ,-28 ,2147483648 ,2147483648 ,2147483648 ,-28 ,-28 ,-28 ,2147483648 ,-28 ,2147483648 ,2147483648 ,-28 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-28 ,2147483648 ,-28 ,2147483648 ,-28 ,-28 ,2147483648 ,-28 ,-28 ,2147483648 ,2147483648 ,-28 ,2147483648 ,-28 ,2147483648 ,2147483648 ,-28 ,-28 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-30 ,-30 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-30 ,2147483648 ,-30 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-30 ,2147483648 ,2147483648 ,2147483648 ,-30 ,2147483648 ,2147483648 ,2147483648 ,-30 ,-30 ,-30 ,2147483648 ,-30 ,2147483648 ,2147483648 ,-30 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-30 ,2147483648 ,-30 ,2147483648 ,-30 ,-30 ,2147483648 ,-30 ,-30 ,2147483648 ,2147483648 ,-30 ,2147483648 ,-30 ,2147483648 ,2147483648 ,-30 ,-30 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,176 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-87 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-87 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,177 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-83 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-83 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,178 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-84 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-84 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-85 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-85 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,179 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-82 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-82 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,180 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,181 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,182 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,183 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,185 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,186 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,187 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,188 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,189 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,190 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,191 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,192 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,193 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-72 ,-72 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-72 ,2147483648 ,-72 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-72 ,2147483648 ,2147483648 ,2147483648 ,-72 ,2147483648 ,2147483648 ,2147483648 ,-72 ,-72 ,-72 ,2147483648 ,-72 ,2147483648 ,2147483648 ,-72 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-72 ,2147483648 ,-72 ,2147483648 ,-72 ,-72 ,2147483648 ,-72 ,-72 ,2147483648 ,2147483648 ,-72 ,2147483648 ,-72 ,2147483648 ,2147483648 ,-72 ,-72 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,194 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-84 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,196 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,197 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,198 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,199 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,200 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,201 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,202 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-86 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-86 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,203 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,204 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,205 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,206 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,207 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,208 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,209 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-49 ,-49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-49 ,2147483648 ,-49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-49 ,2147483648 ,2147483648 ,2147483648 ,-49 ,2147483648 ,2147483648 ,2147483648 ,-49 ,-49 ,-49 ,2147483648 ,-49 ,2147483648 ,2147483648 ,-49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-49 ,2147483648 ,-49 ,2147483648 ,-49 ,-49 ,2147483648 ,-49 ,-49 ,2147483648 ,2147483648 ,-49 ,2147483648 ,-49 ,2147483648 ,2147483648 ,-49 ,-49 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-69 ,-69 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-69 ,2147483648 ,-69 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-69 ,2147483648 ,2147483648 ,2147483648 ,-69 ,2147483648 ,2147483648 ,2147483648 ,-69 ,-69 ,-69 ,2147483648 ,-69 ,2147483648 ,2147483648 ,-69 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-69 ,2147483648 ,-69 ,2147483648 ,-69 ,-69 ,2147483648 ,-69 ,-69 ,2147483648 ,2147483648 ,-69 ,2147483648 ,-69 ,2147483648 ,2147483648 ,-69 ,-69 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,143 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-57 ,-57 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-57 ,2147483648 ,-57 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-57 ,2147483648 ,2147483648 ,2147483648 ,-57 ,2147483648 ,2147483648 ,2147483648 ,-57 ,-57 ,-57 ,2147483648 ,-57 ,2147483648 ,2147483648 ,-57 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-57 ,2147483648 ,-57 ,2147483648 ,-57 ,-57 ,2147483648 ,-57 ,-57 ,2147483648 ,2147483648 ,-57 ,2147483648 ,-57 ,2147483648 ,2147483648 ,-57 ,-57 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-46 ,-46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-46 ,2147483648 ,-46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-46 ,2147483648 ,2147483648 ,2147483648 ,-46 ,2147483648 ,2147483648 ,2147483648 ,-46 ,-46 ,-46 ,2147483648 ,-46 ,2147483648 ,2147483648 ,-46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-46 ,2147483648 ,-46 ,2147483648 ,-46 ,-46 ,2147483648 ,-46 ,-46 ,2147483648 ,2147483648 ,-46 ,2147483648 ,-46 ,2147483648 ,2147483648 ,-46 ,-46 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-53 ,-53 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-53 ,2147483648 ,-53 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-53 ,2147483648 ,2147483648 ,2147483648 ,-53 ,2147483648 ,2147483648 ,2147483648 ,-53 ,-53 ,-53 ,2147483648 ,-53 ,2147483648 ,2147483648 ,-53 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-53 ,2147483648 ,-53 ,2147483648 ,-53 ,-53 ,2147483648 ,-53 ,-53 ,2147483648 ,2147483648 ,-53 ,2147483648 ,-53 ,2147483648 ,2147483648 ,-53 ,-53 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,138 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,143 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-47 ,-47 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-47 ,2147483648 ,-47 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-47 ,2147483648 ,2147483648 ,2147483648 ,-47 ,2147483648 ,2147483648 ,2147483648 ,-47 ,-47 ,-47 ,2147483648 ,-47 ,2147483648 ,2147483648 ,-47 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-47 ,2147483648 ,-47 ,2147483648 ,-47 ,-47 ,2147483648 ,-47 ,-47 ,2147483648 ,2147483648 ,-47 ,2147483648 ,-47 ,2147483648 ,2147483648 ,-47 ,-47 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-38 ,-38 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-38 ,2147483648 ,-38 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-38 ,2147483648 ,2147483648 ,2147483648 ,-38 ,2147483648 ,2147483648 ,2147483648 ,-38 ,-38 ,-38 ,2147483648 ,-38 ,2147483648 ,2147483648 ,-38 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-38 ,2147483648 ,-38 ,2147483648 ,-38 ,-38 ,2147483648 ,-38 ,-38 ,2147483648 ,2147483648 ,-38 ,2147483648 ,-38 ,2147483648 ,2147483648 ,-38 ,-38 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-43 ,-43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-43 ,2147483648 ,-43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-43 ,2147483648 ,2147483648 ,2147483648 ,-43 ,2147483648 ,2147483648 ,2147483648 ,-43 ,-43 ,-43 ,2147483648 ,-43 ,2147483648 ,2147483648 ,-43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-43 ,2147483648 ,-43 ,2147483648 ,-43 ,-43 ,2147483648 ,-43 ,-43 ,2147483648 ,2147483648 ,-43 ,2147483648 ,-43 ,2147483648 ,2147483648 ,-43 ,-43 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-56 ,-56 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-56 ,2147483648 ,-56 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-56 ,2147483648 ,2147483648 ,2147483648 ,-56 ,2147483648 ,2147483648 ,2147483648 ,-56 ,-56 ,-56 ,2147483648 ,-56 ,2147483648 ,2147483648 ,-56 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-56 ,2147483648 ,-56 ,2147483648 ,-56 ,-56 ,2147483648 ,-56 ,-56 ,2147483648 ,2147483648 ,-56 ,2147483648 ,-56 ,2147483648 ,2147483648 ,-56 ,-56 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-52 ,-52 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-52 ,2147483648 ,-52 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-52 ,2147483648 ,2147483648 ,2147483648 ,-52 ,2147483648 ,2147483648 ,2147483648 ,-52 ,-52 ,-52 ,2147483648 ,-52 ,2147483648 ,2147483648 ,-52 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-52 ,2147483648 ,-52 ,2147483648 ,-52 ,-52 ,2147483648 ,-52 ,-52 ,2147483648 ,2147483648 ,-52 ,2147483648 ,-52 ,2147483648 ,2147483648 ,-52 ,-52 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-40 ,-40 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-40 ,2147483648 ,-40 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-40 ,2147483648 ,2147483648 ,2147483648 ,-40 ,2147483648 ,2147483648 ,2147483648 ,-40 ,-40 ,-40 ,2147483648 ,-40 ,2147483648 ,2147483648 ,-40 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-40 ,2147483648 ,-40 ,2147483648 ,-40 ,-40 ,2147483648 ,-40 ,-40 ,2147483648 ,2147483648 ,-40 ,2147483648 ,-40 ,2147483648 ,2147483648 ,-40 ,-40 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-48 ,-48 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-48 ,2147483648 ,-48 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-48 ,2147483648 ,2147483648 ,2147483648 ,-48 ,2147483648 ,2147483648 ,2147483648 ,-48 ,-48 ,-48 ,2147483648 ,-48 ,2147483648 ,2147483648 ,-48 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-48 ,2147483648 ,-48 ,2147483648 ,-48 ,-48 ,2147483648 ,-48 ,-48 ,2147483648 ,2147483648 ,-48 ,2147483648 ,-48 ,2147483648 ,2147483648 ,-48 ,-48 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-65 ,-65 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-65 ,2147483648 ,-65 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-65 ,2147483648 ,2147483648 ,2147483648 ,-65 ,2147483648 ,2147483648 ,2147483648 ,-65 ,-65 ,-65 ,2147483648 ,-65 ,2147483648 ,2147483648 ,-65 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-65 ,2147483648 ,-65 ,2147483648 ,-65 ,-65 ,2147483648 ,-65 ,-65 ,2147483648 ,2147483648 ,-65 ,2147483648 ,-65 ,2147483648 ,2147483648 ,-65 ,-65 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-45 ,-45 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-45 ,2147483648 ,-45 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-45 ,2147483648 ,2147483648 ,2147483648 ,-45 ,2147483648 ,2147483648 ,2147483648 ,-45 ,-45 ,-45 ,2147483648 ,-45 ,2147483648 ,2147483648 ,-45 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-45 ,2147483648 ,-45 ,2147483648 ,-45 ,-45 ,2147483648 ,-45 ,-45 ,2147483648 ,2147483648 ,-45 ,2147483648 ,-45 ,2147483648 ,2147483648 ,-45 ,-45 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-51 ,-51 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-51 ,2147483648 ,-51 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-51 ,2147483648 ,2147483648 ,2147483648 ,-51 ,2147483648 ,2147483648 ,2147483648 ,-51 ,-51 ,-51 ,2147483648 ,-51 ,2147483648 ,2147483648 ,-51 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-51 ,2147483648 ,-51 ,2147483648 ,-51 ,-51 ,2147483648 ,-51 ,-51 ,2147483648 ,2147483648 ,-51 ,2147483648 ,-51 ,2147483648 ,2147483648 ,-51 ,-51 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,143 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-54 ,-54 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-54 ,2147483648 ,-54 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-54 ,2147483648 ,2147483648 ,2147483648 ,-54 ,2147483648 ,2147483648 ,2147483648 ,-54 ,-54 ,-54 ,2147483648 ,-54 ,2147483648 ,2147483648 ,-54 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-54 ,2147483648 ,-54 ,2147483648 ,-54 ,-54 ,2147483648 ,-54 ,-54 ,2147483648 ,2147483648 ,-54 ,2147483648 ,-54 ,2147483648 ,2147483648 ,-54 ,-54 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,138 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-55 ,-55 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-55 ,2147483648 ,-55 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-55 ,2147483648 ,2147483648 ,2147483648 ,-55 ,2147483648 ,2147483648 ,2147483648 ,-55 ,-55 ,-55 ,2147483648 ,-55 ,2147483648 ,2147483648 ,-55 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-55 ,2147483648 ,-55 ,2147483648 ,-55 ,-55 ,2147483648 ,-55 ,-55 ,2147483648 ,2147483648 ,-55 ,2147483648 ,-55 ,2147483648 ,2147483648 ,-55 ,-55 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-44 ,-44 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-44 ,2147483648 ,-44 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-44 ,2147483648 ,2147483648 ,2147483648 ,-44 ,2147483648 ,2147483648 ,2147483648 ,-44 ,-44 ,-44 ,2147483648 ,-44 ,2147483648 ,2147483648 ,-44 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-44 ,2147483648 ,-44 ,2147483648 ,-44 ,-44 ,2147483648 ,-44 ,-44 ,2147483648 ,2147483648 ,-44 ,2147483648 ,-44 ,2147483648 ,2147483648 ,-44 ,-44 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-50 ,-50 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-50 ,2147483648 ,-50 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-50 ,2147483648 ,2147483648 ,2147483648 ,-50 ,2147483648 ,2147483648 ,2147483648 ,-50 ,-50 ,-50 ,2147483648 ,-50 ,2147483648 ,2147483648 ,-50 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-50 ,2147483648 ,-50 ,2147483648 ,-50 ,-50 ,2147483648 ,-50 ,-50 ,2147483648 ,2147483648 ,-50 ,2147483648 ,-50 ,2147483648 ,2147483648 ,-50 ,-50 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-41 ,-41 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-41 ,2147483648 ,-41 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-41 ,2147483648 ,2147483648 ,2147483648 ,-41 ,2147483648 ,2147483648 ,2147483648 ,-41 ,-41 ,-41 ,2147483648 ,-41 ,2147483648 ,2147483648 ,-41 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-41 ,2147483648 ,-41 ,2147483648 ,-41 ,-41 ,2147483648 ,-41 ,-41 ,2147483648 ,2147483648 ,-41 ,2147483648 ,-41 ,2147483648 ,2147483648 ,-41 ,-41 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-42 ,-42 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-42 ,2147483648 ,-42 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-42 ,2147483648 ,2147483648 ,2147483648 ,-42 ,2147483648 ,2147483648 ,2147483648 ,-42 ,-42 ,-42 ,2147483648 ,-42 ,2147483648 ,2147483648 ,-42 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-42 ,2147483648 ,-42 ,2147483648 ,-42 ,-42 ,2147483648 ,-42 ,-42 ,2147483648 ,2147483648 ,-42 ,2147483648 ,-42 ,2147483648 ,2147483648 ,-42 ,-42 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-39 ,-39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-39 ,2147483648 ,-39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-39 ,2147483648 ,2147483648 ,2147483648 ,-39 ,2147483648 ,2147483648 ,2147483648 ,-39 ,-39 ,-39 ,2147483648 ,-39 ,2147483648 ,2147483648 ,-39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-39 ,2147483648 ,-39 ,2147483648 ,-39 ,-39 ,2147483648 ,-39 ,-39 ,2147483648 ,2147483648 ,-39 ,2147483648 ,-39 ,2147483648 ,2147483648 ,-39 ,-39 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,222 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,223 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,224 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,225 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,226 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,227 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,228 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,229 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,230 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,231 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,232 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,233 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-61 ,-61 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-61 ,2147483648 ,-61 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-61 ,2147483648 ,2147483648 ,2147483648 ,-61 ,2147483648 ,2147483648 ,2147483648 ,-61 ,-61 ,-61 ,2147483648 ,-61 ,2147483648 ,2147483648 ,-61 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-61 ,2147483648 ,-61 ,2147483648 ,-61 ,-61 ,2147483648 ,-61 ,-61 ,2147483648 ,2147483648 ,-61 ,2147483648 ,-61 ,2147483648 ,2147483648 ,-61 ,-61 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-62 ,-62 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-62 ,2147483648 ,-62 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-62 ,2147483648 ,2147483648 ,2147483648 ,-62 ,2147483648 ,2147483648 ,2147483648 ,-62 ,-62 ,-62 ,2147483648 ,-62 ,2147483648 ,2147483648 ,-62 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-62 ,2147483648 ,-62 ,2147483648 ,-62 ,-62 ,2147483648 ,-62 ,-62 ,2147483648 ,2147483648 ,-62 ,2147483648 ,-62 ,2147483648 ,2147483648 ,-62 ,-62 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-60 ,-60 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-60 ,2147483648 ,-60 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-60 ,2147483648 ,2147483648 ,2147483648 ,-60 ,2147483648 ,2147483648 ,2147483648 ,-60 ,-60 ,-60 ,2147483648 ,-60 ,2147483648 ,2147483648 ,-60 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-60 ,2147483648 ,-60 ,2147483648 ,-60 ,-60 ,2147483648 ,-60 ,-60 ,2147483648 ,2147483648 ,-60 ,2147483648 ,-60 ,2147483648 ,2147483648 ,-60 ,-60 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-63 ,-63 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-63 ,2147483648 ,-63 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-63 ,2147483648 ,2147483648 ,2147483648 ,-63 ,2147483648 ,2147483648 ,2147483648 ,-63 ,-63 ,-63 ,2147483648 ,-63 ,2147483648 ,2147483648 ,-63 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-63 ,2147483648 ,-63 ,2147483648 ,-63 ,-63 ,2147483648 ,-63 ,-63 ,2147483648 ,2147483648 ,-63 ,2147483648 ,-63 ,2147483648 ,2147483648 ,-63 ,-63 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-70 ,-70 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-70 ,2147483648 ,-70 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-70 ,2147483648 ,2147483648 ,2147483648 ,-70 ,2147483648 ,2147483648 ,2147483648 ,-70 ,-70 ,-70 ,2147483648 ,-70 ,2147483648 ,2147483648 ,-70 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-70 ,2147483648 ,-70 ,2147483648 ,-70 ,-70 ,2147483648 ,-70 ,-70 ,2147483648 ,2147483648 ,-70 ,2147483648 ,-70 ,2147483648 ,2147483648 ,-70 ,-70 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-58 ,-58 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-58 ,2147483648 ,-58 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-58 ,2147483648 ,2147483648 ,2147483648 ,-58 ,2147483648 ,2147483648 ,2147483648 ,-58 ,-58 ,-58 ,2147483648 ,-58 ,2147483648 ,2147483648 ,-58 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-58 ,2147483648 ,-58 ,2147483648 ,-58 ,-58 ,2147483648 ,-58 ,-58 ,2147483648 ,2147483648 ,-58 ,2147483648 ,-58 ,2147483648 ,2147483648 ,-58 ,-58 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-66 ,-66 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-66 ,2147483648 ,-66 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-66 ,2147483648 ,2147483648 ,2147483648 ,-66 ,2147483648 ,2147483648 ,2147483648 ,-66 ,-66 ,-66 ,2147483648 ,-66 ,2147483648 ,2147483648 ,-66 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-66 ,2147483648 ,-66 ,2147483648 ,-66 ,-66 ,2147483648 ,-66 ,-66 ,2147483648 ,2147483648 ,-66 ,2147483648 ,-66 ,2147483648 ,2147483648 ,-66 ,-66 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-59 ,-59 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-59 ,2147483648 ,-59 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-59 ,2147483648 ,2147483648 ,2147483648 ,-59 ,2147483648 ,2147483648 ,2147483648 ,-59 ,-59 ,-59 ,2147483648 ,-59 ,2147483648 ,2147483648 ,-59 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-59 ,2147483648 ,-59 ,2147483648 ,-59 ,-59 ,2147483648 ,-59 ,-59 ,2147483648 ,2147483648 ,-59 ,2147483648 ,-59 ,2147483648 ,2147483648 ,-59 ,-59 }, - {21 ,22 ,42 ,17 ,39 ,28 ,2147483648 ,47 ,50 ,33 ,60 ,2147483648 ,37 ,2147483648 ,56 ,2147483648 ,46 ,30 ,27 ,16 ,2147483648 ,34 ,51 ,29 ,2147483648 ,52 ,19 ,41 ,2147483648 ,2147483648 ,44 ,2147483648 ,2147483648 ,20 ,58 ,61 ,45 ,55 ,32 ,59 ,57 ,25 ,26 ,53 ,48 ,40 ,36 ,2147483648 ,31 ,24 ,43 ,2147483648 ,2147483648 ,38 ,2147483648 ,2147483648 ,49 ,54 ,2147483648 ,35 ,2147483648 ,23 ,18 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,238 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,239 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,240 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,241 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-67 ,-67 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-67 ,2147483648 ,-67 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-67 ,2147483648 ,2147483648 ,2147483648 ,-67 ,2147483648 ,2147483648 ,2147483648 ,-67 ,-67 ,-67 ,2147483648 ,-67 ,2147483648 ,2147483648 ,-67 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-67 ,2147483648 ,-67 ,2147483648 ,-67 ,-67 ,2147483648 ,-67 ,-67 ,2147483648 ,2147483648 ,-67 ,2147483648 ,-67 ,2147483648 ,2147483648 ,-67 ,-67 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-68 ,-68 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-68 ,2147483648 ,-68 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-68 ,2147483648 ,2147483648 ,2147483648 ,-68 ,2147483648 ,2147483648 ,2147483648 ,-68 ,-68 ,-68 ,2147483648 ,-68 ,2147483648 ,2147483648 ,-68 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-68 ,2147483648 ,-68 ,2147483648 ,-68 ,-68 ,2147483648 ,-68 ,-68 ,2147483648 ,2147483648 ,-68 ,2147483648 ,-68 ,2147483648 ,2147483648 ,-68 ,-68 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-64 ,-64 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-64 ,2147483648 ,-64 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-64 ,2147483648 ,2147483648 ,2147483648 ,-64 ,2147483648 ,2147483648 ,2147483648 ,-64 ,-64 ,-64 ,2147483648 ,-64 ,2147483648 ,2147483648 ,-64 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-64 ,2147483648 ,-64 ,2147483648 ,-64 ,-64 ,2147483648 ,-64 ,-64 ,2147483648 ,2147483648 ,-64 ,2147483648 ,-64 ,2147483648 ,2147483648 ,-64 ,-64 }, - {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-71 ,-71 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-71 ,2147483648 ,-71 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-71 ,2147483648 ,2147483648 ,2147483648 ,-71 ,2147483648 ,2147483648 ,2147483648 ,-71 ,-71 ,-71 ,2147483648 ,-71 ,2147483648 ,2147483648 ,-71 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-71 ,2147483648 ,-71 ,2147483648 ,-71 ,-71 ,2147483648 ,-71 ,-71 ,2147483648 ,2147483648 ,-71 ,2147483648 ,-71 ,2147483648 ,2147483648 ,-71 ,-71 } + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483647 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-1 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-2 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,62 ,2147483648 ,-2 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-4 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,63 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-4 ,2147483648 ,-4 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,64 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-6 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-6 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-6 ,2147483648 ,-6 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-8 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,65 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-8 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-8 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-8 ,2147483648 ,-8 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-10 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-10 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-10 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-10 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-10 ,2147483648 ,-10 ,2147483648 ,66 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-12 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-12 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-12 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-12 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-12 ,2147483648 ,-12 ,2147483648 ,-12 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,69 ,2147483648 ,2147483648 ,2147483648 ,70 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,68 ,2147483648 ,72 ,2147483648 ,-13 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,71 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-13 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-13 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-13 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-13 ,2147483648 ,-13 ,2147483648 ,-13 ,2147483648 ,67 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,-20 ,2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-20 ,2147483648 ,-20 ,2147483648 ,-20 ,2147483648 ,-20 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-21 ,2147483648 ,2147483648 ,2147483648 ,-21 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-21 ,2147483648 ,-21 ,2147483648 ,-21 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-21 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-21 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-21 ,2147483648 ,74 ,2147483648 ,2147483648 ,2147483648 ,-21 ,2147483648 ,2147483648 ,-21 ,2147483648 ,2147483648 ,-21 ,2147483648 ,-21 ,2147483648 ,-21 ,2147483648 ,-21 ,2147483648 ,2147483648 ,73 }, + {2147483648 ,-24 ,76 ,2147483648 ,2147483648 ,-24 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-24 ,2147483648 ,-24 ,2147483648 ,-24 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-24 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-24 ,75 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-24 ,2147483648 ,-24 ,2147483648 ,2147483648 ,2147483648 ,-24 ,2147483648 ,2147483648 ,-24 ,2147483648 ,2147483648 ,-24 ,2147483648 ,-24 ,2147483648 ,-24 ,2147483648 ,-24 ,2147483648 ,2147483648 ,-24 }, + {2147483648 ,-27 ,-27 ,2147483648 ,2147483648 ,-27 ,2147483648 ,78 ,2147483648 ,79 ,2147483648 ,-27 ,2147483648 ,-27 ,2147483648 ,-27 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-27 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-27 ,-27 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,77 ,-27 ,2147483648 ,-27 ,2147483648 ,2147483648 ,2147483648 ,-27 ,2147483648 ,2147483648 ,-27 ,2147483648 ,2147483648 ,-27 ,2147483648 ,-27 ,2147483648 ,-27 ,2147483648 ,-27 ,2147483648 ,2147483648 ,-27 }, + {2147483648 ,-31 ,-31 ,2147483648 ,2147483648 ,-31 ,2147483648 ,-31 ,2147483648 ,-31 ,2147483648 ,-31 ,2147483648 ,-31 ,2147483648 ,-31 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-31 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-31 ,-31 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-31 ,-31 ,2147483648 ,-31 ,2147483648 ,2147483648 ,2147483648 ,-31 ,2147483648 ,2147483648 ,-31 ,2147483648 ,2147483648 ,-31 ,2147483648 ,-31 ,2147483648 ,-31 ,2147483648 ,-31 ,2147483648 ,2147483648 ,-31 }, + {2147483648 ,-32 ,-32 ,2147483648 ,2147483648 ,-32 ,2147483648 ,-32 ,2147483648 ,-32 ,2147483648 ,-32 ,2147483648 ,-32 ,2147483648 ,-32 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-32 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-32 ,-32 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-32 ,-32 ,2147483648 ,-32 ,2147483648 ,2147483648 ,2147483648 ,-32 ,2147483648 ,2147483648 ,-32 ,2147483648 ,2147483648 ,-32 ,2147483648 ,-32 ,2147483648 ,-32 ,2147483648 ,-32 ,2147483648 ,2147483648 ,-32 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,80 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-79 ,-79 ,2147483648 ,2147483648 ,-79 ,2147483648 ,-79 ,2147483648 ,-79 ,2147483648 ,-79 ,2147483648 ,-79 ,2147483648 ,-79 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-79 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-79 ,-79 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-79 ,-79 ,2147483648 ,-79 ,2147483648 ,2147483648 ,2147483648 ,-79 ,2147483648 ,2147483648 ,-79 ,2147483648 ,2147483648 ,-79 ,2147483648 ,-79 ,2147483648 ,-79 ,2147483648 ,-79 ,2147483648 ,2147483648 ,-79 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,81 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,82 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,83 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,84 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {43 ,2147483648 ,2147483648 ,49 ,36 ,2147483648 ,28 ,2147483648 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,2147483648 ,35 ,2147483648 ,2147483648 ,39 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,86 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,87 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,88 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,89 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {43 ,2147483648 ,2147483648 ,49 ,36 ,2147483648 ,28 ,2147483648 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,2147483648 ,35 ,2147483648 ,2147483648 ,39 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,91 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,92 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,93 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-81 ,-81 ,2147483648 ,2147483648 ,-81 ,2147483648 ,-81 ,2147483648 ,-81 ,2147483648 ,-81 ,2147483648 ,-81 ,2147483648 ,-81 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-81 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-81 ,-81 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-81 ,-81 ,2147483648 ,-81 ,2147483648 ,2147483648 ,2147483648 ,-81 ,2147483648 ,2147483648 ,-81 ,2147483648 ,2147483648 ,-81 ,2147483648 ,-81 ,2147483648 ,-81 ,2147483648 ,-81 ,2147483648 ,2147483648 ,-81 }, + {2147483648 ,-75 ,-75 ,2147483648 ,2147483648 ,-75 ,2147483648 ,-75 ,2147483648 ,-75 ,2147483648 ,-75 ,2147483648 ,-75 ,2147483648 ,-75 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-75 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-75 ,-75 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-75 ,-75 ,2147483648 ,-75 ,2147483648 ,2147483648 ,2147483648 ,-75 ,2147483648 ,2147483648 ,-75 ,2147483648 ,2147483648 ,-75 ,2147483648 ,-75 ,2147483648 ,-75 ,2147483648 ,-75 ,2147483648 ,2147483648 ,-75 }, + {43 ,2147483648 ,2147483648 ,49 ,36 ,2147483648 ,28 ,2147483648 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,2147483648 ,35 ,2147483648 ,2147483648 ,39 ,2147483648 }, + {2147483648 ,-80 ,-80 ,2147483648 ,2147483648 ,-80 ,2147483648 ,-80 ,2147483648 ,-80 ,2147483648 ,-80 ,2147483648 ,-80 ,2147483648 ,-80 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-80 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-80 ,-80 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-80 ,-80 ,2147483648 ,-80 ,2147483648 ,2147483648 ,2147483648 ,-80 ,2147483648 ,2147483648 ,-80 ,2147483648 ,2147483648 ,-80 ,2147483648 ,-80 ,2147483648 ,-80 ,2147483648 ,-80 ,2147483648 ,2147483648 ,-80 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,95 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,96 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {43 ,2147483648 ,2147483648 ,49 ,36 ,2147483648 ,28 ,2147483648 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,2147483648 ,35 ,2147483648 ,2147483648 ,39 ,2147483648 }, + {2147483648 ,-76 ,-76 ,2147483648 ,2147483648 ,-76 ,2147483648 ,-76 ,2147483648 ,-76 ,2147483648 ,-76 ,2147483648 ,-76 ,2147483648 ,-76 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-76 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-76 ,-76 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-76 ,-76 ,2147483648 ,-76 ,2147483648 ,2147483648 ,2147483648 ,-76 ,2147483648 ,2147483648 ,-76 ,2147483648 ,2147483648 ,-76 ,2147483648 ,-76 ,2147483648 ,-76 ,2147483648 ,-76 ,2147483648 ,2147483648 ,-76 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,98 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-74 ,-74 ,2147483648 ,2147483648 ,-74 ,2147483648 ,-74 ,2147483648 ,-74 ,2147483648 ,-74 ,2147483648 ,-74 ,2147483648 ,-74 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-74 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-74 ,-74 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-74 ,-74 ,2147483648 ,-74 ,2147483648 ,2147483648 ,2147483648 ,-74 ,2147483648 ,2147483648 ,-74 ,2147483648 ,2147483648 ,-74 ,2147483648 ,-74 ,2147483648 ,-74 ,2147483648 ,-74 ,2147483648 ,2147483648 ,-74 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,99 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,100 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,101 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,102 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {43 ,2147483648 ,2147483648 ,49 ,36 ,2147483648 ,28 ,2147483648 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,2147483648 ,35 ,2147483648 ,2147483648 ,39 ,2147483648 }, + {2147483648 ,-73 ,-73 ,2147483648 ,2147483648 ,-73 ,2147483648 ,-73 ,2147483648 ,-73 ,2147483648 ,-73 ,2147483648 ,-73 ,2147483648 ,-73 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-73 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-73 ,-73 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-73 ,-73 ,2147483648 ,-73 ,2147483648 ,2147483648 ,2147483648 ,-73 ,2147483648 ,2147483648 ,-73 ,2147483648 ,2147483648 ,-73 ,2147483648 ,-73 ,2147483648 ,-73 ,2147483648 ,-73 ,2147483648 ,2147483648 ,-73 }, + {2147483648 ,-77 ,-77 ,2147483648 ,2147483648 ,-77 ,2147483648 ,-77 ,2147483648 ,-77 ,2147483648 ,-77 ,2147483648 ,-77 ,2147483648 ,-77 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-77 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-77 ,-77 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-77 ,-77 ,2147483648 ,-77 ,2147483648 ,2147483648 ,2147483648 ,-77 ,2147483648 ,2147483648 ,-77 ,2147483648 ,2147483648 ,-77 ,2147483648 ,-77 ,2147483648 ,-77 ,2147483648 ,-77 ,2147483648 ,2147483648 ,-77 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,105 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,106 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,107 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,108 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,109 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-78 ,-78 ,2147483648 ,2147483648 ,-78 ,2147483648 ,-78 ,2147483648 ,-78 ,2147483648 ,-78 ,2147483648 ,-78 ,2147483648 ,-78 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-78 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-78 ,-78 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-78 ,-78 ,2147483648 ,-78 ,2147483648 ,2147483648 ,2147483648 ,-78 ,2147483648 ,2147483648 ,-78 ,2147483648 ,2147483648 ,-78 ,2147483648 ,-78 ,2147483648 ,-78 ,2147483648 ,-78 ,2147483648 ,2147483648 ,-78 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,110 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,111 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,112 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,113 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,114 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,115 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,116 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,138 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,142 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,142 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,-35 ,-35 ,2147483648 ,2147483648 ,-35 ,2147483648 ,-35 ,2147483648 ,-35 ,2147483648 ,-35 ,2147483648 ,-35 ,2147483648 ,-35 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-35 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-35 ,-35 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-35 ,-35 ,2147483648 ,-35 ,2147483648 ,2147483648 ,2147483648 ,-35 ,2147483648 ,2147483648 ,-35 ,2147483648 ,2147483648 ,-35 ,2147483648 ,-35 ,2147483648 ,-35 ,2147483648 ,-35 ,2147483648 ,2147483648 ,-35 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,-37 ,-37 ,2147483648 ,2147483648 ,-37 ,2147483648 ,-37 ,2147483648 ,-37 ,2147483648 ,-37 ,2147483648 ,-37 ,2147483648 ,-37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-37 ,-37 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-37 ,-37 ,2147483648 ,-37 ,2147483648 ,2147483648 ,2147483648 ,-37 ,2147483648 ,2147483648 ,-37 ,2147483648 ,2147483648 ,-37 ,2147483648 ,-37 ,2147483648 ,-37 ,2147483648 ,-37 ,2147483648 ,2147483648 ,-37 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,-36 ,-36 ,2147483648 ,2147483648 ,-36 ,2147483648 ,-36 ,2147483648 ,-36 ,2147483648 ,-36 ,2147483648 ,-36 ,2147483648 ,-36 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-36 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-36 ,-36 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-36 ,-36 ,2147483648 ,-36 ,2147483648 ,2147483648 ,2147483648 ,-36 ,2147483648 ,2147483648 ,-36 ,2147483648 ,2147483648 ,-36 ,2147483648 ,-36 ,2147483648 ,-36 ,2147483648 ,-36 ,2147483648 ,2147483648 ,-36 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,138 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,-33 ,-33 ,2147483648 ,2147483648 ,-33 ,2147483648 ,-33 ,2147483648 ,-33 ,2147483648 ,-33 ,2147483648 ,-33 ,2147483648 ,-33 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-33 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-33 ,-33 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-33 ,-33 ,2147483648 ,-33 ,2147483648 ,2147483648 ,2147483648 ,-33 ,2147483648 ,2147483648 ,-33 ,2147483648 ,2147483648 ,-33 ,2147483648 ,-33 ,2147483648 ,-33 ,2147483648 ,-33 ,2147483648 ,2147483648 ,-33 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,142 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,-34 ,-34 ,2147483648 ,2147483648 ,-34 ,2147483648 ,-34 ,2147483648 ,-34 ,2147483648 ,-34 ,2147483648 ,-34 ,2147483648 ,-34 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-34 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-34 ,-34 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-34 ,-34 ,2147483648 ,-34 ,2147483648 ,2147483648 ,2147483648 ,-34 ,2147483648 ,2147483648 ,-34 ,2147483648 ,2147483648 ,-34 ,2147483648 ,-34 ,2147483648 ,-34 ,2147483648 ,-34 ,2147483648 ,2147483648 ,-34 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,162 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,138 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,142 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-3 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,63 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-3 ,2147483648 ,-3 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,64 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-5 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-5 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-5 ,2147483648 ,-5 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-7 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,65 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-7 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-7 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-7 ,2147483648 ,-7 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-9 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-9 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-9 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-9 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-9 ,2147483648 ,-9 ,2147483648 ,66 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-11 ,2147483648 ,-11 ,2147483648 ,-11 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,-14 ,2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-14 ,2147483648 ,-14 ,2147483648 ,-14 ,2147483648 ,-14 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,-17 ,2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-17 ,2147483648 ,-17 ,2147483648 ,-17 ,2147483648 ,-17 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,-15 ,2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-15 ,2147483648 ,-15 ,2147483648 ,-15 ,2147483648 ,-15 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,-19 ,2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-19 ,2147483648 ,-19 ,2147483648 ,-19 ,2147483648 ,-19 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,-16 ,2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-16 ,2147483648 ,-16 ,2147483648 ,-16 ,2147483648 ,-16 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,-18 ,2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-18 ,2147483648 ,-18 ,2147483648 ,-18 ,2147483648 ,-18 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-22 ,76 ,2147483648 ,2147483648 ,-22 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-22 ,2147483648 ,-22 ,2147483648 ,-22 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-22 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-22 ,75 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-22 ,2147483648 ,-22 ,2147483648 ,2147483648 ,2147483648 ,-22 ,2147483648 ,2147483648 ,-22 ,2147483648 ,2147483648 ,-22 ,2147483648 ,-22 ,2147483648 ,-22 ,2147483648 ,-22 ,2147483648 ,2147483648 ,-22 }, + {2147483648 ,-23 ,76 ,2147483648 ,2147483648 ,-23 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-23 ,2147483648 ,-23 ,2147483648 ,-23 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-23 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-23 ,75 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-23 ,2147483648 ,-23 ,2147483648 ,2147483648 ,2147483648 ,-23 ,2147483648 ,2147483648 ,-23 ,2147483648 ,2147483648 ,-23 ,2147483648 ,-23 ,2147483648 ,-23 ,2147483648 ,-23 ,2147483648 ,2147483648 ,-23 }, + {2147483648 ,-26 ,-26 ,2147483648 ,2147483648 ,-26 ,2147483648 ,78 ,2147483648 ,79 ,2147483648 ,-26 ,2147483648 ,-26 ,2147483648 ,-26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-26 ,-26 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,77 ,-26 ,2147483648 ,-26 ,2147483648 ,2147483648 ,2147483648 ,-26 ,2147483648 ,2147483648 ,-26 ,2147483648 ,2147483648 ,-26 ,2147483648 ,-26 ,2147483648 ,-26 ,2147483648 ,-26 ,2147483648 ,2147483648 ,-26 }, + {2147483648 ,-25 ,-25 ,2147483648 ,2147483648 ,-25 ,2147483648 ,78 ,2147483648 ,79 ,2147483648 ,-25 ,2147483648 ,-25 ,2147483648 ,-25 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-25 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-25 ,-25 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,77 ,-25 ,2147483648 ,-25 ,2147483648 ,2147483648 ,2147483648 ,-25 ,2147483648 ,2147483648 ,-25 ,2147483648 ,2147483648 ,-25 ,2147483648 ,-25 ,2147483648 ,-25 ,2147483648 ,-25 ,2147483648 ,2147483648 ,-25 }, + {2147483648 ,-29 ,-29 ,2147483648 ,2147483648 ,-29 ,2147483648 ,-29 ,2147483648 ,-29 ,2147483648 ,-29 ,2147483648 ,-29 ,2147483648 ,-29 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-29 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-29 ,-29 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-29 ,-29 ,2147483648 ,-29 ,2147483648 ,2147483648 ,2147483648 ,-29 ,2147483648 ,2147483648 ,-29 ,2147483648 ,2147483648 ,-29 ,2147483648 ,-29 ,2147483648 ,-29 ,2147483648 ,-29 ,2147483648 ,2147483648 ,-29 }, + {2147483648 ,-30 ,-30 ,2147483648 ,2147483648 ,-30 ,2147483648 ,-30 ,2147483648 ,-30 ,2147483648 ,-30 ,2147483648 ,-30 ,2147483648 ,-30 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-30 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-30 ,-30 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-30 ,-30 ,2147483648 ,-30 ,2147483648 ,2147483648 ,2147483648 ,-30 ,2147483648 ,2147483648 ,-30 ,2147483648 ,2147483648 ,-30 ,2147483648 ,-30 ,2147483648 ,-30 ,2147483648 ,-30 ,2147483648 ,2147483648 ,-30 }, + {2147483648 ,-28 ,-28 ,2147483648 ,2147483648 ,-28 ,2147483648 ,-28 ,2147483648 ,-28 ,2147483648 ,-28 ,2147483648 ,-28 ,2147483648 ,-28 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-28 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-28 ,-28 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-28 ,-28 ,2147483648 ,-28 ,2147483648 ,2147483648 ,2147483648 ,-28 ,2147483648 ,2147483648 ,-28 ,2147483648 ,2147483648 ,-28 ,2147483648 ,-28 ,2147483648 ,-28 ,2147483648 ,-28 ,2147483648 ,2147483648 ,-28 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,176 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-87 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-87 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,177 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-83 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-83 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-84 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-84 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-85 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-85 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,178 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-82 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-82 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,179 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,180 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,181 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,182 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,183 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,184 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,185 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,186 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,187 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,188 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,189 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-86 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-86 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,190 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,191 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,192 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,193 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,194 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,195 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,196 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-72 ,-72 ,2147483648 ,2147483648 ,-72 ,2147483648 ,-72 ,2147483648 ,-72 ,2147483648 ,-72 ,2147483648 ,-72 ,2147483648 ,-72 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-72 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-72 ,-72 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-72 ,-72 ,2147483648 ,-72 ,2147483648 ,2147483648 ,2147483648 ,-72 ,2147483648 ,2147483648 ,-72 ,2147483648 ,2147483648 ,-72 ,2147483648 ,-72 ,2147483648 ,-72 ,2147483648 ,-72 ,2147483648 ,2147483648 ,-72 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,197 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,198 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,199 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,200 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,201 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,202 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,203 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,204 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,205 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,206 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,207 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,208 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,209 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,138 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,142 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,142 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,-46 ,-46 ,2147483648 ,2147483648 ,-46 ,2147483648 ,-46 ,2147483648 ,-46 ,2147483648 ,-46 ,2147483648 ,-46 ,2147483648 ,-46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-46 ,-46 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-46 ,-46 ,2147483648 ,-46 ,2147483648 ,2147483648 ,2147483648 ,-46 ,2147483648 ,2147483648 ,-46 ,2147483648 ,2147483648 ,-46 ,2147483648 ,-46 ,2147483648 ,-46 ,2147483648 ,-46 ,2147483648 ,2147483648 ,-46 }, + {2147483648 ,-41 ,-41 ,2147483648 ,2147483648 ,-41 ,2147483648 ,-41 ,2147483648 ,-41 ,2147483648 ,-41 ,2147483648 ,-41 ,2147483648 ,-41 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-41 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-41 ,-41 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-41 ,-41 ,2147483648 ,-41 ,2147483648 ,2147483648 ,2147483648 ,-41 ,2147483648 ,2147483648 ,-41 ,2147483648 ,2147483648 ,-41 ,2147483648 ,-41 ,2147483648 ,-41 ,2147483648 ,-41 ,2147483648 ,2147483648 ,-41 }, + {2147483648 ,-43 ,-43 ,2147483648 ,2147483648 ,-43 ,2147483648 ,-43 ,2147483648 ,-43 ,2147483648 ,-43 ,2147483648 ,-43 ,2147483648 ,-43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-43 ,-43 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-43 ,-43 ,2147483648 ,-43 ,2147483648 ,2147483648 ,2147483648 ,-43 ,2147483648 ,2147483648 ,-43 ,2147483648 ,2147483648 ,-43 ,2147483648 ,-43 ,2147483648 ,-43 ,2147483648 ,-43 ,2147483648 ,2147483648 ,-43 }, + {2147483648 ,-44 ,-44 ,2147483648 ,2147483648 ,-44 ,2147483648 ,-44 ,2147483648 ,-44 ,2147483648 ,-44 ,2147483648 ,-44 ,2147483648 ,-44 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-44 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-44 ,-44 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-44 ,-44 ,2147483648 ,-44 ,2147483648 ,2147483648 ,2147483648 ,-44 ,2147483648 ,2147483648 ,-44 ,2147483648 ,2147483648 ,-44 ,2147483648 ,-44 ,2147483648 ,-44 ,2147483648 ,-44 ,2147483648 ,2147483648 ,-44 }, + {2147483648 ,-39 ,-39 ,2147483648 ,2147483648 ,-39 ,2147483648 ,-39 ,2147483648 ,-39 ,2147483648 ,-39 ,2147483648 ,-39 ,2147483648 ,-39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-39 ,-39 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-39 ,-39 ,2147483648 ,-39 ,2147483648 ,2147483648 ,2147483648 ,-39 ,2147483648 ,2147483648 ,-39 ,2147483648 ,2147483648 ,-39 ,2147483648 ,-39 ,2147483648 ,-39 ,2147483648 ,-39 ,2147483648 ,2147483648 ,-39 }, + {2147483648 ,-55 ,-55 ,2147483648 ,2147483648 ,-55 ,2147483648 ,-55 ,2147483648 ,-55 ,2147483648 ,-55 ,2147483648 ,-55 ,2147483648 ,-55 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-55 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-55 ,-55 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-55 ,-55 ,2147483648 ,-55 ,2147483648 ,2147483648 ,2147483648 ,-55 ,2147483648 ,2147483648 ,-55 ,2147483648 ,2147483648 ,-55 ,2147483648 ,-55 ,2147483648 ,-55 ,2147483648 ,-55 ,2147483648 ,2147483648 ,-55 }, + {2147483648 ,-56 ,-56 ,2147483648 ,2147483648 ,-56 ,2147483648 ,-56 ,2147483648 ,-56 ,2147483648 ,-56 ,2147483648 ,-56 ,2147483648 ,-56 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-56 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-56 ,-56 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-56 ,-56 ,2147483648 ,-56 ,2147483648 ,2147483648 ,2147483648 ,-56 ,2147483648 ,2147483648 ,-56 ,2147483648 ,2147483648 ,-56 ,2147483648 ,-56 ,2147483648 ,-56 ,2147483648 ,-56 ,2147483648 ,2147483648 ,-56 }, + {2147483648 ,-51 ,-51 ,2147483648 ,2147483648 ,-51 ,2147483648 ,-51 ,2147483648 ,-51 ,2147483648 ,-51 ,2147483648 ,-51 ,2147483648 ,-51 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-51 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-51 ,-51 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-51 ,-51 ,2147483648 ,-51 ,2147483648 ,2147483648 ,2147483648 ,-51 ,2147483648 ,2147483648 ,-51 ,2147483648 ,2147483648 ,-51 ,2147483648 ,-51 ,2147483648 ,-51 ,2147483648 ,-51 ,2147483648 ,2147483648 ,-51 }, + {2147483648 ,-57 ,-57 ,2147483648 ,2147483648 ,-57 ,2147483648 ,-57 ,2147483648 ,-57 ,2147483648 ,-57 ,2147483648 ,-57 ,2147483648 ,-57 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-57 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-57 ,-57 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-57 ,-57 ,2147483648 ,-57 ,2147483648 ,2147483648 ,2147483648 ,-57 ,2147483648 ,2147483648 ,-57 ,2147483648 ,2147483648 ,-57 ,2147483648 ,-57 ,2147483648 ,-57 ,2147483648 ,-57 ,2147483648 ,2147483648 ,-57 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,138 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,-38 ,-38 ,2147483648 ,2147483648 ,-38 ,2147483648 ,-38 ,2147483648 ,-38 ,2147483648 ,-38 ,2147483648 ,-38 ,2147483648 ,-38 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-38 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-38 ,-38 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-38 ,-38 ,2147483648 ,-38 ,2147483648 ,2147483648 ,2147483648 ,-38 ,2147483648 ,2147483648 ,-38 ,2147483648 ,2147483648 ,-38 ,2147483648 ,-38 ,2147483648 ,-38 ,2147483648 ,-38 ,2147483648 ,2147483648 ,-38 }, + {2147483648 ,-48 ,-48 ,2147483648 ,2147483648 ,-48 ,2147483648 ,-48 ,2147483648 ,-48 ,2147483648 ,-48 ,2147483648 ,-48 ,2147483648 ,-48 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-48 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-48 ,-48 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-48 ,-48 ,2147483648 ,-48 ,2147483648 ,2147483648 ,2147483648 ,-48 ,2147483648 ,2147483648 ,-48 ,2147483648 ,2147483648 ,-48 ,2147483648 ,-48 ,2147483648 ,-48 ,2147483648 ,-48 ,2147483648 ,2147483648 ,-48 }, + {2147483648 ,-65 ,-65 ,2147483648 ,2147483648 ,-65 ,2147483648 ,-65 ,2147483648 ,-65 ,2147483648 ,-65 ,2147483648 ,-65 ,2147483648 ,-65 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-65 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-65 ,-65 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-65 ,-65 ,2147483648 ,-65 ,2147483648 ,2147483648 ,2147483648 ,-65 ,2147483648 ,2147483648 ,-65 ,2147483648 ,2147483648 ,-65 ,2147483648 ,-65 ,2147483648 ,-65 ,2147483648 ,-65 ,2147483648 ,2147483648 ,-65 }, + {2147483648 ,-42 ,-42 ,2147483648 ,2147483648 ,-42 ,2147483648 ,-42 ,2147483648 ,-42 ,2147483648 ,-42 ,2147483648 ,-42 ,2147483648 ,-42 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-42 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-42 ,-42 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-42 ,-42 ,2147483648 ,-42 ,2147483648 ,2147483648 ,2147483648 ,-42 ,2147483648 ,2147483648 ,-42 ,2147483648 ,2147483648 ,-42 ,2147483648 ,-42 ,2147483648 ,-42 ,2147483648 ,-42 ,2147483648 ,2147483648 ,-42 }, + {2147483648 ,-45 ,-45 ,2147483648 ,2147483648 ,-45 ,2147483648 ,-45 ,2147483648 ,-45 ,2147483648 ,-45 ,2147483648 ,-45 ,2147483648 ,-45 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-45 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-45 ,-45 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-45 ,-45 ,2147483648 ,-45 ,2147483648 ,2147483648 ,2147483648 ,-45 ,2147483648 ,2147483648 ,-45 ,2147483648 ,2147483648 ,-45 ,2147483648 ,-45 ,2147483648 ,-45 ,2147483648 ,-45 ,2147483648 ,2147483648 ,-45 }, + {2147483648 ,-40 ,-40 ,2147483648 ,2147483648 ,-40 ,2147483648 ,-40 ,2147483648 ,-40 ,2147483648 ,-40 ,2147483648 ,-40 ,2147483648 ,-40 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-40 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-40 ,-40 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-40 ,-40 ,2147483648 ,-40 ,2147483648 ,2147483648 ,2147483648 ,-40 ,2147483648 ,2147483648 ,-40 ,2147483648 ,2147483648 ,-40 ,2147483648 ,-40 ,2147483648 ,-40 ,2147483648 ,-40 ,2147483648 ,2147483648 ,-40 }, + {2147483648 ,-52 ,-52 ,2147483648 ,2147483648 ,-52 ,2147483648 ,-52 ,2147483648 ,-52 ,2147483648 ,-52 ,2147483648 ,-52 ,2147483648 ,-52 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-52 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-52 ,-52 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-52 ,-52 ,2147483648 ,-52 ,2147483648 ,2147483648 ,2147483648 ,-52 ,2147483648 ,2147483648 ,-52 ,2147483648 ,2147483648 ,-52 ,2147483648 ,-52 ,2147483648 ,-52 ,2147483648 ,-52 ,2147483648 ,2147483648 ,-52 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,-49 ,-49 ,2147483648 ,2147483648 ,-49 ,2147483648 ,-49 ,2147483648 ,-49 ,2147483648 ,-49 ,2147483648 ,-49 ,2147483648 ,-49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-49 ,-49 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-49 ,-49 ,2147483648 ,-49 ,2147483648 ,2147483648 ,2147483648 ,-49 ,2147483648 ,2147483648 ,-49 ,2147483648 ,2147483648 ,-49 ,2147483648 ,-49 ,2147483648 ,-49 ,2147483648 ,-49 ,2147483648 ,2147483648 ,-49 }, + {2147483648 ,-69 ,-69 ,2147483648 ,2147483648 ,-69 ,2147483648 ,-69 ,2147483648 ,-69 ,2147483648 ,-69 ,2147483648 ,-69 ,2147483648 ,-69 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-69 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-69 ,-69 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-69 ,-69 ,2147483648 ,-69 ,2147483648 ,2147483648 ,2147483648 ,-69 ,2147483648 ,2147483648 ,-69 ,2147483648 ,2147483648 ,-69 ,2147483648 ,-69 ,2147483648 ,-69 ,2147483648 ,-69 ,2147483648 ,2147483648 ,-69 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,-47 ,-47 ,2147483648 ,2147483648 ,-47 ,2147483648 ,-47 ,2147483648 ,-47 ,2147483648 ,-47 ,2147483648 ,-47 ,2147483648 ,-47 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-47 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-47 ,-47 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-47 ,-47 ,2147483648 ,-47 ,2147483648 ,2147483648 ,2147483648 ,-47 ,2147483648 ,2147483648 ,-47 ,2147483648 ,2147483648 ,-47 ,2147483648 ,-47 ,2147483648 ,-47 ,2147483648 ,-47 ,2147483648 ,2147483648 ,-47 }, + {2147483648 ,-50 ,-50 ,2147483648 ,2147483648 ,-50 ,2147483648 ,-50 ,2147483648 ,-50 ,2147483648 ,-50 ,2147483648 ,-50 ,2147483648 ,-50 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-50 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-50 ,-50 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-50 ,-50 ,2147483648 ,-50 ,2147483648 ,2147483648 ,2147483648 ,-50 ,2147483648 ,2147483648 ,-50 ,2147483648 ,2147483648 ,-50 ,2147483648 ,-50 ,2147483648 ,-50 ,2147483648 ,-50 ,2147483648 ,2147483648 ,-50 }, + {2147483648 ,-53 ,-53 ,2147483648 ,2147483648 ,-53 ,2147483648 ,-53 ,2147483648 ,-53 ,2147483648 ,-53 ,2147483648 ,-53 ,2147483648 ,-53 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-53 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-53 ,-53 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-53 ,-53 ,2147483648 ,-53 ,2147483648 ,2147483648 ,2147483648 ,-53 ,2147483648 ,2147483648 ,-53 ,2147483648 ,2147483648 ,-53 ,2147483648 ,-53 ,2147483648 ,-53 ,2147483648 ,-53 ,2147483648 ,2147483648 ,-53 }, + {2147483648 ,-54 ,-54 ,2147483648 ,2147483648 ,-54 ,2147483648 ,-54 ,2147483648 ,-54 ,2147483648 ,-54 ,2147483648 ,-54 ,2147483648 ,-54 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-54 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-54 ,-54 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-54 ,-54 ,2147483648 ,-54 ,2147483648 ,2147483648 ,2147483648 ,-54 ,2147483648 ,2147483648 ,-54 ,2147483648 ,2147483648 ,-54 ,2147483648 ,-54 ,2147483648 ,-54 ,2147483648 ,-54 ,2147483648 ,2147483648 ,-54 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,142 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,222 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,223 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,224 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,225 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,226 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,227 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,228 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,229 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,230 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,231 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,232 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,233 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-63 ,-63 ,2147483648 ,2147483648 ,-63 ,2147483648 ,-63 ,2147483648 ,-63 ,2147483648 ,-63 ,2147483648 ,-63 ,2147483648 ,-63 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-63 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-63 ,-63 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-63 ,-63 ,2147483648 ,-63 ,2147483648 ,2147483648 ,2147483648 ,-63 ,2147483648 ,2147483648 ,-63 ,2147483648 ,2147483648 ,-63 ,2147483648 ,-63 ,2147483648 ,-63 ,2147483648 ,-63 ,2147483648 ,2147483648 ,-63 }, + {2147483648 ,-70 ,-70 ,2147483648 ,2147483648 ,-70 ,2147483648 ,-70 ,2147483648 ,-70 ,2147483648 ,-70 ,2147483648 ,-70 ,2147483648 ,-70 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-70 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-70 ,-70 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-70 ,-70 ,2147483648 ,-70 ,2147483648 ,2147483648 ,2147483648 ,-70 ,2147483648 ,2147483648 ,-70 ,2147483648 ,2147483648 ,-70 ,2147483648 ,-70 ,2147483648 ,-70 ,2147483648 ,-70 ,2147483648 ,2147483648 ,-70 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,-61 ,-61 ,2147483648 ,2147483648 ,-61 ,2147483648 ,-61 ,2147483648 ,-61 ,2147483648 ,-61 ,2147483648 ,-61 ,2147483648 ,-61 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-61 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-61 ,-61 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-61 ,-61 ,2147483648 ,-61 ,2147483648 ,2147483648 ,2147483648 ,-61 ,2147483648 ,2147483648 ,-61 ,2147483648 ,2147483648 ,-61 ,2147483648 ,-61 ,2147483648 ,-61 ,2147483648 ,-61 ,2147483648 ,2147483648 ,-61 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,-58 ,-58 ,2147483648 ,2147483648 ,-58 ,2147483648 ,-58 ,2147483648 ,-58 ,2147483648 ,-58 ,2147483648 ,-58 ,2147483648 ,-58 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-58 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-58 ,-58 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-58 ,-58 ,2147483648 ,-58 ,2147483648 ,2147483648 ,2147483648 ,-58 ,2147483648 ,2147483648 ,-58 ,2147483648 ,2147483648 ,-58 ,2147483648 ,-58 ,2147483648 ,-58 ,2147483648 ,-58 ,2147483648 ,2147483648 ,-58 }, + {43 ,2147483648 ,45 ,49 ,36 ,2147483648 ,28 ,33 ,34 ,2147483648 ,54 ,2147483648 ,26 ,2147483648 ,53 ,2147483648 ,61 ,23 ,29 ,52 ,25 ,2147483648 ,38 ,59 ,18 ,50 ,20 ,46 ,2147483648 ,2147483648 ,37 ,2147483648 ,24 ,48 ,41 ,56 ,44 ,57 ,32 ,60 ,55 ,40 ,2147483648 ,2147483648 ,16 ,2147483648 ,42 ,47 ,19 ,2147483648 ,31 ,30 ,2147483648 ,58 ,51 ,2147483648 ,17 ,2147483648 ,21 ,27 ,35 ,2147483648 ,22 ,39 ,2147483648 }, + {2147483648 ,-59 ,-59 ,2147483648 ,2147483648 ,-59 ,2147483648 ,-59 ,2147483648 ,-59 ,2147483648 ,-59 ,2147483648 ,-59 ,2147483648 ,-59 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-59 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-59 ,-59 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-59 ,-59 ,2147483648 ,-59 ,2147483648 ,2147483648 ,2147483648 ,-59 ,2147483648 ,2147483648 ,-59 ,2147483648 ,2147483648 ,-59 ,2147483648 ,-59 ,2147483648 ,-59 ,2147483648 ,-59 ,2147483648 ,2147483648 ,-59 }, + {2147483648 ,-62 ,-62 ,2147483648 ,2147483648 ,-62 ,2147483648 ,-62 ,2147483648 ,-62 ,2147483648 ,-62 ,2147483648 ,-62 ,2147483648 ,-62 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-62 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-62 ,-62 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-62 ,-62 ,2147483648 ,-62 ,2147483648 ,2147483648 ,2147483648 ,-62 ,2147483648 ,2147483648 ,-62 ,2147483648 ,2147483648 ,-62 ,2147483648 ,-62 ,2147483648 ,-62 ,2147483648 ,-62 ,2147483648 ,2147483648 ,-62 }, + {2147483648 ,-66 ,-66 ,2147483648 ,2147483648 ,-66 ,2147483648 ,-66 ,2147483648 ,-66 ,2147483648 ,-66 ,2147483648 ,-66 ,2147483648 ,-66 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-66 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-66 ,-66 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-66 ,-66 ,2147483648 ,-66 ,2147483648 ,2147483648 ,2147483648 ,-66 ,2147483648 ,2147483648 ,-66 ,2147483648 ,2147483648 ,-66 ,2147483648 ,-66 ,2147483648 ,-66 ,2147483648 ,-66 ,2147483648 ,2147483648 ,-66 }, + {2147483648 ,-60 ,-60 ,2147483648 ,2147483648 ,-60 ,2147483648 ,-60 ,2147483648 ,-60 ,2147483648 ,-60 ,2147483648 ,-60 ,2147483648 ,-60 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-60 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-60 ,-60 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-60 ,-60 ,2147483648 ,-60 ,2147483648 ,2147483648 ,2147483648 ,-60 ,2147483648 ,2147483648 ,-60 ,2147483648 ,2147483648 ,-60 ,2147483648 ,-60 ,2147483648 ,-60 ,2147483648 ,-60 ,2147483648 ,2147483648 ,-60 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,238 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,239 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,240 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,241 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 }, + {2147483648 ,-68 ,-68 ,2147483648 ,2147483648 ,-68 ,2147483648 ,-68 ,2147483648 ,-68 ,2147483648 ,-68 ,2147483648 ,-68 ,2147483648 ,-68 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-68 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-68 ,-68 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-68 ,-68 ,2147483648 ,-68 ,2147483648 ,2147483648 ,2147483648 ,-68 ,2147483648 ,2147483648 ,-68 ,2147483648 ,2147483648 ,-68 ,2147483648 ,-68 ,2147483648 ,-68 ,2147483648 ,-68 ,2147483648 ,2147483648 ,-68 }, + {2147483648 ,-67 ,-67 ,2147483648 ,2147483648 ,-67 ,2147483648 ,-67 ,2147483648 ,-67 ,2147483648 ,-67 ,2147483648 ,-67 ,2147483648 ,-67 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-67 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-67 ,-67 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-67 ,-67 ,2147483648 ,-67 ,2147483648 ,2147483648 ,2147483648 ,-67 ,2147483648 ,2147483648 ,-67 ,2147483648 ,2147483648 ,-67 ,2147483648 ,-67 ,2147483648 ,-67 ,2147483648 ,-67 ,2147483648 ,2147483648 ,-67 }, + {2147483648 ,-71 ,-71 ,2147483648 ,2147483648 ,-71 ,2147483648 ,-71 ,2147483648 ,-71 ,2147483648 ,-71 ,2147483648 ,-71 ,2147483648 ,-71 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-71 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-71 ,-71 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-71 ,-71 ,2147483648 ,-71 ,2147483648 ,2147483648 ,2147483648 ,-71 ,2147483648 ,2147483648 ,-71 ,2147483648 ,2147483648 ,-71 ,2147483648 ,-71 ,2147483648 ,-71 ,2147483648 ,-71 ,2147483648 ,2147483648 ,-71 }, + {2147483648 ,-64 ,-64 ,2147483648 ,2147483648 ,-64 ,2147483648 ,-64 ,2147483648 ,-64 ,2147483648 ,-64 ,2147483648 ,-64 ,2147483648 ,-64 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-64 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-64 ,-64 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,2147483648 ,-64 ,-64 ,2147483648 ,-64 ,2147483648 ,2147483648 ,2147483648 ,-64 ,2147483648 ,2147483648 ,-64 ,2147483648 ,2147483648 ,-64 ,2147483648 ,-64 ,2147483648 ,-64 ,2147483648 ,-64 ,2147483648 ,2147483648 ,-64 } }; const struct _TOKEN LalrSemanticRules[RULES_COUNT]= { diff --git a/hyperdbg/script-engine/code/script-engine.c b/hyperdbg/script-engine/code/script-engine.c index 5596ab99..b77d58b1 100644 --- a/hyperdbg/script-engine/code/script-engine.c +++ b/hyperdbg/script-engine/code/script-engine.c @@ -271,8 +271,7 @@ ScriptEngineParse(char * str) PTOKEN_LIST MatchedStack = NewTokenList(); PSYMBOL_BUFFER CodeBuffer = NewSymbolBuffer(); - // will modify here later - PSYMBOL_BUFFER UserDefinedFunctions = NewSymbolBuffer(); + PUSER_DEFINED_FUNCTION_NODE UserDefinedFunctionHead = NULL; SCRIPT_ENGINE_ERROR_TYPE Error = SCRIPT_ENGINE_ERROR_FREE; char * ErrorMessage = NULL; @@ -347,7 +346,7 @@ ScriptEngineParse(char * str) { UINT64 BooleanExpressionSize = BooleanExpressionExtractEnd(str, &WaitForWaitStatementBooleanExpression, CurrentIn); - ScriptEngineBooleanExpresssionParse(BooleanExpressionSize, CurrentIn, MatchedStack, UserDefinedFunctions, CodeBuffer, str, &c, &Error); + ScriptEngineBooleanExpresssionParse(BooleanExpressionSize, CurrentIn, MatchedStack, &UserDefinedFunctionHead, CodeBuffer, str, &c, &Error); if (Error != SCRIPT_ENGINE_ERROR_FREE) { break; @@ -432,7 +431,7 @@ ScriptEngineParse(char * str) { WaitForWaitStatementBooleanExpression = TRUE; } - CodeGen(MatchedStack, UserDefinedFunctions, CodeBuffer, TopToken, &Error); + CodeGen(MatchedStack, &UserDefinedFunctionHead, CodeBuffer, TopToken, &Error); if (Error != SCRIPT_ENGINE_ERROR_FREE) { break; @@ -482,8 +481,23 @@ ScriptEngineParse(char * str) if (MatchedStack) RemoveTokenList(MatchedStack); - if (UserDefinedFunctions) - RemoveSymbolBuffer((PVOID)UserDefinedFunctions); + if (UserDefinedFunctionHead) + { + PUSER_DEFINED_FUNCTION_NODE Node = UserDefinedFunctionHead; + while (Node) + { + if (Node->Name) + free(Node->Name); + + if (Node->ParameterBuffer) + RemoveSymbolBuffer((PVOID)Node->ParameterBuffer); + + PUSER_DEFINED_FUNCTION_NODE Temp = Node; + Node = Node->NextNode; + free(Temp); + } + UserDefinedFunctionHead = NULL; + } if (CurrentIn) RemoveToken(&CurrentIn); @@ -509,7 +523,7 @@ ScriptEngineParse(char * str) * @param Error */ void -CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PSCRIPT_ENGINE_ERROR_TYPE Error) +CodeGen(PTOKEN_LIST MatchedStack, PUSER_DEFINED_FUNCTION_NODE * UserDefinedFunctionHead, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PSCRIPT_ENGINE_ERROR_TYPE Error) { PTOKEN Op0 = NULL; PTOKEN Op1 = NULL; @@ -526,8 +540,8 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B // // It is in user-defined function if CurrentFunctionSymbol is not null // - static PSYMBOL CurrentFunctionSymbol = NULL; - OperatorSymbol = ToSymbol(Operator, Error); + static PUSER_DEFINED_FUNCTION_NODE CurrentUserDefinedFunction = NULL; + OperatorSymbol = ToSymbol(Operator, Error); #ifdef _SCRIPT_ENGINE_CODEGEN_DBG_EN // @@ -565,7 +579,6 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B break; } - UINT64 CurrentPointer = CodeBuffer->Pointer; // // Add jmp instruction to Code Buffer // @@ -585,17 +598,91 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B PushSymbol(CodeBuffer, JumpAddressSymbol); RemoveSymbol(&JumpAddressSymbol); - PushSymbol(UserDefinedFunctions, NewFunctionSymbol(Op0->Value, VariableType)); - CurrentFunctionSymbol = NewFunctionSymbol(Op0->Value, VariableType); - PushSymbol(CodeBuffer, CurrentFunctionSymbol); + if (!*UserDefinedFunctionHead) + { + *UserDefinedFunctionHead = malloc(sizeof(USER_DEFINED_FUNCTION_NODE)); + RtlZeroMemory(*UserDefinedFunctionHead, sizeof(USER_DEFINED_FUNCTION_NODE)); + CurrentUserDefinedFunction = *UserDefinedFunctionHead; + } + else + { + PUSER_DEFINED_FUNCTION_NODE Node = *UserDefinedFunctionHead; + while (Node->NextNode) + { + Node = Node->NextNode; + } + Node->NextNode = malloc(sizeof(USER_DEFINED_FUNCTION_NODE)); + RtlZeroMemory(Node->NextNode, sizeof(USER_DEFINED_FUNCTION_NODE)); + CurrentUserDefinedFunction = Node->NextNode; + } - PushSymbol(CodeBuffer, OperatorSymbol); + CurrentUserDefinedFunction->Name = _strdup(Op0->Value); + UINT64 CurrentPointer = CodeBuffer->Pointer; + CurrentUserDefinedFunction->Address = CurrentPointer; + CurrentUserDefinedFunction->VariableType = (long long unsigned)VariableType; - PSYMBOL StackTempNumberSymbol = NewSymbol(); - StackTempNumberSymbol->Type = SYMBOL_NUM_TYPE; - StackTempNumberSymbol->Value = 0xffffffffffffffff; - PushSymbol(CodeBuffer, StackTempNumberSymbol); - RemoveSymbol(&StackTempNumberSymbol); + // + // push stack base index + // + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_SEMANTIC_RULE_TYPE; + TempSymbol->Value = FUNC_PUSH; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_STACK_BASE_INDEX_TYPE; + TempSymbol->Value = 0; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + // + // move stack index to stack base index + // + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_SEMANTIC_RULE_TYPE; + TempSymbol->Value = FUNC_MOV; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_STACK_INDEX_TYPE; + TempSymbol->Value = 0; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_STACK_BASE_INDEX_TYPE; + TempSymbol->Value = 0; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + // + // add stack index + // + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_SEMANTIC_RULE_TYPE; + TempSymbol->Value = FUNC_ADD; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_NUM_TYPE; + TempSymbol->Value = 0xffffffffffffffff; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_STACK_INDEX_TYPE; + TempSymbol->Value = 0; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_STACK_INDEX_TYPE; + TempSymbol->Value = 0; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); } else if (!strcmp(Operator->Value, "@FUNCTION_PARAMETER")) { @@ -613,98 +700,174 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B Op0Symbol->Value = NewFunctionParameterIdentifier(Op0); SetType(&Op0Symbol->Type, SYMBOL_FUNCTION_PARAMETER_ID_TYPE); - PushSymbol(UserDefinedFunctions, Op0Symbol); + if (!CurrentUserDefinedFunction->ParameterBuffer) + { + CurrentUserDefinedFunction->ParameterBuffer = NewSymbolBuffer(); + } + PushSymbol(CurrentUserDefinedFunction->ParameterBuffer, Op0Symbol); + CurrentUserDefinedFunction->ParameterNumber++; } else if (!strcmp(Operator->Value, "@END_OF_USER_DEFINED_FUNCTION")) { - PushSymbol(CodeBuffer, OperatorSymbol); UINT64 CurrentPointer = CodeBuffer->Pointer; PSYMBOL Symbol = NULL; - BOOL Found = FALSE; - unsigned 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((const char *)CurrentFunctionSymbol->Value, (const char *)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) + if (!CurrentUserDefinedFunction) { *Error = SCRIPT_ENGINE_ERROR_SYNTAX; break; } - - // - // skip executing user-defined function first time - // - Symbol = CodeBuffer->Head + i - 1; - Symbol->Value = CurrentPointer; - long long unsigned StackTempNumber = 0; - for (int j = i; j < CurrentPointer; j++) + for (UINT64 i = CurrentUserDefinedFunction->Address; i < CurrentPointer; i++) { - Symbol = CodeBuffer->Head + j; + Symbol = CodeBuffer->Head + i; if (Symbol->Type == SYMBOL_STACK_TEMP_TYPE && (Symbol->Value + 1) > StackTempNumber) { StackTempNumber = Symbol->Value + 1; } } - Symbol = CodeBuffer->Head + i + 2; - Symbol->Value = StackTempNumber; + Symbol = CodeBuffer->Head + CurrentUserDefinedFunction->Address + 6; + CurrentUserDefinedFunction->StackTempNumber = Symbol->Value = StackTempNumber; - CurrentFunctionSymbol = NULL; + // + // modify jump address + // + for (UINT64 i = CurrentUserDefinedFunction->Address; i < CurrentPointer; i++) + { + Symbol = CodeBuffer->Head + i; + if (Symbol->Type == SYMBOL_SEMANTIC_RULE_TYPE && Symbol->Value == FUNC_JMP && (CodeBuffer->Head + i + 1)->Value == 0xfffffffffffffff0) + { + (CodeBuffer->Head + i + 1)->Value = CurrentPointer; + i++; + } + } + + // + // move stack base index to stack index + // + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_SEMANTIC_RULE_TYPE; + TempSymbol->Value = FUNC_MOV; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_STACK_BASE_INDEX_TYPE; + TempSymbol->Value = 0; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_STACK_INDEX_TYPE; + TempSymbol->Value = 0; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + // + // pop stack base index + // + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_SEMANTIC_RULE_TYPE; + TempSymbol->Value = FUNC_POP; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_STACK_BASE_INDEX_TYPE; + TempSymbol->Value = 0; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_SEMANTIC_RULE_TYPE; + TempSymbol->Value = FUNC_RET; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + Symbol = CodeBuffer->Head + CurrentUserDefinedFunction->Address - 1; + Symbol->Value = CodeBuffer->Pointer; + + CleanStackTempList(); + + CurrentUserDefinedFunction = NULL; } else if (!strcmp(Operator->Value, "@RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE")) { - if (!CurrentFunctionSymbol) + if (!CurrentUserDefinedFunction) { *Error = SCRIPT_ENGINE_ERROR_SYNTAX; break; } - if (CurrentFunctionSymbol->VariableType != (unsigned long long)VARIABLE_TYPE_VOID) + if (CurrentUserDefinedFunction->VariableType != (unsigned long long)VARIABLE_TYPE_VOID) { *Error = SCRIPT_ENGINE_ERROR_NON_VOID_FUNCTION_NOT_RETURNING_VALUE; break; } - PushSymbol(CodeBuffer, OperatorSymbol); + + // + // Jump to ret code + // + PSYMBOL Symbol = NewSymbol(); + Symbol->Type = SYMBOL_SEMANTIC_RULE_TYPE; + Symbol->Value = FUNC_JMP; + PushSymbol(CodeBuffer, Symbol); + RemoveSymbol(&Symbol); + + Symbol = NewSymbol(); + Symbol->Type = SYMBOL_NUM_TYPE; + Symbol->Value = 0xfffffffffffffff0; + PushSymbol(CodeBuffer, Symbol); + RemoveSymbol(&Symbol); } else if (!strcmp(Operator->Value, "@RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE")) { - if (!CurrentFunctionSymbol) + if (!CurrentUserDefinedFunction) { *Error = SCRIPT_ENGINE_ERROR_SYNTAX; break; } - if (CurrentFunctionSymbol->VariableType == (unsigned long long)VARIABLE_TYPE_VOID) + if (CurrentUserDefinedFunction->VariableType == (unsigned long long)VARIABLE_TYPE_VOID) { *Error = SCRIPT_ENGINE_ERROR_VOID_FUNCTION_RETURNING_VALUE; break; } - PushSymbol(CodeBuffer, OperatorSymbol); + // + // Store return value + // + PSYMBOL Symbol = NewSymbol(); + Symbol->Type = SYMBOL_SEMANTIC_RULE_TYPE; + Symbol->Value = FUNC_MOV; + PushSymbol(CodeBuffer, Symbol); + RemoveSymbol(&Symbol); Op0 = Pop(MatchedStack); Op0Symbol = ToSymbol(Op0, Error); PushSymbol(CodeBuffer, Op0Symbol); FreeTemp(Op0); + Symbol = NewSymbol(); + Symbol->Type = SYMBOL_RETURN_VALUE_TYPE; + Symbol->Value = 0; + PushSymbol(CodeBuffer, Symbol); + RemoveSymbol(&Symbol); + + // + // Jump to ret code + // + Symbol = NewSymbol(); + Symbol->Type = SYMBOL_SEMANTIC_RULE_TYPE; + Symbol->Value = FUNC_JMP; + PushSymbol(CodeBuffer, Symbol); + RemoveSymbol(&Symbol); + + Symbol = NewSymbol(); + Symbol->Type = SYMBOL_NUM_TYPE; + Symbol->Value = 0xfffffffffffffff0; + PushSymbol(CodeBuffer, Symbol); + RemoveSymbol(&Symbol); + if (*Error != SCRIPT_ENGINE_ERROR_FREE) { break; @@ -713,32 +876,18 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B else if (!strcmp(Operator->Value, "@CALL_USER_DEFINED_FUNCTION")) { - PSYMBOL Symbol = NULL; - unsigned int i = 0; - PTOKEN FunctionToken = Top(MatchedStack); - BOOL Found = FALSE; + PTOKEN FunctionToken = Top(MatchedStack); + BOOL Found = FALSE; - // - // find function's address - // - for (; i < CodeBuffer->Pointer;) + PUSER_DEFINED_FUNCTION_NODE Node = *UserDefinedFunctionHead; + while (Node) { - Symbol = CodeBuffer->Head + i; - - if (Symbol->Type == SYMBOL_USER_DEFINED_FUNCTION_TYPE && !strcmp((const char *)FunctionToken->Value, (const char *)Symbol->Value)) + if (!strcmp((const char *)FunctionToken->Value, Node->Name)) { Found = TRUE; break; } - else if (Symbol->Type == SYMBOL_STRING_TYPE || Symbol->Type == SYMBOL_WSTRING_TYPE) - { - int temp = GetSymbolHeapSize(Symbol); - i += temp; - } - else - { - i++; - } + Node = Node->NextNode; } if (!Found) @@ -748,12 +897,17 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B } 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); + PSYMBOL TempSymbol = NULL; + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_SEMANTIC_RULE_TYPE; + TempSymbol->Value = FUNC_PUSH; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); Op0Symbol = ToSymbol(Top(MatchedStack), Error); PushSymbol(CodeBuffer, Op0Symbol); @@ -764,13 +918,12 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B } 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; - unsigned int i = 0; - int TargetFunctionVariableNum = 0; - int VariableNum = 0; - PTOKEN FunctionToken = NULL; - BOOL Found = FALSE; - PTOKEN ReturnValueToken = NULL; + PSYMBOL Symbol = NULL; + int TargetFunctionVariableNum = 0; + int VariableNum = 0; + PTOKEN FunctionToken = NULL; + BOOL Found = FALSE; + PTOKEN ReturnValueToken = NULL; while (MatchedStack->Pointer > 0) { @@ -787,27 +940,15 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B } } - // - // find function's address - // - for (; i < CodeBuffer->Pointer;) + PUSER_DEFINED_FUNCTION_NODE Node = *UserDefinedFunctionHead; + while (Node) { - Symbol = CodeBuffer->Head + i; - - if (Symbol->Type == SYMBOL_USER_DEFINED_FUNCTION_TYPE && !strcmp((const char *)FunctionToken->Value, (const char *)Symbol->Value)) + if (!strcmp((const char *)FunctionToken->Value, Node->Name)) { Found = TRUE; break; } - else if (Symbol->Type == SYMBOL_STRING_TYPE || Symbol->Type == SYMBOL_WSTRING_TYPE) - { - int temp = GetSymbolHeapSize(Symbol); - i += temp; - } - else - { - i++; - } + Node = Node->NextNode; } if (!Found) @@ -816,54 +957,46 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B break; } - // will rewrite here - for (unsigned int j = 0; j < UserDefinedFunctions->Pointer; j++) - { - Symbol = UserDefinedFunctions->Head + j; - if (Symbol->Type == SYMBOL_USER_DEFINED_FUNCTION_TYPE && !strcmp((const char *)FunctionToken->Value, (const char *)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) + if (VariableNum != Node->ParameterNumber) { *Error = SCRIPT_ENGINE_ERROR_SYNTAX; break; } - // - // Add call user-defined function instruction - // - PushSymbol(CodeBuffer, OperatorSymbol); + PSYMBOL TempSymbol = NULL; + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_SEMANTIC_RULE_TYPE; + TempSymbol->Value = FUNC_CALL; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); - // - // Add function's address - // - PSYMBOL JumpAddressSymbol = NewSymbol(); - JumpAddressSymbol->Type = SYMBOL_NUM_TYPE; - JumpAddressSymbol->Value = i; - PushSymbol(CodeBuffer, JumpAddressSymbol); - RemoveSymbol(&JumpAddressSymbol); + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_NUM_TYPE; + TempSymbol->Value = Node->Address; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); - // - // Add return address - // - JumpAddressSymbol = NewSymbol(); - JumpAddressSymbol->Type = SYMBOL_RETURN_ADDRESS_TYPE; - JumpAddressSymbol->Value = CodeBuffer->Pointer + 1; - PushSymbol(CodeBuffer, JumpAddressSymbol); - RemoveSymbol(&JumpAddressSymbol); + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_SEMANTIC_RULE_TYPE; + TempSymbol->Value = FUNC_SUB; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_NUM_TYPE; + TempSymbol->Value = Node->ParameterNumber; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_STACK_INDEX_TYPE; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); + + TempSymbol = NewSymbol(); + TempSymbol->Type = SYMBOL_STACK_INDEX_TYPE; + PushSymbol(CodeBuffer, TempSymbol); + RemoveSymbol(&TempSymbol); if (!strcmp(Operator->Value, "@END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE")) { @@ -876,12 +1009,18 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B // // Add return variable symbol // - Temp = NewTemp(Error, CurrentFunctionSymbol); + Temp = NewTemp(Error, CurrentUserDefinedFunction); Push(MatchedStack, Temp); PSYMBOL Symbol = NewSymbol(); Symbol->Type = SYMBOL_SEMANTIC_RULE_TYPE; - Symbol->Value = FUNC_MOV_RETURN_VALUE; + Symbol->Value = FUNC_MOV; + PushSymbol(CodeBuffer, Symbol); + RemoveSymbol(&Symbol); + + Symbol = NewSymbol(); + Symbol->Type = SYMBOL_RETURN_VALUE_TYPE; + Symbol->Value = 0; PushSymbol(CodeBuffer, Symbol); RemoveSymbol(&Symbol); @@ -969,7 +1108,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B Op0 = Pop(MatchedStack); Op0Symbol = ToSymbol(Op0, Error); - Temp = NewTemp(Error, CurrentFunctionSymbol); + Temp = NewTemp(Error, CurrentUserDefinedFunction); Push(MatchedStack, Temp); TempSymbol = ToSymbol(Temp, Error); @@ -1129,7 +1268,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B break; } - Temp = NewTemp(Error, CurrentFunctionSymbol); + Temp = NewTemp(Error, CurrentUserDefinedFunction); Push(MatchedStack, Temp); TempSymbol = ToSymbol(Temp, Error); PushSymbol(CodeBuffer, TempSymbol); @@ -1177,7 +1316,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B PushSymbol(CodeBuffer, Op1Symbol); PushSymbol(CodeBuffer, Op2Symbol); - Temp = NewTemp(Error, CurrentFunctionSymbol); + Temp = NewTemp(Error, CurrentUserDefinedFunction); Push(MatchedStack, Temp); TempSymbol = ToSymbol(Temp, Error); PushSymbol(CodeBuffer, TempSymbol); @@ -1229,7 +1368,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B Op1 = Pop(MatchedStack); Op1Symbol = ToSymbol(Op1, Error); - Temp = NewTemp(Error, CurrentFunctionSymbol); + Temp = NewTemp(Error, CurrentUserDefinedFunction); Push(MatchedStack, Temp); TempSymbol = ToSymbol(Temp, Error); @@ -1884,7 +2023,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B Op0 = Pop(MatchedStack); Op0Symbol = ToSymbol(Op0, Error); - Temp = NewTemp(Error, CurrentFunctionSymbol); + Temp = NewTemp(Error, CurrentUserDefinedFunction); Push(MatchedStack, Temp); TempSymbol = ToSymbol(Temp, Error); @@ -1913,7 +2052,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B break; } - Temp = NewTemp(Error, CurrentFunctionSymbol); + Temp = NewTemp(Error, CurrentUserDefinedFunction); Push(MatchedStack, Temp); TempSymbol = ToSymbol(Temp, Error); PushSymbol(CodeBuffer, TempSymbol); @@ -1940,7 +2079,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B PushSymbol(CodeBuffer, Op1Symbol); PushSymbol(CodeBuffer, Op2Symbol); - Temp = NewTemp(Error, CurrentFunctionSymbol); + Temp = NewTemp(Error, CurrentUserDefinedFunction); Push(MatchedStack, Temp); TempSymbol = ToSymbol(Temp, Error); PushSymbol(CodeBuffer, TempSymbol); @@ -1962,7 +2101,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B Op0 = Pop(MatchedStack); Op0Symbol = ToSymbol(Op0, Error); - Temp = NewTemp(Error, CurrentFunctionSymbol); + Temp = NewTemp(Error, CurrentUserDefinedFunction); Push(MatchedStack, Temp); TempSymbol = ToSymbol(Temp, Error); @@ -1991,7 +2130,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B break; } - Temp = NewTemp(Error, CurrentFunctionSymbol); + Temp = NewTemp(Error, CurrentUserDefinedFunction); Push(MatchedStack, Temp); TempSymbol = ToSymbol(Temp, Error); PushSymbol(CodeBuffer, TempSymbol); @@ -2019,7 +2158,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_B PushSymbol(CodeBuffer, Op1Symbol); PushSymbol(CodeBuffer, Op2Symbol); - Temp = NewTemp(Error, CurrentFunctionSymbol); + Temp = NewTemp(Error, CurrentUserDefinedFunction); Push(MatchedStack, Temp); TempSymbol = ToSymbol(Temp, Error); PushSymbol(CodeBuffer, TempSymbol); @@ -2142,14 +2281,14 @@ BooleanExpressionExtractEnd(char * str, BOOL * WaitForWaitStatementBooleanExpres */ void ScriptEngineBooleanExpresssionParse( - UINT64 BooleanExpressionSize, - PTOKEN FirstToken, - PTOKEN_LIST MatchedStack, - PSYMBOL_BUFFER UserDefinedFunctions, - PSYMBOL_BUFFER CodeBuffer, - char * str, - char * c, - PSCRIPT_ENGINE_ERROR_TYPE Error) + UINT64 BooleanExpressionSize, + PTOKEN FirstToken, + PTOKEN_LIST MatchedStack, + PUSER_DEFINED_FUNCTION_NODE * UserDefinedFunctionHead, + PSYMBOL_BUFFER CodeBuffer, + char * str, + char * c, + PSCRIPT_ENGINE_ERROR_TYPE Error) { PTOKEN_LIST Stack = NewTokenList(); @@ -2277,7 +2416,7 @@ ScriptEngineBooleanExpresssionParse( } else { - CodeGen(MatchedStack, UserDefinedFunctions, CodeBuffer, SemanticRule, Error); + CodeGen(MatchedStack, UserDefinedFunctionHead, CodeBuffer, SemanticRule, Error); if (*Error != SCRIPT_ENGINE_ERROR_FREE) { break; @@ -2394,45 +2533,6 @@ NewWstringSymbol(PTOKEN Token) return Symbol; } -/** - * @brief - * - * @return PSYMBOL - */ -PSYMBOL -NewFunctionSymbol(char * FunctionName, VARIABLE_TYPE * VariableType) -{ - int Length = (int)strlen(FunctionName); - PSYMBOL Symbol = NewSymbol(); - Symbol = (PSYMBOL)malloc(sizeof(SYMBOL)); - - if (Symbol == NULL) - { - // - // There was an error allocating buffer - // - free(Symbol); - return NULL; - } - - Symbol->Value = (unsigned long long)calloc(Length + 1, sizeof(char)); - - if (Symbol->Value == 0ull) - { - // - // There was an error allocating buffer - // - free(Symbol); - return NULL; - } - - memcpy((void *)Symbol->Value, FunctionName, Length); - Symbol->Len = Length; - Symbol->Type = SYMBOL_USER_DEFINED_FUNCTION_TYPE; - Symbol->VariableType = (long long unsigned)VariableType; - return Symbol; -} - /** * @brief * diff --git a/hyperdbg/script-engine/header/common.h b/hyperdbg/script-engine/header/common.h index e90f0466..9efad493 100644 --- a/hyperdbg/script-engine/header/common.h +++ b/hyperdbg/script-engine/header/common.h @@ -111,7 +111,7 @@ PTOKEN CopyToken(PTOKEN Token); PTOKEN -NewTemp(PSCRIPT_ENGINE_ERROR_TYPE, PSYMBOL); +NewTemp(PSCRIPT_ENGINE_ERROR_TYPE, PUSER_DEFINED_FUNCTION_NODE); PTOKEN NewStackTemp(PSCRIPT_ENGINE_ERROR_TYPE); @@ -122,6 +122,9 @@ FreeTemp(PTOKEN Temp); void CleanTempList(void); +void +CleanStackTempList(void); + //////////////////////////////////////////////////// // TOKEN_LIST related functions // //////////////////////////////////////////////////// diff --git a/hyperdbg/script-engine/header/parse-table.h b/hyperdbg/script-engine/header/parse-table.h index 2290138a..97eb85c9 100644 --- a/hyperdbg/script-engine/header/parse-table.h +++ b/hyperdbg/script-engine/header/parse-table.h @@ -11,7 +11,7 @@ #define OPERATORS_TWO_OPERAND_LIST_LENGTH 16 #define REGISTER_MAP_LIST_LENGTH 120 #define PSEUDO_REGISTER_MAP_LIST_LENGTH 16 -#define SEMANTIC_RULES_MAP_LIST_LENGTH 141 +#define SEMANTIC_RULES_MAP_LIST_LENGTH 136 #define THREEOPFUNC1_LENGTH 1 #define THREEOPFUNC2_LENGTH 2 #define TWOOPFUNC1_LENGTH 5 diff --git a/hyperdbg/script-engine/header/script-engine.h b/hyperdbg/script-engine/header/script-engine.h index c0da72f3..b3907306 100644 --- a/hyperdbg/script-engine/header/script-engine.h +++ b/hyperdbg/script-engine/header/script-engine.h @@ -20,33 +20,33 @@ // *** export pdb wrapper as script engine function *** // __declspec(dllexport) UINT64 -ScriptEngineConvertNameToAddress(const char * FunctionOrVariableName, PBOOLEAN WasFound); + ScriptEngineConvertNameToAddress(const char * FunctionOrVariableName, PBOOLEAN WasFound); __declspec(dllexport) UINT32 -ScriptEngineLoadFileSymbol(UINT64 BaseAddress, const char * PdbFileName, const char * CustomModuleName); + ScriptEngineLoadFileSymbol(UINT64 BaseAddress, const char * PdbFileName, const char * CustomModuleName); __declspec(dllexport) UINT32 -ScriptEngineUnloadAllSymbols(); + ScriptEngineUnloadAllSymbols(); __declspec(dllexport) UINT32 -ScriptEngineUnloadModuleSymbol(char * ModuleName); + ScriptEngineUnloadModuleSymbol(char * ModuleName); __declspec(dllexport) UINT32 -ScriptEngineSearchSymbolForMask(const char * SearchMask); + ScriptEngineSearchSymbolForMask(const char * SearchMask); __declspec(dllexport) BOOLEAN -ScriptEngineGetFieldOffset(CHAR * TypeName, CHAR * FieldName, UINT32 * FieldOffset); + ScriptEngineGetFieldOffset(CHAR * TypeName, CHAR * FieldName, UINT32 * FieldOffset); __declspec(dllexport) BOOLEAN -ScriptEngineGetDataTypeSize(CHAR * TypeName, UINT64 * TypeSize); + ScriptEngineGetDataTypeSize(CHAR * TypeName, UINT64 * TypeSize); __declspec(dllexport) BOOLEAN -ScriptEngineCreateSymbolTableForDisassembler(void * CallbackFunction); + ScriptEngineCreateSymbolTableForDisassembler(void * CallbackFunction); __declspec(dllexport) BOOLEAN -ScriptEngineConvertFileToPdbPath(const char * LocalFilePath, char * ResultPath); + ScriptEngineConvertFileToPdbPath(const char * LocalFilePath, char * ResultPath); __declspec(dllexport) BOOLEAN -ScriptEngineConvertFileToPdbFileAndGuidAndAgeDetails(const char * LocalFilePath, char * PdbFilePath, char * GuidAndAgeDetails, BOOLEAN Is32BitModule); + ScriptEngineConvertFileToPdbFileAndGuidAndAgeDetails(const char * LocalFilePath, char * PdbFilePath, char * GuidAndAgeDetails, BOOLEAN Is32BitModule); __declspec(dllexport) BOOLEAN -ScriptEngineSymbolInitLoad(PVOID BufferToStoreDetails, UINT32 StoredLength, BOOLEAN DownloadIfAvailable, const char * SymbolPath, BOOLEAN IsSilentLoad); + ScriptEngineSymbolInitLoad(PVOID BufferToStoreDetails, UINT32 StoredLength, BOOLEAN DownloadIfAvailable, const char * SymbolPath, BOOLEAN IsSilentLoad); __declspec(dllexport) BOOLEAN -ScriptEngineShowDataBasedOnSymbolTypes(const char * TypeName, UINT64 Address, BOOLEAN IsStruct, PVOID BufferAddress, const char * AdditionalParameters); + ScriptEngineShowDataBasedOnSymbolTypes(const char * TypeName, UINT64 Address, BOOLEAN IsStruct, PVOID BufferAddress, const char * AdditionalParameters); __declspec(dllexport) VOID -ScriptEngineSymbolAbortLoading(); + ScriptEngineSymbolAbortLoading(); __declspec(dllexport) VOID -ScriptEngineSetTextMessageCallback(PVOID Handler); + ScriptEngineSetTextMessageCallback(PVOID Handler); typedef enum _SCRIPT_ENGINE_ERROR_TYPE { @@ -72,58 +72,57 @@ NewStringSymbol(PTOKEN Token); PSYMBOL NewWstringSymbol(PTOKEN Token); -PSYMBOL -NewFunctionSymbol(char * FunctionName, VARIABLE_TYPE * VariableType); - unsigned int GetSymbolHeapSize(PSYMBOL Symbol); void RemoveSymbol(PSYMBOL * Symbol); -__declspec(dllexport) void -PrintSymbol(PVOID Symbol); +__declspec(dllexport) void PrintSymbol(PVOID Symbol); PSYMBOL_BUFFER NewSymbolBuffer(void); -__declspec(dllexport) void -RemoveSymbolBuffer(PVOID SymbolBuffer); +__declspec(dllexport) void RemoveSymbolBuffer(PVOID SymbolBuffer); PSYMBOL_BUFFER PushSymbol(PSYMBOL_BUFFER SymbolBuffer, const PSYMBOL Symbol); -__declspec(dllexport) void -PrintSymbolBuffer(const PVOID SymbolBuffer); +__declspec(dllexport) void PrintSymbolBuffer(const PVOID SymbolBuffer); PSYMBOL ToSymbol(PTOKEN PTOKEN, PSCRIPT_ENGINE_ERROR_TYPE Error); __declspec(dllexport) PVOID -ScriptEngineParse(char * str); + ScriptEngineParse(char * str); __declspec(dllexport) BOOLEAN -FuncGetNumberOfOperands(UINT64 FuncType, UINT32 * NumberOfGetOperands, UINT32 * NumberOfSetOperands); + FuncGetNumberOfOperands(UINT64 FuncType, UINT32 * NumberOfGetOperands, UINT32 * NumberOfSetOperands); __declspec(dllexport) BOOLEAN -ScriptEngineSetHwdbgInstanceInfo(HWDBG_INSTANCE_INFORMATION * InstancInfo); + ScriptEngineSetHwdbgInstanceInfo(HWDBG_INSTANCE_INFORMATION * InstancInfo); void ScriptEngineBooleanExpresssionParse( - UINT64 BooleanExpressionSize, - PTOKEN FirstToken, - PTOKEN_LIST MatchedStack, - PSYMBOL_BUFFER UserDefinedFunctions, - PSYMBOL_BUFFER CodeBuffer, - char * str, - char * c, - PSCRIPT_ENGINE_ERROR_TYPE Error); + UINT64 BooleanExpressionSize, + PTOKEN FirstToken, + PTOKEN_LIST MatchedStack, + PUSER_DEFINED_FUNCTION_NODE * UserDefinedFunctionHead, + PSYMBOL_BUFFER CodeBuffer, + char * str, + char * c, + PSCRIPT_ENGINE_ERROR_TYPE Error); UINT64 BooleanExpressionExtractEnd(char * str, BOOL * WaitForWaitStatementBooleanExpression, PTOKEN CurrentIn); void -CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER UserDefinedFunctions, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PSCRIPT_ENGINE_ERROR_TYPE Error); +CodeGen( + PTOKEN_LIST MatchedStack, + PUSER_DEFINED_FUNCTION_NODE * UserDefinedFunctionHead, + PSYMBOL_BUFFER CodeBuffer, + PTOKEN Operator, + PSCRIPT_ENGINE_ERROR_TYPE Error); unsigned long long int RegisterToInt(char * str); diff --git a/hyperdbg/script-engine/python/Grammar.txt b/hyperdbg/script-engine/python/Grammar.txt index c84125f4..1875db54 100644 --- a/hyperdbg/script-engine/python/Grammar.txt +++ b/hyperdbg/script-engine/python/Grammar.txt @@ -41,7 +41,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 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 +.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 push pop call ret .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 diff --git a/hyperdbg/script-engine/python/generator.py b/hyperdbg/script-engine/python/generator.py index c64ec453..5d868847 100644 --- a/hyperdbg/script-engine/python/generator.py +++ b/hyperdbg/script-engine/python/generator.py @@ -137,6 +137,7 @@ typedef struct SYMBOL_MAP char* Name; long long unsigned Type; } SYMBOL_MAP, * PSYMBOL_MAP; + typedef struct ACTION_BUFFER { long long unsigned Tag; long long unsigned CurrentAction; @@ -145,6 +146,17 @@ typedef struct ACTION_BUFFER { char CallingStage; } ACTION_BUFFER, *PACTION_BUFFER; +typedef struct USER_DEFINED_FUNCTION_NODE +{ + char * Name; + long long unsigned Address; + long long unsigned VariableType; + PSYMBOL_BUFFER ParameterBuffer; + long long unsigned ParameterNumber; + long long unsigned StackTempNumber; + struct USER_DEFINED_FUNCTION_NODE * NextNode; +} USER_DEFINED_FUNCTION_NODE, *PUSER_DEFINED_FUNCTION_NODE; + #define SYMBOL_UNDEFINED 0 #define SYMBOL_GLOBAL_ID_TYPE 1 #define SYMBOL_LOCAL_ID_TYPE 2 @@ -157,11 +169,13 @@ typedef struct ACTION_BUFFER { #define SYMBOL_VARIABLE_COUNT_TYPE 9 #define SYMBOL_INVALID 10 #define SYMBOL_WSTRING_TYPE 11 -#define SYMBOL_USER_DEFINED_FUNCTION_TYPE 12 -#define SYMBOL_FUNCTION_PARAMETER_ID_TYPE 13 -#define SYMBOL_RETURN_ADDRESS_TYPE 14 -#define SYMBOL_STACK_TEMP_TYPE 15 -#define SYMBOL_FUNCTION_PARAMETER_TYPE 16 +#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 SYMBOL_STACK_INDEX_TYPE 16 +#define SYMBOL_STACK_BASE_INDEX_TYPE 17 +#define SYMBOL_RETURN_VALUE_TYPE 18 static const char *const SymbolTypeNames[] = { "SYMBOL_UNDEFINED", @@ -176,11 +190,13 @@ static const char *const SymbolTypeNames[] = { "SYMBOL_VARIABLE_COUNT_TYPE", "SYMBOL_INVALID", "SYMBOL_WSTRING_TYPE", -"SYMBOL_USER_DEFINED_FUNCTION_TYPE", "SYMBOL_FUNCTION_PARAMETER_ID_TYPE", "SYMBOL_RETURN_ADDRESS_TYPE", "SYMBOL_STACK_TEMP_TYPE", -"SYMBOL_FUNCTION_PARAMETER_TYPE" +"SYMBOL_FUNCTION_PARAMETER_TYPE", +"SYMBOL_STACK_INDEX_TYPE", +"SYMBOL_STACK_BASE_INDEX_TYPE", +"SYMBOL_RETURN_VALUE_TYPE" }; #define SYMBOL_MEM_VALID_CHECK_MASK (1 << 31) diff --git a/hyperdbg/script-eval/code/Functions.c b/hyperdbg/script-eval/code/Functions.c index 0aae3b5d..3e1d94b4 100644 --- a/hyperdbg/script-eval/code/Functions.c +++ b/hyperdbg/script-eval/code/Functions.c @@ -32,9 +32,9 @@ GetValue(PGUEST_REGS GuestRegs, PSYMBOL Symbol, BOOLEAN ReturnReference, SYMBOL_BUFFER * StackBuffer, - int * StackIndx, - int * StackBaseIndx, - int * StackTempBaseIndx); + UINT64 * StackIndx, + UINT64 * StackBaseIndx, + UINT64 * ReturnValue); // // *** Functions *** @@ -1277,9 +1277,9 @@ ScriptEngineFunctionPrintf(PGUEST_REGS GuestRegs, PSYMBOL FirstArg, BOOLEAN * HasError, SYMBOL_BUFFER * StackBuffer, - int * StackIndx, - int * StackBaseIndx, - int * StackTempBaseIndx) + UINT64 * StackIndx, + UINT64 * StackBaseIndx, + UINT64 * ReturnValue) { // // *** The printf function *** @@ -1312,7 +1312,7 @@ ScriptEngineFunctionPrintf(PGUEST_REGS GuestRegs, memcpy(&TempSymbol, Symbol, sizeof(SYMBOL)); TempSymbol.Type &= 0x7fffffff; - Val = GetValue(GuestRegs, ActionDetail, VariablesList, &TempSymbol, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + Val = GetValue(GuestRegs, ActionDetail, VariablesList, &TempSymbol, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); CHAR PercentageChar = Format[Position]; diff --git a/hyperdbg/script-eval/code/ScriptEngineEval.c b/hyperdbg/script-eval/code/ScriptEngineEval.c index 89650af9..3ea6f1f4 100644 --- a/hyperdbg/script-eval/code/ScriptEngineEval.c +++ b/hyperdbg/script-eval/code/ScriptEngineEval.c @@ -95,14 +95,10 @@ GetValue(PGUEST_REGS GuestRegs, PSYMBOL Symbol, BOOLEAN ReturnReference, SYMBOL_BUFFER * StackBuffer, - int * StackIndx, - int * StackBaseIndx, - int * StackTempBaseIndx) + UINT64 * StackIndx, + UINT64 * StackBaseIndx, + UINT64 * ReturnValue) { -#ifdef SCRIPT_ENGINE_KERNEL_MODE - UNREFERENCED_PARAMETER(StackIndx); -#endif // SCRIPT_ENGINE_KERNEL_MODE - switch (Symbol->Type) { case SYMBOL_GLOBAL_ID_TYPE: @@ -146,16 +142,25 @@ GetValue(PGUEST_REGS GuestRegs, else return VariablesList->TempList[Symbol->Value]; + case SYMBOL_STACK_INDEX_TYPE: + return *StackIndx; + + case SYMBOL_STACK_BASE_INDEX_TYPE: + return *StackBaseIndx; + + case SYMBOL_RETURN_VALUE_TYPE: + return *ReturnValue; + case SYMBOL_STACK_TEMP_TYPE: { PSYMBOL StackSymbol = (PSYMBOL)((unsigned long long)StackBuffer->Head + - (unsigned long long)((*StackTempBaseIndx + Symbol->Value) * sizeof(SYMBOL))); + (unsigned long long)((*StackBaseIndx + Symbol->Value) * sizeof(SYMBOL))); return StackSymbol->Value; } case SYMBOL_FUNCTION_PARAMETER_ID_TYPE: { PSYMBOL StackSymbol = (PSYMBOL)((unsigned long long)StackBuffer->Head + - (unsigned long long)((*StackBaseIndx + Symbol->Value) * sizeof(SYMBOL))); + (unsigned long long)((*StackBaseIndx - 3 - Symbol->Value) * sizeof(SYMBOL))); return StackSymbol->Value; } } @@ -181,14 +186,10 @@ SetValue(PGUEST_REGS GuestRegs, PSYMBOL Symbol, UINT64 Value, SYMBOL_BUFFER * StackBuffer, - int * StackIndx, - int * StackBaseIndx, - int * StackTempBaseIndx) + UINT64 * StackIndx, + UINT64 * StackBaseIndx, + UINT64 * ReturnValue) { -#ifdef SCRIPT_ENGINE_KERNEL_MODE - UNREFERENCED_PARAMETER(StackIndx); -#endif // SCRIPT_ENGINE_KERNEL_MODE - switch (Symbol->Type) { case SYMBOL_GLOBAL_ID_TYPE: @@ -203,19 +204,30 @@ SetValue(PGUEST_REGS GuestRegs, case SYMBOL_REGISTER_TYPE: SetRegValueUsingSymbol(GuestRegs, Symbol, Value); return; + + case SYMBOL_STACK_INDEX_TYPE: + *StackIndx = Value; + return; + + case SYMBOL_STACK_BASE_INDEX_TYPE: + *StackBaseIndx = Value; + return; + + case SYMBOL_RETURN_VALUE_TYPE: + *ReturnValue = 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; + PSYMBOL StackSymbol = (PSYMBOL)((unsigned long long)StackBuffer->Head + + (unsigned long long)((*StackBaseIndx + 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))); + (unsigned long long)((*StackBaseIndx - 3 - Symbol->Value) * sizeof(SYMBOL))); StackSymbol->Value = Value; return; } @@ -279,10 +291,11 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, SYMBOL_BUFFER * CodeBuffer, UINT64 * Indx, SYMBOL_BUFFER * StackBuffer, - int * StackIndx, - int * StackBaseIndx, - int * StackTempBaseIndx, - SYMBOL * ErrorOperator) + UINT64 * StackIndx, + UINT64 * StackBaseIndx, + SYMBOL * ErrorOperator, + UINT64 * ReturnValue + ) { PSYMBOL Operator; PSYMBOL Src0; @@ -297,9 +310,6 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, UINT64 DesVal; BOOL HasError = FALSE; - static int StackIndxTemp = NULL_ZERO; - static unsigned long long ReturnValue = NULL64_ZERO; - Operator = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -325,7 +335,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -333,7 +343,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -342,7 +352,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionEd(SrcVal1, (DWORD)SrcVal0, &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -354,7 +364,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -362,7 +372,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -371,7 +381,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionEb(SrcVal1, (BYTE)SrcVal0, &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -382,7 +392,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -390,7 +400,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -399,7 +409,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionEq(SrcVal1, SrcVal0, &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -411,7 +421,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -419,7 +429,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -427,7 +437,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionInterlockedExchange((volatile long long *)SrcVal1, SrcVal0, &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -439,7 +449,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -447,7 +457,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -456,7 +466,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionInterlockedExchangeAdd((volatile long long *)SrcVal1, SrcVal0, &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -468,14 +478,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src2 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -483,7 +493,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal2 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -491,7 +501,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionInterlockedCompareExchange((volatile long long *)SrcVal2, SrcVal1, SrcVal0, &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -503,14 +513,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src2 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -518,7 +528,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal2 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -536,14 +546,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src2 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -551,7 +561,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal2 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -569,7 +579,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -577,7 +587,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); ScriptEngineFunctionSpinlockLockCustomWait((volatile long *)SrcVal1, (UINT32)SrcVal0, &HasError); @@ -591,7 +601,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -599,7 +609,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); ScriptEngineFunctionEventInject((UINT32)SrcVal1, (UINT32)SrcVal0, &HasError); @@ -646,7 +656,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -664,7 +674,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -672,7 +682,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -681,7 +691,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal1 | SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -692,13 +702,13 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); DesVal = SrcVal0 + 1; Des = Src0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -709,13 +719,13 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); DesVal = SrcVal0 - 1; Des = Src0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -726,7 +736,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -734,7 +744,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -742,7 +752,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal1 ^ SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -753,14 +763,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -768,7 +778,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal1 & SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -779,14 +789,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -794,7 +804,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal1 >> SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -805,7 +815,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -813,7 +823,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -822,7 +832,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal1 << SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -833,14 +843,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -848,7 +858,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal1 + SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -860,7 +870,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -868,7 +878,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -876,7 +886,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal1 - SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -887,14 +897,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -902,7 +912,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal1 * SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -913,14 +923,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -935,7 +945,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal1 / SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -946,14 +956,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -967,7 +977,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal1 % SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -978,14 +988,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -993,7 +1003,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = (INT64)SrcVal1 > (INT64)SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1004,14 +1014,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1019,7 +1029,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = (INT64)SrcVal1 < (INT64)SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1030,14 +1040,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1045,7 +1055,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = (INT64)SrcVal1 >= (INT64)SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1056,14 +1066,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1072,7 +1082,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = (INT64)SrcVal1 <= (INT64)SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1083,7 +1093,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1091,7 +1101,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1099,7 +1109,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal1 == SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1111,7 +1121,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1119,7 +1129,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1127,7 +1137,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal1 != SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1138,16 +1148,16 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); 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, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx), + DesVal = ScriptEngineKeywordPoi((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue), &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1158,15 +1168,15 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); 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, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx), + DesVal = ScriptEngineKeywordDb((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue), &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1177,16 +1187,16 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); 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, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx), + DesVal = ScriptEngineKeywordDd((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue), &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1198,16 +1208,16 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); 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, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx), + DesVal = ScriptEngineKeywordDw((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue), &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1218,16 +1228,16 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); 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, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx), + DesVal = ScriptEngineKeywordDq((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue), &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1238,7 +1248,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1247,7 +1257,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ~SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1261,7 +1271,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, // // It's reference, we need an address // - SrcVal0 = GetValue(GuestRegs, ActionDetail, VariablesList, Src0, TRUE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SrcVal0 = GetValue(GuestRegs, ActionDetail, VariablesList, Src0, TRUE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1269,7 +1279,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1280,15 +1290,15 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - DesVal = ScriptEngineFunctionPhysicalToVirtual(GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx)); + DesVal = ScriptEngineFunctionPhysicalToVirtual(GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue)); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1299,15 +1309,15 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - DesVal = ScriptEngineFunctionVirtualToPhysical(GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx)); + DesVal = ScriptEngineFunctionVirtualToPhysical(GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue)); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1318,7 +1328,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1329,7 +1339,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, else DesVal = 0; // FALSE - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1349,7 +1359,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, else { SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); } Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + @@ -1358,7 +1368,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionStrlen((const char *)SrcVal0); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1370,7 +1380,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1378,7 +1388,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionDisassembleLen((PVOID)SrcVal0, FALSE); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1389,7 +1399,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1397,7 +1407,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionDisassembleLen((PVOID)SrcVal0, TRUE); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1417,7 +1427,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, else { SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); } Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + @@ -1426,7 +1436,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionWcslen((const wchar_t *)SrcVal0); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1437,7 +1447,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1446,7 +1456,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionInterlockedIncrement((volatile long long *)SrcVal0, &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1457,7 +1467,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1465,7 +1475,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionInterlockedDecrement((volatile long long *)SrcVal0, &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1477,7 +1487,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1485,7 +1495,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = -(INT64)SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1496,15 +1506,15 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); 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, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx), + DesVal = ScriptEngineKeywordHi((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue), &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1516,16 +1526,16 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); 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, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx), + DesVal = ScriptEngineKeywordLow((PUINT64)GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue), &HasError); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1536,7 +1546,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1544,7 +1554,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = SrcVal0; - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1556,7 +1566,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); // // Call the target function @@ -1571,7 +1581,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); // // Call the target function @@ -1587,7 +1597,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); // // Call the target function @@ -1601,7 +1611,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); // // Call the target function @@ -1616,7 +1626,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); ScriptEngineFunctionEventEnable(SrcVal0); @@ -1628,7 +1638,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); ScriptEngineFunctionEventDisable(SrcVal0); @@ -1640,7 +1650,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); ScriptEngineFunctionEventClear(SrcVal0); @@ -1652,7 +1662,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); // // Call the target function @@ -1670,14 +1680,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); if (SrcVal1 == 0) *Indx = SrcVal0; @@ -1691,14 +1701,14 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); if (SrcVal1 != 0) *Indx = SrcVal0; @@ -1711,169 +1721,70 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); *Indx = SrcVal0; break; - case FUNC_CALL_USER_DEFINED_FUNCTION: - StackIndxTemp = *StackIndx; - break; - case FUNC_CALL_USER_DEFINED_FUNCTION_PARAMETER: - - // - // push parameter variable into stack - // + case FUNC_PUSH: 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); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); - Src1 = (PSYMBOL)((unsigned long long)StackBuffer->Head + + Des = (PSYMBOL)((unsigned long long)StackBuffer->Head + + (unsigned long long)(*StackIndx * sizeof(SYMBOL))); + *StackIndx = *StackIndx + 1; + + Des->Len = 0; + Des->Type = 0; + Des->Value = SrcVal0; + Des->VariableType = 0; + + break; + + case FUNC_POP: + *StackIndx = *StackIndx - 1; + Src0 = (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; + + Des = + (PSYMBOL)((unsigned long long)CodeBuffer->Head + + (unsigned long long)(*Indx * sizeof(SYMBOL))); + *Indx = *Indx + 1; + SetValue(GuestRegs, VariablesList, Des, Src0->Value, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); 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 + + case FUNC_CALL: + 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); + SrcVal0 = + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); - // - // 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 + + *Indx = *Indx + 1; + + Des = (PSYMBOL)((unsigned long long)StackBuffer->Head + + (unsigned long long)(*StackIndx * sizeof(SYMBOL))); + *StackIndx = *StackIndx + 1; + + Des->Len = 0; + Des->Type = SYMBOL_RETURN_ADDRESS_TYPE; + Des->Value = *Indx; + Des->VariableType = 0; + + *Indx = SrcVal0; + break; + + case FUNC_RET: + *StackIndx = *StackIndx - 1; + Src0 = (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 = 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 + (INT32)SrcVal0; - + *Indx = Src0->Value; 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: - 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 + @@ -1891,7 +1802,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, else { SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); } Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + @@ -1909,7 +1820,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, else { SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); } Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + @@ -1919,7 +1830,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionStrcmp((const char *)SrcVal1, (const char *)SrcVal0); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1940,7 +1851,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, else { SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); } Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + @@ -1958,7 +1869,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, else { SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); } Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + @@ -1968,7 +1879,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionWcscmp((const wchar_t *)SrcVal1, (const wchar_t *)SrcVal0); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -1980,7 +1891,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -1997,7 +1908,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, else { SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); } Src2 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + @@ -2015,7 +1926,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, else { SrcVal2 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); } Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + @@ -2025,7 +1936,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionMemcmp((const char *)SrcVal2, (const char *)SrcVal1, SrcVal0); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -2037,7 +1948,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -2054,7 +1965,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, else { SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); } Src2 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + @@ -2072,7 +1983,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, else { SrcVal2 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); } Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + @@ -2082,7 +1993,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionStrncmp((const char *)SrcVal2, (const char *)SrcVal1, SrcVal0); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -2094,7 +2005,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, *Indx = *Indx + 1; SrcVal0 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src0, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -2111,7 +2022,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, else { SrcVal1 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src1, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); } Src2 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + @@ -2129,7 +2040,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, else { SrcVal2 = - GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + GetValue(GuestRegs, ActionDetail, VariablesList, Src2, FALSE, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); } Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + @@ -2139,7 +2050,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, DesVal = ScriptEngineFunctionWcsncmp((const wchar_t *)SrcVal2, (const wchar_t *)SrcVal1, SrcVal0); - SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, StackTempBaseIndx); + SetValue(GuestRegs, VariablesList, Des, DesVal, StackBuffer, StackIndx, StackBaseIndx, ReturnValue); break; @@ -2185,7 +2096,7 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, StackBuffer, StackIndx, StackBaseIndx, - StackTempBaseIndx); + ReturnValue); break; } diff --git a/hyperdbg/script-eval/header/ScriptEngineHeader.h b/hyperdbg/script-eval/header/ScriptEngineHeader.h index d7ac068a..bae54a09 100644 --- a/hyperdbg/script-eval/header/ScriptEngineHeader.h +++ b/hyperdbg/script-eval/header/ScriptEngineHeader.h @@ -32,10 +32,10 @@ ScriptEngineExecute(PGUEST_REGS GuestRegs, SYMBOL_BUFFER * CodeBuffer, UINT64 * Indx, SYMBOL_BUFFER * StackBuffer, - int * StackIndx, - int * StackBaseIndx, - int * StackTempBaseIndx, - SYMBOL * ErrorOperator); + UINT64 * StackIndx, + UINT64 * StackBaseIndx, + SYMBOL * ErrorOperator, + UINT64 * ReturnValue); UINT64 GetRegValue(PGUEST_REGS GuestRegs, REGS_ENUM RegId); diff --git a/hyperdbg/script-eval/header/ScriptEngineInternalHeader.h b/hyperdbg/script-eval/header/ScriptEngineInternalHeader.h index a7302e36..4ab4b194 100644 --- a/hyperdbg/script-eval/header/ScriptEngineInternalHeader.h +++ b/hyperdbg/script-eval/header/ScriptEngineInternalHeader.h @@ -201,9 +201,9 @@ ScriptEngineFunctionPrintf(PGUEST_REGS GuestRegs, PSYMBOL FirstArg, BOOLEAN * HasError, SYMBOL_BUFFER * StackBuffer, - int * StackIndx, - int * StackBaseIndx, - int * StackTempBaseIndx); + UINT64 * StackIndx, + UINT64 * StackBaseIndx, + UINT64 * ReturnValue); VOID ScriptEngineFunctionEventInject(UINT32 InterruptionType, UINT32 Vector, BOOL * HasError);