From 92705058b21efccdd645aeefc550d71d00c228f5 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Sat, 17 Feb 2024 13:59:32 +0800 Subject: [PATCH] remove python3 deps --- .gitignore | 1 - CMakeLists.txt | 17 ----------------- include/pocketpy/_generated.h | 24 ++++++++++++++++++++++++ 3 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 include/pocketpy/_generated.h diff --git a/.gitignore b/.gitignore index b7e99216..dec9592a 100644 --- a/.gitignore +++ b/.gitignore @@ -17,7 +17,6 @@ web/lib plugins/unity/ plugins/macos/pocketpy/pocketpy.* -include/pocketpy/_generated.h main.exe main.obj pocketpy.exp diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b7d1856..d455718f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,23 +5,6 @@ project(pocketpy) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -# if cmake < 3.12, find_package(Python3) will not work, we directly use python3 -if (CMAKE_VERSION VERSION_LESS 3.12) - set(Python3_EXECUTABLE python3) -else() - find_package(Python3 COMPONENTS Interpreter) -endif() - -execute_process( - COMMAND ${Python3_EXECUTABLE} prebuild.py - WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} - RESULT_VARIABLE PREBUILD_RESULT -) - -if(NOT ${PREBUILD_RESULT} EQUAL 0) - message(FATAL_ERROR "prebuild.py: ${PREBUILD_RESULT}") -endif() - if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /utf-8 /O2") else() diff --git a/include/pocketpy/_generated.h b/include/pocketpy/_generated.h new file mode 100644 index 00000000..50f15761 --- /dev/null +++ b/include/pocketpy/_generated.h @@ -0,0 +1,24 @@ +#pragma once +// generated by prebuild.py + +#include +#include + +namespace pkpy{ + inline static std::map kPythonLibs = { + {"bisect", "\x22\x22\x22\x42\x69\x73\x65\x63\x74\x69\x6f\x6e\x20\x61\x6c\x67\x6f\x72\x69\x74\x68\x6d\x73\x2e\x22\x22\x22\x0a\x0a\x64\x65\x66\x20\x69\x6e\x73\x6f\x72\x74\x5f\x72\x69\x67\x68\x74\x28\x61\x2c\x20\x78\x2c\x20\x6c\x6f\x3d\x30\x2c\x20\x68\x69\x3d\x4e\x6f\x6e\x65\x29\x3a\x0a\x20\x20\x20\x20\x22\x22\x22\x49\x6e\x73\x65\x72\x74\x20\x69\x74\x65\x6d\x20\x78\x20\x69\x6e\x20\x6c\x69\x73\x74\x20\x61\x2c\x20\x61\x6e\x64\x20\x6b\x65\x65\x70\x20\x69\x74\x20\x73\x6f\x72\x74\x65\x64\x20\x61\x73\x73\x75\x6d\x69\x6e\x67\x20\x61\x20\x69\x73\x20\x73\x6f\x72\x74\x65\x64\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x78\x20\x69\x73\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x69\x6e\x20\x61\x2c\x20\x69\x6e\x73\x65\x72\x74\x20\x69\x74\x20\x74\x6f\x20\x74\x68\x65\x20\x72\x69\x67\x68\x74\x20\x6f\x66\x20\x74\x68\x65\x20\x72\x69\x67\x68\x74\x6d\x6f\x73\x74\x20\x78\x2e\x0a\x0a\x20\x20\x20\x20\x4f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x61\x72\x67\x73\x20\x6c\x6f\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x30\x29\x20\x61\x6e\x64\x20\x68\x69\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x6c\x65\x6e\x28\x61\x29\x29\x20\x62\x6f\x75\x6e\x64\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x73\x6c\x69\x63\x65\x20\x6f\x66\x20\x61\x20\x74\x6f\x20\x62\x65\x20\x73\x65\x61\x72\x63\x68\x65\x64\x2e\x0a\x20\x20\x20\x20\x22\x22\x22\x0a\x0a\x20\x20\x20\x20\x6c\x6f\x20\x3d\x20\x62\x69\x73\x65\x63\x74\x5f\x72\x69\x67\x68\x74\x28\x61\x2c\x20\x78\x2c\x20\x6c\x6f\x2c\x20\x68\x69\x29\x0a\x20\x20\x20\x20\x61\x2e\x69\x6e\x73\x65\x72\x74\x28\x6c\x6f\x2c\x20\x78\x29\x0a\x0a\x64\x65\x66\x20\x62\x69\x73\x65\x63\x74\x5f\x72\x69\x67\x68\x74\x28\x61\x2c\x20\x78\x2c\x20\x6c\x6f\x3d\x30\x2c\x20\x68\x69\x3d\x4e\x6f\x6e\x65\x29\x3a\x0a\x20\x20\x20\x20\x22\x22\x22\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x69\x6e\x64\x65\x78\x20\x77\x68\x65\x72\x65\x20\x74\x6f\x20\x69\x6e\x73\x65\x72\x74\x20\x69\x74\x65\x6d\x20\x78\x20\x69\x6e\x20\x6c\x69\x73\x74\x20\x61\x2c\x20\x61\x73\x73\x75\x6d\x69\x6e\x67\x20\x61\x20\x69\x73\x20\x73\x6f\x72\x74\x65\x64\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x20\x69\x20\x69\x73\x20\x73\x75\x63\x68\x20\x74\x68\x61\x74\x20\x61\x6c\x6c\x20\x65\x20\x69\x6e\x20\x61\x5b\x3a\x69\x5d\x20\x68\x61\x76\x65\x20\x65\x20\x3c\x3d\x20\x78\x2c\x20\x61\x6e\x64\x20\x61\x6c\x6c\x20\x65\x20\x69\x6e\x0a\x20\x20\x20\x20\x61\x5b\x69\x3a\x5d\x20\x68\x61\x76\x65\x20\x65\x20\x3e\x20\x78\x2e\x20\x20\x53\x6f\x20\x69\x66\x20\x78\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x61\x70\x70\x65\x61\x72\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x6c\x69\x73\x74\x2c\x20\x61\x2e\x69\x6e\x73\x65\x72\x74\x28\x78\x29\x20\x77\x69\x6c\x6c\x0a\x20\x20\x20\x20\x69\x6e\x73\x65\x72\x74\x20\x6a\x75\x73\x74\x20\x61\x66\x74\x65\x72\x20\x74\x68\x65\x20\x72\x69\x67\x68\x74\x6d\x6f\x73\x74\x20\x78\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x74\x68\x65\x72\x65\x2e\x0a\x0a\x20\x20\x20\x20\x4f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x61\x72\x67\x73\x20\x6c\x6f\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x30\x29\x20\x61\x6e\x64\x20\x68\x69\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x6c\x65\x6e\x28\x61\x29\x29\x20\x62\x6f\x75\x6e\x64\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x73\x6c\x69\x63\x65\x20\x6f\x66\x20\x61\x20\x74\x6f\x20\x62\x65\x20\x73\x65\x61\x72\x63\x68\x65\x64\x2e\x0a\x20\x20\x20\x20\x22\x22\x22\x0a\x0a\x20\x20\x20\x20\x69\x66\x20\x6c\x6f\x20\x3c\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x28\x27\x6c\x6f\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x6e\x6f\x6e\x2d\x6e\x65\x67\x61\x74\x69\x76\x65\x27\x29\x0a\x20\x20\x20\x20\x69\x66\x20\x68\x69\x20\x69\x73\x20\x4e\x6f\x6e\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x20\x3d\x20\x6c\x65\x6e\x28\x61\x29\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x6c\x6f\x20\x3c\x20\x68\x69\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x69\x64\x20\x3d\x20\x28\x6c\x6f\x2b\x68\x69\x29\x2f\x2f\x32\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x78\x20\x3c\x20\x61\x5b\x6d\x69\x64\x5d\x3a\x20\x68\x69\x20\x3d\x20\x6d\x69\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x20\x6c\x6f\x20\x3d\x20\x6d\x69\x64\x2b\x31\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x0a\x0a\x64\x65\x66\x20\x69\x6e\x73\x6f\x72\x74\x5f\x6c\x65\x66\x74\x28\x61\x2c\x20\x78\x2c\x20\x6c\x6f\x3d\x30\x2c\x20\x68\x69\x3d\x4e\x6f\x6e\x65\x29\x3a\x0a\x20\x20\x20\x20\x22\x22\x22\x49\x6e\x73\x65\x72\x74\x20\x69\x74\x65\x6d\x20\x78\x20\x69\x6e\x20\x6c\x69\x73\x74\x20\x61\x2c\x20\x61\x6e\x64\x20\x6b\x65\x65\x70\x20\x69\x74\x20\x73\x6f\x72\x74\x65\x64\x20\x61\x73\x73\x75\x6d\x69\x6e\x67\x20\x61\x20\x69\x73\x20\x73\x6f\x72\x74\x65\x64\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x78\x20\x69\x73\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x69\x6e\x20\x61\x2c\x20\x69\x6e\x73\x65\x72\x74\x20\x69\x74\x20\x74\x6f\x20\x74\x68\x65\x20\x6c\x65\x66\x74\x20\x6f\x66\x20\x74\x68\x65\x20\x6c\x65\x66\x74\x6d\x6f\x73\x74\x20\x78\x2e\x0a\x0a\x20\x20\x20\x20\x4f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x61\x72\x67\x73\x20\x6c\x6f\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x30\x29\x20\x61\x6e\x64\x20" "\x68\x69\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x6c\x65\x6e\x28\x61\x29\x29\x20\x62\x6f\x75\x6e\x64\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x73\x6c\x69\x63\x65\x20\x6f\x66\x20\x61\x20\x74\x6f\x20\x62\x65\x20\x73\x65\x61\x72\x63\x68\x65\x64\x2e\x0a\x20\x20\x20\x20\x22\x22\x22\x0a\x0a\x20\x20\x20\x20\x6c\x6f\x20\x3d\x20\x62\x69\x73\x65\x63\x74\x5f\x6c\x65\x66\x74\x28\x61\x2c\x20\x78\x2c\x20\x6c\x6f\x2c\x20\x68\x69\x29\x0a\x20\x20\x20\x20\x61\x2e\x69\x6e\x73\x65\x72\x74\x28\x6c\x6f\x2c\x20\x78\x29\x0a\x0a\x0a\x64\x65\x66\x20\x62\x69\x73\x65\x63\x74\x5f\x6c\x65\x66\x74\x28\x61\x2c\x20\x78\x2c\x20\x6c\x6f\x3d\x30\x2c\x20\x68\x69\x3d\x4e\x6f\x6e\x65\x29\x3a\x0a\x20\x20\x20\x20\x22\x22\x22\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x69\x6e\x64\x65\x78\x20\x77\x68\x65\x72\x65\x20\x74\x6f\x20\x69\x6e\x73\x65\x72\x74\x20\x69\x74\x65\x6d\x20\x78\x20\x69\x6e\x20\x6c\x69\x73\x74\x20\x61\x2c\x20\x61\x73\x73\x75\x6d\x69\x6e\x67\x20\x61\x20\x69\x73\x20\x73\x6f\x72\x74\x65\x64\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x20\x69\x20\x69\x73\x20\x73\x75\x63\x68\x20\x74\x68\x61\x74\x20\x61\x6c\x6c\x20\x65\x20\x69\x6e\x20\x61\x5b\x3a\x69\x5d\x20\x68\x61\x76\x65\x20\x65\x20\x3c\x20\x78\x2c\x20\x61\x6e\x64\x20\x61\x6c\x6c\x20\x65\x20\x69\x6e\x0a\x20\x20\x20\x20\x61\x5b\x69\x3a\x5d\x20\x68\x61\x76\x65\x20\x65\x20\x3e\x3d\x20\x78\x2e\x20\x20\x53\x6f\x20\x69\x66\x20\x78\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x61\x70\x70\x65\x61\x72\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x6c\x69\x73\x74\x2c\x20\x61\x2e\x69\x6e\x73\x65\x72\x74\x28\x78\x29\x20\x77\x69\x6c\x6c\x0a\x20\x20\x20\x20\x69\x6e\x73\x65\x72\x74\x20\x6a\x75\x73\x74\x20\x62\x65\x66\x6f\x72\x65\x20\x74\x68\x65\x20\x6c\x65\x66\x74\x6d\x6f\x73\x74\x20\x78\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x74\x68\x65\x72\x65\x2e\x0a\x0a\x20\x20\x20\x20\x4f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x61\x72\x67\x73\x20\x6c\x6f\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x30\x29\x20\x61\x6e\x64\x20\x68\x69\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x6c\x65\x6e\x28\x61\x29\x29\x20\x62\x6f\x75\x6e\x64\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x73\x6c\x69\x63\x65\x20\x6f\x66\x20\x61\x20\x74\x6f\x20\x62\x65\x20\x73\x65\x61\x72\x63\x68\x65\x64\x2e\x0a\x20\x20\x20\x20\x22\x22\x22\x0a\x0a\x20\x20\x20\x20\x69\x66\x20\x6c\x6f\x20\x3c\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x28\x27\x6c\x6f\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x6e\x6f\x6e\x2d\x6e\x65\x67\x61\x74\x69\x76\x65\x27\x29\x0a\x20\x20\x20\x20\x69\x66\x20\x68\x69\x20\x69\x73\x20\x4e\x6f\x6e\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x20\x3d\x20\x6c\x65\x6e\x28\x61\x29\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x6c\x6f\x20\x3c\x20\x68\x69\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x69\x64\x20\x3d\x20\x28\x6c\x6f\x2b\x68\x69\x29\x2f\x2f\x32\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x61\x5b\x6d\x69\x64\x5d\x20\x3c\x20\x78\x3a\x20\x6c\x6f\x20\x3d\x20\x6d\x69\x64\x2b\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x20\x68\x69\x20\x3d\x20\x6d\x69\x64\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x0a\x0a\x23\x20\x43\x72\x65\x61\x74\x65\x20\x61\x6c\x69\x61\x73\x65\x73\x0a\x62\x69\x73\x65\x63\x74\x20\x3d\x20\x62\x69\x73\x65\x63\x74\x5f\x72\x69\x67\x68\x74\x0a\x69\x6e\x73\x6f\x72\x74\x20\x3d\x20\x69\x6e\x73\x6f\x72\x74\x5f\x72\x69\x67\x68\x74\x0a" }, + {"builtins", "\x69\x6d\x70\x6f\x72\x74\x20\x73\x79\x73\x20\x61\x73\x20\x5f\x73\x79\x73\x0a\x69\x6d\x70\x6f\x72\x74\x20\x6f\x70\x65\x72\x61\x74\x6f\x72\x20\x61\x73\x20\x5f\x6f\x70\x65\x72\x61\x74\x6f\x72\x0a\x0a\x64\x65\x66\x20\x70\x72\x69\x6e\x74\x28\x2a\x61\x72\x67\x73\x2c\x20\x73\x65\x70\x3d\x27\x20\x27\x2c\x20\x65\x6e\x64\x3d\x27\x5c\x6e\x27\x29\x3a\x0a\x20\x20\x20\x20\x73\x20\x3d\x20\x73\x65\x70\x2e\x6a\x6f\x69\x6e\x28\x5b\x73\x74\x72\x28\x69\x29\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x61\x72\x67\x73\x5d\x29\x0a\x20\x20\x20\x20\x5f\x73\x79\x73\x2e\x73\x74\x64\x6f\x75\x74\x2e\x77\x72\x69\x74\x65\x28\x73\x20\x2b\x20\x65\x6e\x64\x29\x0a\x0a\x64\x65\x66\x20\x5f\x6d\x69\x6e\x6d\x61\x78\x5f\x72\x65\x64\x75\x63\x65\x28\x6f\x70\x2c\x20\x61\x72\x67\x73\x2c\x20\x6b\x65\x79\x29\x3a\x0a\x20\x20\x20\x20\x69\x66\x20\x6b\x65\x79\x20\x69\x73\x20\x4e\x6f\x6e\x65\x3a\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6c\x65\x6e\x28\x61\x72\x67\x73\x29\x20\x3d\x3d\x20\x32\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x72\x67\x73\x5b\x30\x5d\x20\x69\x66\x20\x6f\x70\x28\x61\x72\x67\x73\x5b\x30\x5d\x2c\x20\x61\x72\x67\x73\x5b\x31\x5d\x29\x20\x65\x6c\x73\x65\x20\x61\x72\x67\x73\x5b\x31\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x20\x3d\x20\x6c\x61\x6d\x62\x64\x61\x20\x78\x3a\x20\x78\x0a\x20\x20\x20\x20\x69\x66\x20\x6c\x65\x6e\x28\x61\x72\x67\x73\x29\x20\x3d\x3d\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x28\x27\x65\x78\x70\x65\x63\x74\x65\x64\x20\x31\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x20\x67\x6f\x74\x20\x30\x27\x29\x0a\x20\x20\x20\x20\x69\x66\x20\x6c\x65\x6e\x28\x61\x72\x67\x73\x29\x20\x3d\x3d\x20\x31\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x72\x67\x73\x20\x3d\x20\x61\x72\x67\x73\x5b\x30\x5d\x0a\x20\x20\x20\x20\x61\x72\x67\x73\x20\x3d\x20\x69\x74\x65\x72\x28\x61\x72\x67\x73\x29\x0a\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x6e\x65\x78\x74\x28\x61\x72\x67\x73\x29\x0a\x20\x20\x20\x20\x69\x66\x20\x72\x65\x73\x20\x69\x73\x20\x53\x74\x6f\x70\x49\x74\x65\x72\x61\x74\x69\x6f\x6e\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x28\x27\x61\x72\x67\x73\x20\x69\x73\x20\x61\x6e\x20\x65\x6d\x70\x74\x79\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x27\x29\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x54\x72\x75\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x3d\x20\x6e\x65\x78\x74\x28\x61\x72\x67\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x69\x20\x69\x73\x20\x53\x74\x6f\x70\x49\x74\x65\x72\x61\x74\x69\x6f\x6e\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6f\x70\x28\x6b\x65\x79\x28\x69\x29\x2c\x20\x6b\x65\x79\x28\x72\x65\x73\x29\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x69\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x0a\x0a\x64\x65\x66\x20\x6d\x69\x6e\x28\x2a\x61\x72\x67\x73\x2c\x20\x6b\x65\x79\x3d\x4e\x6f\x6e\x65\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5f\x6d\x69\x6e\x6d\x61\x78\x5f\x72\x65\x64\x75\x63\x65\x28\x5f\x6f\x70\x65\x72\x61\x74\x6f\x72\x2e\x6c\x74\x2c\x20\x61\x72\x67\x73\x2c\x20\x6b\x65\x79\x29\x0a\x0a\x64\x65\x66\x20\x6d\x61\x78\x28\x2a\x61\x72\x67\x73\x2c\x20\x6b\x65\x79\x3d\x4e\x6f\x6e\x65\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5f\x6d\x69\x6e\x6d\x61\x78\x5f\x72\x65\x64\x75\x63\x65\x28\x5f\x6f\x70\x65\x72\x61\x74\x6f\x72\x2e\x67\x74\x2c\x20\x61\x72\x67\x73\x2c\x20\x6b\x65\x79\x29\x0a\x0a\x64\x65\x66\x20\x61\x6c\x6c\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x29\x3a\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6e\x6f\x74\x20\x69\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x46\x61\x6c\x73\x65\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x54\x72\x75\x65\x0a\x0a\x64\x65\x66\x20\x61\x6e\x79\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x29\x3a\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x69\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x54\x72\x75\x65\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x46\x61\x6c\x73\x65\x0a\x0a\x64\x65\x66\x20\x65\x6e\x75\x6d\x65\x72\x61\x74\x65\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x2c\x20\x73\x74\x61\x72\x74\x3d\x30\x29\x3a\x0a\x20\x20\x20\x20\x6e\x20\x3d\x20\x73\x74\x61\x72\x74\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x65\x6c\x65\x6d\x20\x69\x6e\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x6e\x2c\x20\x65\x6c\x65\x6d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x2b\x2b\x6e\x0a\x0a\x64\x65\x66\x20\x73\x75\x6d\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x30\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x69\x74" "\x65\x72\x61\x62\x6c\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x2b\x3d\x20\x69\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x0a\x0a\x64\x65\x66\x20\x6d\x61\x70\x28\x66\x2c\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x29\x3a\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x66\x28\x69\x29\x0a\x0a\x64\x65\x66\x20\x66\x69\x6c\x74\x65\x72\x28\x66\x2c\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x29\x3a\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x66\x28\x69\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x69\x0a\x0a\x64\x65\x66\x20\x7a\x69\x70\x28\x61\x2c\x20\x62\x29\x3a\x0a\x20\x20\x20\x20\x61\x20\x3d\x20\x69\x74\x65\x72\x28\x61\x29\x0a\x20\x20\x20\x20\x62\x20\x3d\x20\x69\x74\x65\x72\x28\x62\x29\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x54\x72\x75\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x69\x20\x3d\x20\x6e\x65\x78\x74\x28\x61\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x69\x20\x3d\x20\x6e\x65\x78\x74\x28\x62\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x61\x69\x20\x69\x73\x20\x53\x74\x6f\x70\x49\x74\x65\x72\x61\x74\x69\x6f\x6e\x20\x6f\x72\x20\x62\x69\x20\x69\x73\x20\x53\x74\x6f\x70\x49\x74\x65\x72\x61\x74\x69\x6f\x6e\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x61\x69\x2c\x20\x62\x69\x0a\x0a\x64\x65\x66\x20\x72\x65\x76\x65\x72\x73\x65\x64\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x29\x3a\x0a\x20\x20\x20\x20\x61\x20\x3d\x20\x6c\x69\x73\x74\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x29\x0a\x20\x20\x20\x20\x61\x2e\x72\x65\x76\x65\x72\x73\x65\x28\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x0a\x0a\x64\x65\x66\x20\x73\x6f\x72\x74\x65\x64\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x2c\x20\x6b\x65\x79\x3d\x4e\x6f\x6e\x65\x2c\x20\x72\x65\x76\x65\x72\x73\x65\x3d\x46\x61\x6c\x73\x65\x29\x3a\x0a\x20\x20\x20\x20\x61\x20\x3d\x20\x6c\x69\x73\x74\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x29\x0a\x20\x20\x20\x20\x61\x2e\x73\x6f\x72\x74\x28\x6b\x65\x79\x3d\x6b\x65\x79\x2c\x20\x72\x65\x76\x65\x72\x73\x65\x3d\x72\x65\x76\x65\x72\x73\x65\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x0a\x0a\x23\x23\x23\x23\x23\x20\x73\x74\x72\x20\x23\x23\x23\x23\x23\x0a\x64\x65\x66\x20\x5f\x5f\x66\x6f\x72\x6d\x61\x74\x5f\x73\x74\x72\x69\x6e\x67\x28\x73\x65\x6c\x66\x3a\x20\x73\x74\x72\x2c\x20\x2a\x61\x72\x67\x73\x2c\x20\x2a\x2a\x6b\x77\x61\x72\x67\x73\x29\x20\x2d\x3e\x20\x73\x74\x72\x3a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x74\x6f\x6b\x65\x6e\x69\x7a\x65\x53\x74\x72\x69\x6e\x67\x28\x73\x3a\x20\x73\x74\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x73\x20\x3d\x20\x5b\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4c\x2c\x20\x52\x20\x3d\x20\x30\x2c\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x65\x20\x3d\x20\x4e\x6f\x6e\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x41\x72\x67\x20\x3d\x20\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x6c\x6f\x6f\x6b\x69\x6e\x67\x46\x6f\x72\x4b\x77\x6f\x72\x64\x20\x3d\x20\x46\x61\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x28\x52\x3c\x6c\x65\x6e\x28\x73\x29\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x43\x68\x61\x72\x20\x3d\x20\x73\x5b\x52\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x43\x68\x61\x72\x20\x3d\x20\x73\x5b\x52\x2b\x31\x5d\x20\x69\x66\x20\x52\x2b\x31\x3c\x6c\x65\x6e\x28\x73\x29\x20\x65\x6c\x73\x65\x20\x27\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x49\x6e\x76\x61\x6c\x69\x64\x20\x63\x61\x73\x65\x20\x31\x3a\x20\x73\x74\x72\x61\x79\x20\x27\x7d\x27\x20\x65\x6e\x63\x6f\x75\x6e\x74\x65\x72\x65\x64\x2c\x20\x65\x78\x61\x6d\x70\x6c\x65\x3a\x20\x22\x41\x42\x43\x44\x20\x45\x46\x47\x48\x20\x7b\x6e\x61\x6d\x65\x7d\x20\x49\x4a\x4b\x4c\x7d\x22\x2c\x20\x22\x48\x65\x6c\x6c\x6f\x20\x7b\x76\x76\x7d\x7d\x22\x2c\x20\x22\x48\x45\x4c\x4c\x4f\x20\x7b\x30\x7d\x20\x57\x4f\x52\x4c\x44\x7d\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x63\x75\x72\x43\x68\x61\x72\x20\x3d\x3d\x20\x27\x7d\x27\x20\x61\x6e\x64\x20\x6e\x65\x78\x74\x43\x68\x61\x72\x20\x21\x3d\x20\x27\x7d\x27\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x28\x22\x53\x69\x6e\x67\x6c\x65\x20\x27\x7d\x27\x20\x65\x6e\x63\x6f\x75\x6e\x74\x65\x72\x65\x64\x20\x69\x6e\x20\x66\x6f\x72\x6d\x61\x74\x20\x73\x74\x72\x69\x6e\x67\x22\x29\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x56\x61\x6c\x69\x64\x20\x43\x61\x73\x65\x20\x31\x3a\x20\x45\x73\x63\x61\x70\x69\x6e\x67\x20\x63\x61" "\x73\x65\x2c\x20\x77\x65\x20\x65\x73\x63\x61\x70\x65\x20\x22\x7b\x7b\x20\x6f\x72\x20\x22\x7d\x7d\x22\x20\x74\x6f\x20\x62\x65\x20\x22\x7b\x22\x20\x6f\x72\x20\x22\x7d\x22\x2c\x20\x65\x78\x61\x6d\x70\x6c\x65\x3a\x20\x22\x7b\x7b\x7d\x7d\x22\x2c\x20\x22\x7b\x7b\x4d\x79\x20\x4e\x61\x6d\x65\x20\x69\x73\x20\x7b\x30\x7d\x7d\x7d\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x75\x72\x43\x68\x61\x72\x20\x3d\x3d\x20\x27\x7b\x27\x20\x61\x6e\x64\x20\x6e\x65\x78\x74\x43\x68\x61\x72\x20\x3d\x3d\x20\x27\x7b\x27\x29\x20\x6f\x72\x20\x28\x63\x75\x72\x43\x68\x61\x72\x20\x3d\x3d\x20\x27\x7d\x27\x20\x61\x6e\x64\x20\x6e\x65\x78\x74\x43\x68\x61\x72\x20\x3d\x3d\x20\x27\x7d\x27\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4c\x3c\x52\x29\x3a\x20\x23\x20\x56\x61\x6c\x69\x64\x20\x43\x61\x73\x65\x20\x31\x2e\x31\x3a\x20\x6d\x61\x6b\x65\x20\x73\x75\x72\x65\x20\x77\x65\x20\x61\x72\x65\x20\x6e\x6f\x74\x20\x61\x64\x64\x69\x6e\x67\x20\x65\x6d\x70\x74\x79\x20\x73\x74\x72\x69\x6e\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x73\x5b\x4c\x3a\x52\x5d\x29\x20\x23\x20\x61\x64\x64\x20\x74\x68\x65\x20\x73\x74\x72\x69\x6e\x67\x20\x62\x65\x66\x6f\x72\x65\x20\x74\x68\x65\x20\x65\x73\x63\x61\x70\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x63\x75\x72\x43\x68\x61\x72\x29\x20\x23\x20\x56\x61\x6c\x69\x64\x20\x43\x61\x73\x65\x20\x31\x2e\x32\x3a\x20\x61\x64\x64\x20\x74\x68\x65\x20\x65\x73\x63\x61\x70\x65\x20\x63\x68\x61\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4c\x20\x3d\x20\x52\x2b\x32\x20\x23\x20\x6d\x6f\x76\x65\x20\x74\x68\x65\x20\x6c\x65\x66\x74\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x74\x6f\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x20\x63\x68\x61\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x20\x3d\x20\x52\x2b\x32\x20\x23\x20\x6d\x6f\x76\x65\x20\x74\x68\x65\x20\x72\x69\x67\x68\x74\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x74\x6f\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x20\x63\x68\x61\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x56\x61\x6c\x69\x64\x20\x43\x61\x73\x65\x20\x32\x3a\x20\x52\x65\x67\x75\x6c\x61\x72\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x6c\x69\x6e\x65\x20\x61\x72\x67\x20\x63\x61\x73\x65\x3a\x20\x65\x78\x61\x6d\x70\x6c\x65\x3a\x20\x20\x22\x41\x42\x43\x44\x20\x45\x46\x47\x48\x20\x7b\x7d\x20\x49\x4a\x4b\x4c\x22\x2c\x20\x22\x7b\x7d\x22\x2c\x20\x22\x48\x45\x4c\x4c\x4f\x20\x7b\x7d\x20\x57\x4f\x52\x4c\x44\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x63\x75\x72\x43\x68\x61\x72\x20\x3d\x3d\x20\x27\x7b\x27\x20\x61\x6e\x64\x20\x6e\x65\x78\x74\x43\x68\x61\x72\x20\x3d\x3d\x20\x27\x7d\x27\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6d\x6f\x64\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x4e\x6f\x6e\x65\x20\x61\x6e\x64\x20\x6d\x6f\x64\x65\x20\x21\x3d\x20\x27\x61\x75\x74\x6f\x27\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x49\x6e\x76\x61\x6c\x69\x64\x20\x63\x61\x73\x65\x20\x32\x3a\x20\x6d\x69\x78\x69\x6e\x67\x20\x61\x75\x74\x6f\x6d\x61\x74\x69\x63\x20\x61\x6e\x64\x20\x6d\x61\x6e\x75\x61\x6c\x20\x66\x69\x65\x6c\x64\x20\x73\x70\x65\x63\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x73\x20\x2d\x2d\x20\x65\x78\x61\x6d\x70\x6c\x65\x3a\x20\x22\x41\x42\x43\x44\x20\x45\x46\x47\x48\x20\x7b\x6e\x61\x6d\x65\x7d\x20\x49\x4a\x4b\x4c\x20\x7b\x7d\x22\x2c\x20\x22\x48\x65\x6c\x6c\x6f\x20\x7b\x76\x76\x7d\x20\x7b\x7d\x22\x2c\x20\x22\x48\x45\x4c\x4c\x4f\x20\x7b\x30\x7d\x20\x57\x4f\x52\x4c\x44\x20\x7b\x7d\x22\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x28\x22\x43\x61\x6e\x6e\x6f\x74\x20\x73\x77\x69\x74\x63\x68\x20\x66\x72\x6f\x6d\x20\x6d\x61\x6e\x75\x61\x6c\x20\x66\x69\x65\x6c\x64\x20\x6e\x75\x6d\x62\x65\x72\x69\x6e\x67\x20\x74\x6f\x20\x61\x75\x74\x6f\x6d\x61\x74\x69\x63\x20\x66\x69\x65\x6c\x64\x20\x73\x70\x65\x63\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x65\x20\x3d\x20\x27\x61\x75\x74\x6f\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x28\x4c\x3c\x52\x29\x3a\x20\x23\x20\x56\x61\x6c\x69\x64\x20\x43\x61\x73\x65\x20\x32\x2e\x31\x3a\x20\x6d\x61\x6b\x65\x20\x73\x75\x72\x65\x20\x77\x65\x20\x61\x72\x65\x20\x6e\x6f\x74\x20\x61\x64" "\x64\x69\x6e\x67\x20\x65\x6d\x70\x74\x79\x20\x73\x74\x72\x69\x6e\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x73\x5b\x4c\x3a\x52\x5d\x29\x20\x23\x20\x61\x64\x64\x20\x74\x68\x65\x20\x73\x74\x72\x69\x6e\x67\x20\x62\x65\x66\x6f\x72\x65\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x61\x6c\x20\x6d\x61\x72\x6b\x65\x72\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x61\x72\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x22\x7b\x22\x2b\x73\x74\x72\x28\x63\x75\x72\x41\x72\x67\x29\x2b\x22\x7d\x22\x29\x20\x23\x20\x56\x61\x6c\x69\x64\x20\x43\x61\x73\x65\x20\x32\x2e\x32\x3a\x20\x61\x64\x64\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x61\x6c\x20\x6d\x61\x72\x6b\x65\x72\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x61\x72\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x41\x72\x67\x2b\x3d\x31\x20\x23\x20\x69\x6e\x63\x72\x65\x6d\x65\x6e\x74\x20\x74\x68\x65\x20\x61\x72\x67\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x74\x68\x69\x73\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x75\x73\x65\x64\x20\x66\x6f\x72\x20\x72\x65\x66\x65\x72\x65\x6e\x63\x69\x6e\x67\x20\x74\x68\x65\x20\x61\x72\x67\x20\x6c\x61\x74\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4c\x20\x3d\x20\x52\x2b\x32\x20\x23\x20\x6d\x6f\x76\x65\x20\x74\x68\x65\x20\x6c\x65\x66\x74\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x74\x6f\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x20\x63\x68\x61\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x20\x3d\x20\x52\x2b\x32\x20\x23\x20\x6d\x6f\x76\x65\x20\x74\x68\x65\x20\x72\x69\x67\x68\x74\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x74\x6f\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x20\x63\x68\x61\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x56\x61\x6c\x69\x64\x20\x43\x61\x73\x65\x20\x33\x3a\x20\x4b\x65\x79\x2d\x77\x6f\x72\x64\x20\x61\x72\x67\x20\x63\x61\x73\x65\x3a\x20\x65\x78\x61\x6d\x70\x6c\x65\x3a\x20\x22\x41\x42\x43\x44\x20\x45\x46\x47\x48\x20\x7b\x6e\x61\x6d\x65\x7d\x20\x49\x4a\x4b\x4c\x22\x2c\x20\x22\x48\x65\x6c\x6c\x6f\x20\x7b\x76\x76\x7d\x22\x2c\x20\x22\x48\x45\x4c\x4c\x4f\x20\x7b\x6e\x61\x6d\x65\x7d\x20\x57\x4f\x52\x4c\x44\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x28\x63\x75\x72\x43\x68\x61\x72\x20\x3d\x3d\x20\x27\x7b\x27\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6d\x6f\x64\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x4e\x6f\x6e\x65\x20\x61\x6e\x64\x20\x6d\x6f\x64\x65\x20\x21\x3d\x20\x27\x6d\x61\x6e\x75\x61\x6c\x27\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x23\x20\x49\x6e\x76\x61\x6c\x69\x64\x20\x63\x61\x73\x65\x20\x32\x3a\x20\x6d\x69\x78\x69\x6e\x67\x20\x61\x75\x74\x6f\x6d\x61\x74\x69\x63\x20\x61\x6e\x64\x20\x6d\x61\x6e\x75\x61\x6c\x20\x66\x69\x65\x6c\x64\x20\x73\x70\x65\x63\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x73\x20\x2d\x2d\x20\x65\x78\x61\x6d\x70\x6c\x65\x3a\x20\x22\x41\x42\x43\x44\x20\x45\x46\x47\x48\x20\x7b\x7d\x20\x49\x4a\x4b\x4c\x20\x7b\x6e\x61\x6d\x65\x7d\x22\x2c\x20\x22\x48\x65\x6c\x6c\x6f\x20\x7b\x7d\x20\x7b\x31\x7d\x22\x2c\x20\x22\x48\x45\x4c\x4c\x4f\x20\x7b\x7d\x20\x57\x4f\x52\x4c\x44\x20\x7b\x6e\x61\x6d\x65\x7d\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x28\x22\x43\x61\x6e\x6e\x6f\x74\x20\x73\x77\x69\x74\x63\x68\x20\x66\x72\x6f\x6d\x20\x61\x75\x74\x6f\x6d\x61\x74\x69\x63\x20\x66\x69\x65\x6c\x64\x20\x73\x70\x65\x63\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x20\x74\x6f\x20\x6d\x61\x6e\x75\x61\x6c\x20\x66\x69\x65\x6c\x64\x20\x6e\x75\x6d\x62\x65\x72\x69\x6e\x67\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x65\x20\x3d\x20\x27\x6d\x61\x6e\x75\x61\x6c\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x28\x4c\x3c\x52\x29\x3a\x20\x23\x20\x56\x61\x6c\x69\x64\x20\x63\x61\x73\x65\x20\x33\x2e\x31\x3a\x20\x6d\x61\x6b\x65\x20\x73\x75\x72\x65\x20\x77\x65\x20\x61\x72\x65\x20\x6e\x6f\x74\x20\x61\x64\x64\x69\x6e\x67\x20\x65\x6d\x70\x74\x79\x20\x73\x74\x72\x69\x6e\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x73\x5b\x4c\x3a\x52\x5d\x29\x20\x23\x20\x61\x64\x64\x20\x74\x68\x65\x20\x73\x74\x72\x69\x6e\x67\x20\x62\x65\x66\x6f\x72" "\x65\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x61\x6c\x20\x6d\x61\x72\x6b\x65\x72\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x61\x72\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x57\x65\x20\x6c\x6f\x6f\x6b\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x65\x6e\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x6b\x65\x79\x77\x6f\x72\x64\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x77\x4c\x20\x3d\x20\x52\x20\x23\x20\x4b\x65\x79\x77\x6f\x72\x64\x20\x6c\x65\x66\x74\x20\x70\x6f\x69\x6e\x74\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x77\x52\x20\x3d\x20\x52\x2b\x31\x20\x23\x20\x4b\x65\x79\x77\x6f\x72\x64\x20\x72\x69\x67\x68\x74\x20\x70\x6f\x69\x6e\x74\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x28\x6b\x77\x52\x3c\x6c\x65\x6e\x28\x73\x29\x20\x61\x6e\x64\x20\x73\x5b\x6b\x77\x52\x5d\x21\x3d\x27\x7d\x27\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x73\x5b\x6b\x77\x52\x5d\x20\x3d\x3d\x20\x27\x7b\x27\x3a\x20\x23\x20\x49\x6e\x76\x61\x6c\x69\x64\x20\x63\x61\x73\x65\x20\x33\x3a\x20\x73\x74\x72\x61\x79\x20\x27\x7b\x27\x20\x65\x6e\x63\x6f\x75\x6e\x74\x65\x72\x65\x64\x2c\x20\x65\x78\x61\x6d\x70\x6c\x65\x3a\x20\x22\x41\x42\x43\x44\x20\x45\x46\x47\x48\x20\x7b\x6e\x7b\x61\x6d\x65\x7d\x20\x49\x4a\x4b\x4c\x20\x7b\x22\x2c\x20\x22\x48\x65\x6c\x6c\x6f\x20\x7b\x76\x76\x7b\x7d\x7d\x22\x2c\x20\x22\x48\x45\x4c\x4c\x4f\x20\x7b\x30\x7d\x20\x57\x4f\x52\x7b\x4c\x44\x7d\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x28\x22\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x27\x7b\x27\x20\x69\x6e\x20\x66\x69\x65\x6c\x64\x20\x6e\x61\x6d\x65\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x77\x52\x20\x2b\x3d\x20\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x56\x61\x6c\x69\x64\x20\x63\x61\x73\x65\x20\x33\x2e\x32\x3a\x20\x57\x65\x20\x68\x61\x76\x65\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x20\x66\x6f\x75\x6e\x64\x20\x74\x68\x65\x20\x65\x6e\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x6b\x65\x79\x77\x6f\x72\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6b\x77\x52\x3c\x6c\x65\x6e\x28\x73\x29\x20\x61\x6e\x64\x20\x73\x5b\x6b\x77\x52\x5d\x20\x3d\x3d\x20\x27\x7d\x27\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x73\x5b\x6b\x77\x4c\x3a\x6b\x77\x52\x2b\x31\x5d\x29\x20\x23\x20\x61\x64\x64\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x61\x6c\x20\x6d\x61\x72\x6b\x65\x72\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x61\x72\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4c\x20\x3d\x20\x6b\x77\x52\x2b\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x20\x3d\x20\x6b\x77\x52\x2b\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x49\x6e\x76\x61\x6c\x69\x64\x20\x63\x61\x73\x65\x20\x34\x3a\x20\x57\x65\x20\x64\x69\x64\x6e\x27\x74\x20\x66\x69\x6e\x64\x20\x74\x68\x65\x20\x65\x6e\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x6b\x65\x79\x77\x6f\x72\x64\x2c\x20\x74\x68\x72\x6f\x77\x20\x65\x72\x72\x6f\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x28\x22\x45\x78\x70\x65\x63\x74\x65\x64\x20\x27\x7d\x27\x20\x62\x65\x66\x6f\x72\x65\x20\x65\x6e\x64\x20\x6f\x66\x20\x73\x74\x72\x69\x6e\x67\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x20\x3d\x20\x52\x2b\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x56\x61\x6c\x69\x64\x20\x63\x61\x73\x65\x20\x34\x3a\x20\x57\x65\x20\x68\x61\x76\x65\x20\x72\x65\x61\x63\x68\x65\x64\x20\x74\x68\x65\x20\x65\x6e\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x73\x74\x72\x69\x6e\x67\x2c\x20\x61\x64\x64\x20\x74\x68\x65\x20\x72\x65\x6d\x61\x69\x6e\x69\x6e\x67\x20\x73\x74\x72\x69\x6e\x67\x20\x74\x6f\x20\x74\x68\x65\x20\x74\x6f\x6b\x65\x6e\x73\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x4c\x3c\x52\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x73\x5b\x4c\x3a\x52\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20" "\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x70\x72\x69\x6e\x74\x28\x74\x6f\x6b\x65\x6e\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x6f\x6b\x65\x6e\x73\x0a\x0a\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x73\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x69\x7a\x65\x53\x74\x72\x69\x6e\x67\x28\x73\x65\x6c\x66\x29\x0a\x20\x20\x20\x20\x61\x72\x67\x4d\x61\x70\x20\x3d\x20\x7b\x7d\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x2c\x20\x61\x20\x69\x6e\x20\x65\x6e\x75\x6d\x65\x72\x61\x74\x65\x28\x61\x72\x67\x73\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x72\x67\x4d\x61\x70\x5b\x73\x74\x72\x28\x69\x29\x5d\x20\x3d\x20\x61\x0a\x20\x20\x20\x20\x66\x69\x6e\x61\x6c\x5f\x74\x6f\x6b\x65\x6e\x73\x20\x3d\x20\x5b\x5d\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x74\x20\x69\x6e\x20\x74\x6f\x6b\x65\x6e\x73\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x5b\x30\x5d\x20\x3d\x3d\x20\x27\x7b\x27\x20\x61\x6e\x64\x20\x74\x5b\x2d\x31\x5d\x20\x3d\x3d\x20\x27\x7d\x27\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x20\x3d\x20\x74\x5b\x31\x3a\x2d\x31\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x72\x67\x4d\x61\x70\x56\x61\x6c\x20\x3d\x20\x61\x72\x67\x4d\x61\x70\x2e\x67\x65\x74\x28\x6b\x65\x79\x2c\x20\x4e\x6f\x6e\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x77\x61\x72\x67\x73\x56\x61\x6c\x20\x3d\x20\x6b\x77\x61\x72\x67\x73\x2e\x67\x65\x74\x28\x6b\x65\x79\x2c\x20\x4e\x6f\x6e\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x61\x72\x67\x4d\x61\x70\x56\x61\x6c\x20\x69\x73\x20\x4e\x6f\x6e\x65\x20\x61\x6e\x64\x20\x6b\x77\x61\x72\x67\x73\x56\x61\x6c\x20\x69\x73\x20\x4e\x6f\x6e\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x28\x22\x4e\x6f\x20\x61\x72\x67\x20\x66\x6f\x75\x6e\x64\x20\x66\x6f\x72\x20\x74\x6f\x6b\x65\x6e\x3a\x20\x22\x2b\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x61\x72\x67\x4d\x61\x70\x56\x61\x6c\x20\x69\x73\x20\x6e\x6f\x74\x20\x4e\x6f\x6e\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6e\x61\x6c\x5f\x74\x6f\x6b\x65\x6e\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x73\x74\x72\x28\x61\x72\x67\x4d\x61\x70\x56\x61\x6c\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6e\x61\x6c\x5f\x74\x6f\x6b\x65\x6e\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x73\x74\x72\x28\x6b\x77\x61\x72\x67\x73\x56\x61\x6c\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6e\x61\x6c\x5f\x74\x6f\x6b\x65\x6e\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x74\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x27\x27\x2e\x6a\x6f\x69\x6e\x28\x66\x69\x6e\x61\x6c\x5f\x74\x6f\x6b\x65\x6e\x73\x29\x0a\x0a\x73\x74\x72\x2e\x66\x6f\x72\x6d\x61\x74\x20\x3d\x20\x5f\x5f\x66\x6f\x72\x6d\x61\x74\x5f\x73\x74\x72\x69\x6e\x67\x0a\x64\x65\x6c\x20\x5f\x5f\x66\x6f\x72\x6d\x61\x74\x5f\x73\x74\x72\x69\x6e\x67\x0a\x0a\x0a\x64\x65\x66\x20\x68\x65\x6c\x70\x28\x6f\x62\x6a\x29\x3a\x0a\x20\x20\x20\x20\x69\x66\x20\x68\x61\x73\x61\x74\x74\x72\x28\x6f\x62\x6a\x2c\x20\x27\x5f\x5f\x66\x75\x6e\x63\x5f\x5f\x27\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x62\x6a\x20\x3d\x20\x6f\x62\x6a\x2e\x5f\x5f\x66\x75\x6e\x63\x5f\x5f\x0a\x20\x20\x20\x20\x70\x72\x69\x6e\x74\x28\x6f\x62\x6a\x2e\x5f\x5f\x73\x69\x67\x6e\x61\x74\x75\x72\x65\x5f\x5f\x29\x0a\x20\x20\x20\x20\x70\x72\x69\x6e\x74\x28\x6f\x62\x6a\x2e\x5f\x5f\x64\x6f\x63\x5f\x5f\x29\x0a\x0a\x64\x65\x66\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x2a\x61\x72\x67\x73\x2c\x20\x2a\x2a\x6b\x77\x61\x72\x67\x73\x29\x3a\x0a\x20\x20\x20\x20\x69\x6d\x70\x6f\x72\x74\x20\x63\x6d\x61\x74\x68\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6d\x61\x74\x68\x2e\x63\x6f\x6d\x70\x6c\x65\x78\x28\x2a\x61\x72\x67\x73\x2c\x20\x2a\x2a\x6b\x77\x61\x72\x67\x73\x29\x0a\x0a\x64\x65\x66\x20\x6c\x6f\x6e\x67\x28\x2a\x61\x72\x67\x73\x2c\x20\x2a\x2a\x6b\x77\x61\x72\x67\x73\x29\x3a\x0a\x20\x20\x20\x20\x69\x6d\x70\x6f\x72\x74\x20\x5f\x6c\x6f\x6e\x67\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5f\x6c\x6f\x6e\x67\x2e\x6c\x6f\x6e\x67\x28\x2a\x61\x72\x67\x73\x2c\x20\x2a\x2a\x6b\x77\x61\x72\x67\x73\x29\x0a\x0a\x0a\x23\x20\x62\x75\x69\x6c\x74\x69\x6e\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x73\x0a\x63\x6c\x61\x73\x73\x20\x53\x74\x61\x63\x6b\x4f\x76\x65\x72\x66\x6c\x6f\x77\x45\x72\x72\x6f\x72\x28\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x29\x3a\x20\x70\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x20\x49\x4f\x45\x72\x72\x6f\x72\x28\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x29\x3a\x20\x70\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x45\x72\x72\x6f\x72\x28\x45\x78\x63" "\x65\x70\x74\x69\x6f\x6e\x29\x3a\x20\x70\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x28\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x29\x3a\x20\x70\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x20\x49\x6e\x64\x65\x78\x45\x72\x72\x6f\x72\x28\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x29\x3a\x20\x70\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x28\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x29\x3a\x20\x70\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x20\x52\x75\x6e\x74\x69\x6d\x65\x45\x72\x72\x6f\x72\x28\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x29\x3a\x20\x70\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x20\x5a\x65\x72\x6f\x44\x69\x76\x69\x73\x69\x6f\x6e\x45\x72\x72\x6f\x72\x28\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x29\x3a\x20\x70\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x20\x4e\x61\x6d\x65\x45\x72\x72\x6f\x72\x28\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x29\x3a\x20\x70\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x20\x55\x6e\x62\x6f\x75\x6e\x64\x4c\x6f\x63\x61\x6c\x45\x72\x72\x6f\x72\x28\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x29\x3a\x20\x70\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x20\x41\x74\x74\x72\x69\x62\x75\x74\x65\x45\x72\x72\x6f\x72\x28\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x29\x3a\x20\x70\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x20\x49\x6d\x70\x6f\x72\x74\x45\x72\x72\x6f\x72\x28\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x29\x3a\x20\x70\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x20\x41\x73\x73\x65\x72\x74\x69\x6f\x6e\x45\x72\x72\x6f\x72\x28\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x29\x3a\x20\x70\x61\x73\x73\x0a\x0a\x63\x6c\x61\x73\x73\x20\x4b\x65\x79\x45\x72\x72\x6f\x72\x28\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x29\x3a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6b\x65\x79\x3d\x2e\x2e\x2e\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x6b\x65\x79\x20\x3d\x20\x6b\x65\x79\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6b\x65\x79\x20\x69\x73\x20\x2e\x2e\x2e\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x29\x2e\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x29\x2e\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x72\x65\x70\x72\x28\x6b\x65\x79\x29\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x73\x74\x72\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x73\x65\x6c\x66\x2e\x6b\x65\x79\x20\x69\x73\x20\x2e\x2e\x2e\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x27\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x28\x73\x65\x6c\x66\x2e\x6b\x65\x79\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x65\x70\x72\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x73\x65\x6c\x66\x2e\x6b\x65\x79\x20\x69\x73\x20\x2e\x2e\x2e\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x27\x4b\x65\x79\x45\x72\x72\x6f\x72\x28\x29\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x27\x4b\x65\x79\x45\x72\x72\x6f\x72\x28\x7b\x73\x65\x6c\x66\x2e\x6b\x65\x79\x21\x72\x7d\x29\x27\x0a" }, + {"cmath", "\x69\x6d\x70\x6f\x72\x74\x20\x6d\x61\x74\x68\x0a\x0a\x63\x6c\x61\x73\x73\x20\x63\x6f\x6d\x70\x6c\x65\x78\x3a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x72\x65\x61\x6c\x2c\x20\x69\x6d\x61\x67\x3d\x30\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x5f\x72\x65\x61\x6c\x20\x3d\x20\x66\x6c\x6f\x61\x74\x28\x72\x65\x61\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x5f\x69\x6d\x61\x67\x20\x3d\x20\x66\x6c\x6f\x61\x74\x28\x69\x6d\x61\x67\x29\x0a\x0a\x20\x20\x20\x20\x40\x70\x72\x6f\x70\x65\x72\x74\x79\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x72\x65\x61\x6c\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x72\x65\x61\x6c\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x40\x70\x72\x6f\x70\x65\x72\x74\x79\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x69\x6d\x61\x67\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x69\x6d\x61\x67\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x63\x6f\x6e\x6a\x75\x67\x61\x74\x65\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x2c\x20\x2d\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x65\x70\x72\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x20\x3d\x20\x5b\x27\x28\x27\x2c\x20\x73\x74\x72\x28\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x29\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x20\x3e\x3d\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x27\x2b\x27\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x73\x74\x72\x28\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x27\x6a\x29\x27\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x27\x27\x2e\x6a\x6f\x69\x6e\x28\x73\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x65\x71\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x63\x6f\x6d\x70\x6c\x65\x78\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x20\x3d\x3d\x20\x6f\x74\x68\x65\x72\x2e\x72\x65\x61\x6c\x20\x61\x6e\x64\x20\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x20\x3d\x3d\x20\x6f\x74\x68\x65\x72\x2e\x69\x6d\x61\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x6e\x20\x28\x69\x6e\x74\x2c\x20\x66\x6c\x6f\x61\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x20\x3d\x3d\x20\x6f\x74\x68\x65\x72\x20\x61\x6e\x64\x20\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x20\x3d\x3d\x20\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x61\x64\x64\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x63\x6f\x6d\x70\x6c\x65\x78\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x20\x2b\x20\x6f\x74\x68\x65\x72\x2e\x72\x65\x61\x6c\x2c\x20\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x20\x2b\x20\x6f\x74\x68\x65\x72\x2e\x69\x6d\x61\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x6e\x20\x28\x69\x6e\x74\x2c\x20\x66\x6c\x6f\x61\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x20\x2b\x20\x6f\x74\x68\x65\x72\x2c\x20\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x61\x64\x64\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x61\x64\x64\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x73\x75\x62\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x63\x6f\x6d\x70\x6c\x65\x78\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x73\x65\x6c\x66\x2e\x72\x65" "\x61\x6c\x20\x2d\x20\x6f\x74\x68\x65\x72\x2e\x72\x65\x61\x6c\x2c\x20\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x20\x2d\x20\x6f\x74\x68\x65\x72\x2e\x69\x6d\x61\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x6e\x20\x28\x69\x6e\x74\x2c\x20\x66\x6c\x6f\x61\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x20\x2d\x20\x6f\x74\x68\x65\x72\x2c\x20\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x73\x75\x62\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x63\x6f\x6d\x70\x6c\x65\x78\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x6f\x74\x68\x65\x72\x2e\x72\x65\x61\x6c\x20\x2d\x20\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x2c\x20\x6f\x74\x68\x65\x72\x2e\x69\x6d\x61\x67\x20\x2d\x20\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x6e\x20\x28\x69\x6e\x74\x2c\x20\x66\x6c\x6f\x61\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x6f\x74\x68\x65\x72\x20\x2d\x20\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x2c\x20\x2d\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6d\x75\x6c\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x63\x6f\x6d\x70\x6c\x65\x78\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x20\x2a\x20\x6f\x74\x68\x65\x72\x2e\x72\x65\x61\x6c\x20\x2d\x20\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x20\x2a\x20\x6f\x74\x68\x65\x72\x2e\x69\x6d\x61\x67\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x20\x2a\x20\x6f\x74\x68\x65\x72\x2e\x69\x6d\x61\x67\x20\x2b\x20\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x20\x2a\x20\x6f\x74\x68\x65\x72\x2e\x72\x65\x61\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x6e\x20\x28\x69\x6e\x74\x2c\x20\x66\x6c\x6f\x61\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x20\x2a\x20\x6f\x74\x68\x65\x72\x2c\x20\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x20\x2a\x20\x6f\x74\x68\x65\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x6d\x75\x6c\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x6d\x75\x6c\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x70\x6f\x77\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x69\x6e\x74\x20\x7c\x20\x66\x6c\x6f\x61\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x6e\x20\x28\x69\x6e\x74\x2c\x20\x66\x6c\x6f\x61\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x73\x65\x6c\x66\x2e\x5f\x5f\x61\x62\x73\x5f\x5f\x28\x29\x20\x2a\x2a\x20\x6f\x74\x68\x65\x72\x20\x2a\x20\x6d\x61\x74\x68\x2e\x63\x6f\x73\x28\x6f\x74\x68\x65\x72\x20\x2a\x20\x70\x68\x61\x73\x65\x28\x73\x65\x6c\x66\x29\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x61\x62\x73\x5f\x5f\x28\x29\x20\x2a\x2a\x20\x6f\x74\x68\x65\x72\x20\x2a\x20\x6d\x61\x74\x68\x2e\x73\x69\x6e\x28\x6f\x74\x68\x65\x72\x20\x2a\x20\x70\x68\x61\x73\x65\x28\x73\x65\x6c\x66\x29\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x61\x62\x73\x5f\x5f\x28\x73\x65\x6c\x66\x29\x20\x2d\x3e\x20\x66\x6c\x6f\x61\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x74\x68\x2e\x73\x71\x72\x74\x28\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x20\x2a\x2a\x20\x32\x20\x2b\x20\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x20\x2a\x2a\x20\x32\x29" "\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6e\x65\x67\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x2d\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x2c\x20\x2d\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x68\x61\x73\x68\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x61\x73\x68\x28\x28\x73\x65\x6c\x66\x2e\x72\x65\x61\x6c\x2c\x20\x73\x65\x6c\x66\x2e\x69\x6d\x61\x67\x29\x29\x0a\x0a\x0a\x23\x20\x43\x6f\x6e\x76\x65\x72\x73\x69\x6f\x6e\x73\x20\x74\x6f\x20\x61\x6e\x64\x20\x66\x72\x6f\x6d\x20\x70\x6f\x6c\x61\x72\x20\x63\x6f\x6f\x72\x64\x69\x6e\x61\x74\x65\x73\x0a\x0a\x64\x65\x66\x20\x70\x68\x61\x73\x65\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x74\x68\x2e\x61\x74\x61\x6e\x32\x28\x7a\x2e\x69\x6d\x61\x67\x2c\x20\x7a\x2e\x72\x65\x61\x6c\x29\x0a\x0a\x64\x65\x66\x20\x70\x6f\x6c\x61\x72\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7a\x2e\x5f\x5f\x61\x62\x73\x5f\x5f\x28\x29\x2c\x20\x70\x68\x61\x73\x65\x28\x7a\x29\x0a\x0a\x64\x65\x66\x20\x72\x65\x63\x74\x28\x72\x3a\x20\x66\x6c\x6f\x61\x74\x2c\x20\x70\x68\x69\x3a\x20\x66\x6c\x6f\x61\x74\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x20\x2a\x20\x6d\x61\x74\x68\x2e\x63\x6f\x73\x28\x70\x68\x69\x29\x20\x2b\x20\x72\x20\x2a\x20\x6d\x61\x74\x68\x2e\x73\x69\x6e\x28\x70\x68\x69\x29\x20\x2a\x20\x31\x6a\x0a\x0a\x23\x20\x50\x6f\x77\x65\x72\x20\x61\x6e\x64\x20\x6c\x6f\x67\x61\x72\x69\x74\x68\x6d\x69\x63\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x0a\x0a\x64\x65\x66\x20\x65\x78\x70\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x74\x68\x2e\x65\x78\x70\x28\x7a\x2e\x72\x65\x61\x6c\x29\x20\x2a\x20\x72\x65\x63\x74\x28\x31\x2c\x20\x7a\x2e\x69\x6d\x61\x67\x29\x0a\x0a\x64\x65\x66\x20\x6c\x6f\x67\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x2c\x20\x62\x61\x73\x65\x3d\x32\x2e\x37\x31\x38\x32\x38\x31\x38\x32\x38\x34\x35\x39\x30\x34\x35\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x74\x68\x2e\x6c\x6f\x67\x28\x7a\x2e\x5f\x5f\x61\x62\x73\x5f\x5f\x28\x29\x2c\x20\x62\x61\x73\x65\x29\x20\x2b\x20\x70\x68\x61\x73\x65\x28\x7a\x29\x20\x2a\x20\x31\x6a\x0a\x0a\x64\x65\x66\x20\x6c\x6f\x67\x31\x30\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x67\x28\x7a\x2c\x20\x31\x30\x29\x0a\x0a\x64\x65\x66\x20\x73\x71\x72\x74\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7a\x20\x2a\x2a\x20\x30\x2e\x35\x0a\x0a\x23\x20\x54\x72\x69\x67\x6f\x6e\x6f\x6d\x65\x74\x72\x69\x63\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x0a\x0a\x64\x65\x66\x20\x61\x63\x6f\x73\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x31\x6a\x20\x2a\x20\x6c\x6f\x67\x28\x7a\x20\x2b\x20\x73\x71\x72\x74\x28\x7a\x20\x2a\x20\x7a\x20\x2d\x20\x31\x29\x29\x0a\x0a\x64\x65\x66\x20\x61\x73\x69\x6e\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x31\x6a\x20\x2a\x20\x6c\x6f\x67\x28\x31\x6a\x20\x2a\x20\x7a\x20\x2b\x20\x73\x71\x72\x74\x28\x31\x20\x2d\x20\x7a\x20\x2a\x20\x7a\x29\x29\x0a\x0a\x64\x65\x66\x20\x61\x74\x61\x6e\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x31\x6a\x20\x2f\x20\x32\x20\x2a\x20\x6c\x6f\x67\x28\x28\x31\x20\x2d\x20\x31\x6a\x20\x2a\x20\x7a\x29\x20\x2f\x20\x28\x31\x20\x2b\x20\x31\x6a\x20\x2a\x20\x7a\x29\x29\x0a\x0a\x64\x65\x66\x20\x63\x6f\x73\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x65\x78\x70\x28\x7a\x29\x20\x2b\x20\x65\x78\x70\x28\x2d\x7a\x29\x29\x20\x2f\x20\x32\x0a\x0a\x64\x65\x66\x20\x73\x69\x6e\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x65\x78\x70\x28\x7a\x29\x20\x2d\x20\x65\x78\x70\x28\x2d\x7a\x29\x29\x20\x2f\x20\x28\x32\x20\x2a\x20\x31\x6a\x29\x0a\x0a\x64\x65\x66\x20\x74\x61\x6e\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x69\x6e\x28\x7a\x29\x20\x2f\x20\x63\x6f\x73\x28\x7a\x29\x0a\x0a\x23\x20\x48\x79\x70\x65\x72\x62\x6f\x6c\x69\x63\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x0a\x0a\x64\x65\x66\x20\x61\x63\x6f\x73\x68\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x67\x28\x7a\x20\x2b\x20\x73\x71\x72\x74\x28\x7a\x20\x2a\x20\x7a\x20\x2d\x20\x31\x29\x29\x0a\x0a\x64\x65\x66\x20\x61\x73\x69\x6e\x68\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x67\x28\x7a\x20\x2b\x20\x73\x71\x72\x74\x28\x7a\x20\x2a\x20\x7a\x20\x2b\x20\x31\x29\x29\x0a\x0a\x64\x65\x66\x20\x61\x74\x61\x6e\x68" "\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x31\x20\x2f\x20\x32\x20\x2a\x20\x6c\x6f\x67\x28\x28\x31\x20\x2b\x20\x7a\x29\x20\x2f\x20\x28\x31\x20\x2d\x20\x7a\x29\x29\x0a\x0a\x64\x65\x66\x20\x63\x6f\x73\x68\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x65\x78\x70\x28\x7a\x29\x20\x2b\x20\x65\x78\x70\x28\x2d\x7a\x29\x29\x20\x2f\x20\x32\x0a\x0a\x64\x65\x66\x20\x73\x69\x6e\x68\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x65\x78\x70\x28\x7a\x29\x20\x2d\x20\x65\x78\x70\x28\x2d\x7a\x29\x29\x20\x2f\x20\x32\x0a\x0a\x64\x65\x66\x20\x74\x61\x6e\x68\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x69\x6e\x68\x28\x7a\x29\x20\x2f\x20\x63\x6f\x73\x68\x28\x7a\x29\x0a\x0a\x23\x20\x43\x6c\x61\x73\x73\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x0a\x0a\x64\x65\x66\x20\x69\x73\x66\x69\x6e\x69\x74\x65\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x74\x68\x2e\x69\x73\x66\x69\x6e\x69\x74\x65\x28\x7a\x2e\x72\x65\x61\x6c\x29\x20\x61\x6e\x64\x20\x6d\x61\x74\x68\x2e\x69\x73\x66\x69\x6e\x69\x74\x65\x28\x7a\x2e\x69\x6d\x61\x67\x29\x0a\x0a\x64\x65\x66\x20\x69\x73\x69\x6e\x66\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x74\x68\x2e\x69\x73\x69\x6e\x66\x28\x7a\x2e\x72\x65\x61\x6c\x29\x20\x6f\x72\x20\x6d\x61\x74\x68\x2e\x69\x73\x69\x6e\x66\x28\x7a\x2e\x69\x6d\x61\x67\x29\x0a\x0a\x64\x65\x66\x20\x69\x73\x6e\x61\x6e\x28\x7a\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x74\x68\x2e\x69\x73\x6e\x61\x6e\x28\x7a\x2e\x72\x65\x61\x6c\x29\x20\x6f\x72\x20\x6d\x61\x74\x68\x2e\x69\x73\x6e\x61\x6e\x28\x7a\x2e\x69\x6d\x61\x67\x29\x0a\x0a\x64\x65\x66\x20\x69\x73\x63\x6c\x6f\x73\x65\x28\x61\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x2c\x20\x62\x3a\x20\x63\x6f\x6d\x70\x6c\x65\x78\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x74\x68\x2e\x69\x73\x63\x6c\x6f\x73\x65\x28\x61\x2e\x72\x65\x61\x6c\x2c\x20\x62\x2e\x72\x65\x61\x6c\x29\x20\x61\x6e\x64\x20\x6d\x61\x74\x68\x2e\x69\x73\x63\x6c\x6f\x73\x65\x28\x61\x2e\x69\x6d\x61\x67\x2c\x20\x62\x2e\x69\x6d\x61\x67\x29\x0a\x0a\x23\x20\x43\x6f\x6e\x73\x74\x61\x6e\x74\x73\x0a\x0a\x70\x69\x20\x3d\x20\x6d\x61\x74\x68\x2e\x70\x69\x0a\x65\x20\x3d\x20\x6d\x61\x74\x68\x2e\x65\x0a\x74\x61\x75\x20\x3d\x20\x32\x20\x2a\x20\x70\x69\x0a\x69\x6e\x66\x20\x3d\x20\x6d\x61\x74\x68\x2e\x69\x6e\x66\x0a\x69\x6e\x66\x6a\x20\x3d\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x30\x2c\x20\x69\x6e\x66\x29\x0a\x6e\x61\x6e\x20\x3d\x20\x6d\x61\x74\x68\x2e\x6e\x61\x6e\x0a\x6e\x61\x6e\x6a\x20\x3d\x20\x63\x6f\x6d\x70\x6c\x65\x78\x28\x30\x2c\x20\x6e\x61\x6e\x29\x0a" }, + {"collections", "\x64\x65\x66\x20\x43\x6f\x75\x6e\x74\x65\x72\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x29\x3a\x0a\x20\x20\x20\x20\x61\x20\x3d\x20\x7b\x7d\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x78\x20\x69\x6e\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x78\x20\x69\x6e\x20\x61\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x5b\x78\x5d\x20\x2b\x3d\x20\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x5b\x78\x5d\x20\x3d\x20\x31\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x0a\x0a\x63\x6c\x61\x73\x73\x20\x64\x65\x66\x61\x75\x6c\x74\x64\x69\x63\x74\x3a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x5f\x66\x61\x63\x74\x6f\x72\x79\x29\x20\x2d\x3e\x20\x4e\x6f\x6e\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x64\x65\x66\x61\x75\x6c\x74\x5f\x66\x61\x63\x74\x6f\x72\x79\x20\x3d\x20\x64\x65\x66\x61\x75\x6c\x74\x5f\x66\x61\x63\x74\x6f\x72\x79\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x5f\x61\x20\x3d\x20\x7b\x7d\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x67\x65\x74\x69\x74\x65\x6d\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6b\x65\x79\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6b\x65\x79\x20\x6e\x6f\x74\x20\x69\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x61\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x5f\x61\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x73\x65\x6c\x66\x2e\x64\x65\x66\x61\x75\x6c\x74\x5f\x66\x61\x63\x74\x6f\x72\x79\x28\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x61\x5b\x6b\x65\x79\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x73\x65\x74\x69\x74\x65\x6d\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x5f\x61\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x64\x65\x6c\x69\x74\x65\x6d\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6b\x65\x79\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x20\x73\x65\x6c\x66\x2e\x5f\x61\x5b\x6b\x65\x79\x5d\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x65\x70\x72\x5f\x5f\x28\x73\x65\x6c\x66\x29\x20\x2d\x3e\x20\x73\x74\x72\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x22\x64\x65\x66\x61\x75\x6c\x74\x64\x69\x63\x74\x28\x7b\x73\x65\x6c\x66\x2e\x64\x65\x66\x61\x75\x6c\x74\x5f\x66\x61\x63\x74\x6f\x72\x79\x7d\x2c\x20\x7b\x73\x65\x6c\x66\x2e\x5f\x61\x7d\x29\x22\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x65\x71\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x5f\x5f\x6f\x3a\x20\x6f\x62\x6a\x65\x63\x74\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6e\x6f\x74\x20\x69\x73\x69\x6e\x73\x74\x61\x6e\x63\x65\x28\x5f\x5f\x6f\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x64\x69\x63\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x46\x61\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x73\x65\x6c\x66\x2e\x64\x65\x66\x61\x75\x6c\x74\x5f\x66\x61\x63\x74\x6f\x72\x79\x20\x21\x3d\x20\x5f\x5f\x6f\x2e\x64\x65\x66\x61\x75\x6c\x74\x5f\x66\x61\x63\x74\x6f\x72\x79\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x46\x61\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x61\x20\x3d\x3d\x20\x5f\x5f\x6f\x2e\x5f\x61\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x74\x65\x72\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x74\x65\x72\x28\x73\x65\x6c\x66\x2e\x5f\x61\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x63\x6f\x6e\x74\x61\x69\x6e\x73\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6b\x65\x79\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6b\x65\x79\x20\x69\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x61\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6c\x65\x6e\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x65\x6e\x28\x73\x65\x6c\x66\x2e\x5f\x61\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x6b\x65\x79\x73\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x61\x2e\x6b\x65\x79\x73\x28\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x76\x61\x6c\x75\x65\x73\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x61\x2e\x76\x61\x6c\x75\x65\x73\x28\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x69\x74\x65\x6d\x73\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x61\x2e\x69\x74\x65\x6d\x73\x28\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x70\x6f\x70\x28\x73\x65\x6c" "\x66\x2c\x20\x2a\x61\x72\x67\x73\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x61\x2e\x70\x6f\x70\x28\x2a\x61\x72\x67\x73\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x63\x6c\x65\x61\x72\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x5f\x61\x2e\x63\x6c\x65\x61\x72\x28\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x63\x6f\x70\x79\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x5f\x64\x64\x20\x3d\x20\x64\x65\x66\x61\x75\x6c\x74\x64\x69\x63\x74\x28\x73\x65\x6c\x66\x2e\x64\x65\x66\x61\x75\x6c\x74\x5f\x66\x61\x63\x74\x6f\x72\x79\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x5f\x64\x64\x2e\x5f\x61\x20\x3d\x20\x73\x65\x6c\x66\x2e\x5f\x61\x2e\x63\x6f\x70\x79\x28\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x5f\x64\x64\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x67\x65\x74\x28\x73\x65\x6c\x66\x2c\x20\x6b\x65\x79\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x61\x2e\x67\x65\x74\x28\x6b\x65\x79\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x75\x70\x64\x61\x74\x65\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x5f\x61\x2e\x75\x70\x64\x61\x74\x65\x28\x6f\x74\x68\x65\x72\x29\x0a" }, + {"colorsys", "\x22\x22\x22\x43\x6f\x6e\x76\x65\x72\x73\x69\x6f\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x52\x47\x42\x20\x61\x6e\x64\x20\x6f\x74\x68\x65\x72\x20\x63\x6f\x6c\x6f\x72\x20\x73\x79\x73\x74\x65\x6d\x73\x2e\x0a\x0a\x54\x68\x69\x73\x20\x6d\x6f\x64\x75\x6c\x65\x73\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x74\x77\x6f\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x20\x66\x6f\x72\x20\x65\x61\x63\x68\x20\x63\x6f\x6c\x6f\x72\x20\x73\x79\x73\x74\x65\x6d\x20\x41\x42\x43\x3a\x0a\x0a\x20\x20\x72\x67\x62\x5f\x74\x6f\x5f\x61\x62\x63\x28\x72\x2c\x20\x67\x2c\x20\x62\x29\x20\x2d\x2d\x3e\x20\x61\x2c\x20\x62\x2c\x20\x63\x0a\x20\x20\x61\x62\x63\x5f\x74\x6f\x5f\x72\x67\x62\x28\x61\x2c\x20\x62\x2c\x20\x63\x29\x20\x2d\x2d\x3e\x20\x72\x2c\x20\x67\x2c\x20\x62\x0a\x0a\x41\x6c\x6c\x20\x69\x6e\x70\x75\x74\x73\x20\x61\x6e\x64\x20\x6f\x75\x74\x70\x75\x74\x73\x20\x61\x72\x65\x20\x74\x72\x69\x70\x6c\x65\x73\x20\x6f\x66\x20\x66\x6c\x6f\x61\x74\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x72\x61\x6e\x67\x65\x20\x5b\x30\x2e\x30\x2e\x2e\x2e\x31\x2e\x30\x5d\x0a\x28\x77\x69\x74\x68\x20\x74\x68\x65\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x20\x6f\x66\x20\x49\x20\x61\x6e\x64\x20\x51\x2c\x20\x77\x68\x69\x63\x68\x20\x63\x6f\x76\x65\x72\x73\x20\x61\x20\x73\x6c\x69\x67\x68\x74\x6c\x79\x20\x6c\x61\x72\x67\x65\x72\x20\x72\x61\x6e\x67\x65\x29\x2e\x0a\x49\x6e\x70\x75\x74\x73\x20\x6f\x75\x74\x73\x69\x64\x65\x20\x74\x68\x65\x20\x76\x61\x6c\x69\x64\x20\x72\x61\x6e\x67\x65\x20\x6d\x61\x79\x20\x63\x61\x75\x73\x65\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x73\x20\x6f\x72\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x6f\x75\x74\x70\x75\x74\x73\x2e\x0a\x0a\x53\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x63\x6f\x6c\x6f\x72\x20\x73\x79\x73\x74\x65\x6d\x73\x3a\x0a\x52\x47\x42\x3a\x20\x52\x65\x64\x2c\x20\x47\x72\x65\x65\x6e\x2c\x20\x42\x6c\x75\x65\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x0a\x59\x49\x51\x3a\x20\x4c\x75\x6d\x69\x6e\x61\x6e\x63\x65\x2c\x20\x43\x68\x72\x6f\x6d\x69\x6e\x61\x6e\x63\x65\x20\x28\x75\x73\x65\x64\x20\x62\x79\x20\x63\x6f\x6d\x70\x6f\x73\x69\x74\x65\x20\x76\x69\x64\x65\x6f\x20\x73\x69\x67\x6e\x61\x6c\x73\x29\x0a\x48\x4c\x53\x3a\x20\x48\x75\x65\x2c\x20\x4c\x75\x6d\x69\x6e\x61\x6e\x63\x65\x2c\x20\x53\x61\x74\x75\x72\x61\x74\x69\x6f\x6e\x0a\x48\x53\x56\x3a\x20\x48\x75\x65\x2c\x20\x53\x61\x74\x75\x72\x61\x74\x69\x6f\x6e\x2c\x20\x56\x61\x6c\x75\x65\x0a\x22\x22\x22\x0a\x0a\x23\x20\x52\x65\x66\x65\x72\x65\x6e\x63\x65\x73\x3a\x0a\x23\x20\x68\x74\x74\x70\x3a\x2f\x2f\x65\x6e\x2e\x77\x69\x6b\x69\x70\x65\x64\x69\x61\x2e\x6f\x72\x67\x2f\x77\x69\x6b\x69\x2f\x59\x49\x51\x0a\x23\x20\x68\x74\x74\x70\x3a\x2f\x2f\x65\x6e\x2e\x77\x69\x6b\x69\x70\x65\x64\x69\x61\x2e\x6f\x72\x67\x2f\x77\x69\x6b\x69\x2f\x48\x4c\x53\x5f\x63\x6f\x6c\x6f\x72\x5f\x73\x70\x61\x63\x65\x0a\x23\x20\x68\x74\x74\x70\x3a\x2f\x2f\x65\x6e\x2e\x77\x69\x6b\x69\x70\x65\x64\x69\x61\x2e\x6f\x72\x67\x2f\x77\x69\x6b\x69\x2f\x48\x53\x56\x5f\x63\x6f\x6c\x6f\x72\x5f\x73\x70\x61\x63\x65\x0a\x0a\x5f\x5f\x61\x6c\x6c\x5f\x5f\x20\x3d\x20\x5b\x22\x72\x67\x62\x5f\x74\x6f\x5f\x79\x69\x71\x22\x2c\x22\x79\x69\x71\x5f\x74\x6f\x5f\x72\x67\x62\x22\x2c\x22\x72\x67\x62\x5f\x74\x6f\x5f\x68\x6c\x73\x22\x2c\x22\x68\x6c\x73\x5f\x74\x6f\x5f\x72\x67\x62\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x72\x67\x62\x5f\x74\x6f\x5f\x68\x73\x76\x22\x2c\x22\x68\x73\x76\x5f\x74\x6f\x5f\x72\x67\x62\x22\x5d\x0a\x0a\x23\x20\x53\x6f\x6d\x65\x20\x66\x6c\x6f\x61\x74\x69\x6e\x67\x20\x70\x6f\x69\x6e\x74\x20\x63\x6f\x6e\x73\x74\x61\x6e\x74\x73\x0a\x0a\x4f\x4e\x45\x5f\x54\x48\x49\x52\x44\x20\x3d\x20\x31\x2e\x30\x2f\x33\x2e\x30\x0a\x4f\x4e\x45\x5f\x53\x49\x58\x54\x48\x20\x3d\x20\x31\x2e\x30\x2f\x36\x2e\x30\x0a\x54\x57\x4f\x5f\x54\x48\x49\x52\x44\x20\x3d\x20\x32\x2e\x30\x2f\x33\x2e\x30\x0a\x0a\x23\x20\x59\x49\x51\x3a\x20\x75\x73\x65\x64\x20\x62\x79\x20\x63\x6f\x6d\x70\x6f\x73\x69\x74\x65\x20\x76\x69\x64\x65\x6f\x20\x73\x69\x67\x6e\x61\x6c\x73\x20\x28\x6c\x69\x6e\x65\x61\x72\x20\x63\x6f\x6d\x62\x69\x6e\x61\x74\x69\x6f\x6e\x73\x20\x6f\x66\x20\x52\x47\x42\x29\x0a\x23\x20\x59\x3a\x20\x70\x65\x72\x63\x65\x69\x76\x65\x64\x20\x67\x72\x65\x79\x20\x6c\x65\x76\x65\x6c\x20\x28\x30\x2e\x30\x20\x3d\x3d\x20\x62\x6c\x61\x63\x6b\x2c\x20\x31\x2e\x30\x20\x3d\x3d\x20\x77\x68\x69\x74\x65\x29\x0a\x23\x20\x49\x2c\x20\x51\x3a\x20\x63\x6f\x6c\x6f\x72\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x0a\x23\x0a\x23\x20\x54\x68\x65\x72\x65\x20\x61\x72\x65\x20\x61\x20\x67\x72\x65\x61\x74\x20\x6d\x61\x6e\x79\x20\x76\x65\x72\x73\x69\x6f\x6e\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x63\x6f\x6e\x73\x74\x61\x6e\x74\x73\x20\x75\x73\x65\x64\x20\x69\x6e\x20\x74\x68\x65\x73\x65\x20\x66\x6f\x72\x6d\x75\x6c\x61\x65\x2e\x0a\x23\x20\x54\x68\x65\x20\x6f\x6e\x65\x73\x20\x69\x6e\x20\x74\x68\x69\x73\x20\x6c\x69\x62\x72\x61\x72\x79\x20\x75\x73\x65\x73\x20\x63\x6f\x6e\x73\x74\x61\x6e\x74\x73\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x46\x43\x43\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x4e\x54\x53\x43\x2e\x0a\x0a\x64\x65\x66\x20\x72\x67\x62\x5f\x74\x6f\x5f\x79\x69\x71\x28\x72\x2c" "\x20\x67\x2c\x20\x62\x29\x3a\x0a\x20\x20\x20\x20\x79\x20\x3d\x20\x30\x2e\x33\x30\x2a\x72\x20\x2b\x20\x30\x2e\x35\x39\x2a\x67\x20\x2b\x20\x30\x2e\x31\x31\x2a\x62\x0a\x20\x20\x20\x20\x69\x20\x3d\x20\x30\x2e\x37\x34\x2a\x28\x72\x2d\x79\x29\x20\x2d\x20\x30\x2e\x32\x37\x2a\x28\x62\x2d\x79\x29\x0a\x20\x20\x20\x20\x71\x20\x3d\x20\x30\x2e\x34\x38\x2a\x28\x72\x2d\x79\x29\x20\x2b\x20\x30\x2e\x34\x31\x2a\x28\x62\x2d\x79\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x79\x2c\x20\x69\x2c\x20\x71\x29\x0a\x0a\x64\x65\x66\x20\x79\x69\x71\x5f\x74\x6f\x5f\x72\x67\x62\x28\x79\x2c\x20\x69\x2c\x20\x71\x29\x3a\x0a\x20\x20\x20\x20\x23\x20\x72\x20\x3d\x20\x79\x20\x2b\x20\x28\x30\x2e\x32\x37\x2a\x71\x20\x2b\x20\x30\x2e\x34\x31\x2a\x69\x29\x20\x2f\x20\x28\x30\x2e\x37\x34\x2a\x30\x2e\x34\x31\x20\x2b\x20\x30\x2e\x32\x37\x2a\x30\x2e\x34\x38\x29\x0a\x20\x20\x20\x20\x23\x20\x62\x20\x3d\x20\x79\x20\x2b\x20\x28\x30\x2e\x37\x34\x2a\x71\x20\x2d\x20\x30\x2e\x34\x38\x2a\x69\x29\x20\x2f\x20\x28\x30\x2e\x37\x34\x2a\x30\x2e\x34\x31\x20\x2b\x20\x30\x2e\x32\x37\x2a\x30\x2e\x34\x38\x29\x0a\x20\x20\x20\x20\x23\x20\x67\x20\x3d\x20\x79\x20\x2d\x20\x28\x30\x2e\x33\x30\x2a\x28\x72\x2d\x79\x29\x20\x2b\x20\x30\x2e\x31\x31\x2a\x28\x62\x2d\x79\x29\x29\x20\x2f\x20\x30\x2e\x35\x39\x0a\x0a\x20\x20\x20\x20\x72\x20\x3d\x20\x79\x20\x2b\x20\x30\x2e\x39\x34\x36\x38\x38\x32\x32\x31\x37\x30\x39\x30\x30\x36\x39\x33\x2a\x69\x20\x2b\x20\x30\x2e\x36\x32\x33\x35\x35\x36\x35\x38\x31\x39\x38\x36\x31\x34\x33\x33\x2a\x71\x0a\x20\x20\x20\x20\x67\x20\x3d\x20\x79\x20\x2d\x20\x30\x2e\x32\x37\x34\x37\x38\x37\x36\x34\x36\x32\x39\x38\x39\x37\x38\x33\x34\x2a\x69\x20\x2d\x20\x30\x2e\x36\x33\x35\x36\x39\x31\x30\x37\x39\x31\x38\x37\x33\x38\x30\x31\x2a\x71\x0a\x20\x20\x20\x20\x62\x20\x3d\x20\x79\x20\x2d\x20\x31\x2e\x31\x30\x38\x35\x34\x35\x30\x33\x34\x36\x34\x32\x30\x33\x32\x32\x2a\x69\x20\x2b\x20\x31\x2e\x37\x30\x39\x30\x30\x36\x39\x32\x38\x34\x30\x36\x34\x36\x36\x36\x2a\x71\x0a\x0a\x20\x20\x20\x20\x69\x66\x20\x72\x20\x3c\x20\x30\x2e\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x20\x3d\x20\x30\x2e\x30\x0a\x20\x20\x20\x20\x69\x66\x20\x67\x20\x3c\x20\x30\x2e\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x67\x20\x3d\x20\x30\x2e\x30\x0a\x20\x20\x20\x20\x69\x66\x20\x62\x20\x3c\x20\x30\x2e\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x20\x3d\x20\x30\x2e\x30\x0a\x20\x20\x20\x20\x69\x66\x20\x72\x20\x3e\x20\x31\x2e\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x20\x3d\x20\x31\x2e\x30\x0a\x20\x20\x20\x20\x69\x66\x20\x67\x20\x3e\x20\x31\x2e\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x67\x20\x3d\x20\x31\x2e\x30\x0a\x20\x20\x20\x20\x69\x66\x20\x62\x20\x3e\x20\x31\x2e\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x20\x3d\x20\x31\x2e\x30\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x72\x2c\x20\x67\x2c\x20\x62\x29\x0a\x0a\x0a\x23\x20\x48\x4c\x53\x3a\x20\x48\x75\x65\x2c\x20\x4c\x75\x6d\x69\x6e\x61\x6e\x63\x65\x2c\x20\x53\x61\x74\x75\x72\x61\x74\x69\x6f\x6e\x0a\x23\x20\x48\x3a\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x69\x6e\x20\x74\x68\x65\x20\x73\x70\x65\x63\x74\x72\x75\x6d\x0a\x23\x20\x4c\x3a\x20\x63\x6f\x6c\x6f\x72\x20\x6c\x69\x67\x68\x74\x6e\x65\x73\x73\x0a\x23\x20\x53\x3a\x20\x63\x6f\x6c\x6f\x72\x20\x73\x61\x74\x75\x72\x61\x74\x69\x6f\x6e\x0a\x0a\x64\x65\x66\x20\x72\x67\x62\x5f\x74\x6f\x5f\x68\x6c\x73\x28\x72\x2c\x20\x67\x2c\x20\x62\x29\x3a\x0a\x20\x20\x20\x20\x6d\x61\x78\x63\x20\x3d\x20\x6d\x61\x78\x28\x72\x2c\x20\x67\x2c\x20\x62\x29\x0a\x20\x20\x20\x20\x6d\x69\x6e\x63\x20\x3d\x20\x6d\x69\x6e\x28\x72\x2c\x20\x67\x2c\x20\x62\x29\x0a\x20\x20\x20\x20\x73\x75\x6d\x63\x20\x3d\x20\x28\x6d\x61\x78\x63\x2b\x6d\x69\x6e\x63\x29\x0a\x20\x20\x20\x20\x72\x61\x6e\x67\x65\x63\x20\x3d\x20\x28\x6d\x61\x78\x63\x2d\x6d\x69\x6e\x63\x29\x0a\x20\x20\x20\x20\x6c\x20\x3d\x20\x73\x75\x6d\x63\x2f\x32\x2e\x30\x0a\x20\x20\x20\x20\x69\x66\x20\x6d\x69\x6e\x63\x20\x3d\x3d\x20\x6d\x61\x78\x63\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x2e\x30\x2c\x20\x6c\x2c\x20\x30\x2e\x30\x0a\x20\x20\x20\x20\x69\x66\x20\x6c\x20\x3c\x3d\x20\x30\x2e\x35\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x20\x3d\x20\x72\x61\x6e\x67\x65\x63\x20\x2f\x20\x73\x75\x6d\x63\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x20\x3d\x20\x72\x61\x6e\x67\x65\x63\x20\x2f\x20\x28\x32\x2e\x30\x2d\x6d\x61\x78\x63\x2d\x6d\x69\x6e\x63\x29\x20\x20\x23\x20\x4e\x6f\x74\x20\x61\x6c\x77\x61\x79\x73\x20\x32\x2e\x30\x2d\x73\x75\x6d\x63\x3a\x20\x67\x68\x2d\x31\x30\x36\x34\x39\x38\x2e\x0a\x20\x20\x20\x20\x72\x63\x20\x3d\x20\x28\x6d\x61\x78\x63\x2d\x72\x29\x20\x2f\x20\x72\x61\x6e\x67\x65\x63\x0a\x20\x20\x20\x20\x67\x63\x20\x3d\x20\x28\x6d\x61\x78\x63\x2d\x67\x29\x20\x2f\x20\x72\x61\x6e\x67\x65\x63\x0a\x20\x20\x20\x20\x62\x63\x20\x3d\x20\x28\x6d\x61\x78\x63\x2d\x62\x29\x20\x2f\x20\x72\x61\x6e\x67\x65\x63\x0a\x20\x20\x20\x20\x69\x66\x20\x72\x20\x3d\x3d\x20\x6d\x61\x78\x63\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x20\x3d\x20\x62\x63\x2d\x67\x63\x0a\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x67\x20\x3d\x3d" "\x20\x6d\x61\x78\x63\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x20\x3d\x20\x32\x2e\x30\x2b\x72\x63\x2d\x62\x63\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x20\x3d\x20\x34\x2e\x30\x2b\x67\x63\x2d\x72\x63\x0a\x20\x20\x20\x20\x23\x20\x68\x20\x3d\x20\x28\x68\x2f\x36\x2e\x30\x29\x20\x25\x20\x31\x2e\x30\x0a\x20\x20\x20\x20\x68\x20\x3d\x20\x68\x20\x2f\x20\x36\x2e\x30\x0a\x20\x20\x20\x20\x68\x20\x3d\x20\x68\x20\x2d\x20\x69\x6e\x74\x28\x68\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x2c\x20\x6c\x2c\x20\x73\x0a\x0a\x64\x65\x66\x20\x68\x6c\x73\x5f\x74\x6f\x5f\x72\x67\x62\x28\x68\x2c\x20\x6c\x2c\x20\x73\x29\x3a\x0a\x20\x20\x20\x20\x69\x66\x20\x73\x20\x3d\x3d\x20\x30\x2e\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x2c\x20\x6c\x2c\x20\x6c\x0a\x20\x20\x20\x20\x69\x66\x20\x6c\x20\x3c\x3d\x20\x30\x2e\x35\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x32\x20\x3d\x20\x6c\x20\x2a\x20\x28\x31\x2e\x30\x2b\x73\x29\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x32\x20\x3d\x20\x6c\x2b\x73\x2d\x28\x6c\x2a\x73\x29\x0a\x20\x20\x20\x20\x6d\x31\x20\x3d\x20\x32\x2e\x30\x2a\x6c\x20\x2d\x20\x6d\x32\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x5f\x76\x28\x6d\x31\x2c\x20\x6d\x32\x2c\x20\x68\x2b\x4f\x4e\x45\x5f\x54\x48\x49\x52\x44\x29\x2c\x20\x5f\x76\x28\x6d\x31\x2c\x20\x6d\x32\x2c\x20\x68\x29\x2c\x20\x5f\x76\x28\x6d\x31\x2c\x20\x6d\x32\x2c\x20\x68\x2d\x4f\x4e\x45\x5f\x54\x48\x49\x52\x44\x29\x29\x0a\x0a\x64\x65\x66\x20\x5f\x76\x28\x6d\x31\x2c\x20\x6d\x32\x2c\x20\x68\x75\x65\x29\x3a\x0a\x20\x20\x20\x20\x23\x20\x68\x75\x65\x20\x3d\x20\x68\x75\x65\x20\x25\x20\x31\x2e\x30\x0a\x20\x20\x20\x20\x68\x75\x65\x20\x3d\x20\x68\x75\x65\x20\x2d\x20\x69\x6e\x74\x28\x68\x75\x65\x29\x0a\x20\x20\x20\x20\x69\x66\x20\x68\x75\x65\x20\x3c\x20\x4f\x4e\x45\x5f\x53\x49\x58\x54\x48\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x31\x20\x2b\x20\x28\x6d\x32\x2d\x6d\x31\x29\x2a\x68\x75\x65\x2a\x36\x2e\x30\x0a\x20\x20\x20\x20\x69\x66\x20\x68\x75\x65\x20\x3c\x20\x30\x2e\x35\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x32\x0a\x20\x20\x20\x20\x69\x66\x20\x68\x75\x65\x20\x3c\x20\x54\x57\x4f\x5f\x54\x48\x49\x52\x44\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x31\x20\x2b\x20\x28\x6d\x32\x2d\x6d\x31\x29\x2a\x28\x54\x57\x4f\x5f\x54\x48\x49\x52\x44\x2d\x68\x75\x65\x29\x2a\x36\x2e\x30\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x31\x0a\x0a\x0a\x23\x20\x48\x53\x56\x3a\x20\x48\x75\x65\x2c\x20\x53\x61\x74\x75\x72\x61\x74\x69\x6f\x6e\x2c\x20\x56\x61\x6c\x75\x65\x0a\x23\x20\x48\x3a\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x69\x6e\x20\x74\x68\x65\x20\x73\x70\x65\x63\x74\x72\x75\x6d\x0a\x23\x20\x53\x3a\x20\x63\x6f\x6c\x6f\x72\x20\x73\x61\x74\x75\x72\x61\x74\x69\x6f\x6e\x20\x28\x22\x70\x75\x72\x69\x74\x79\x22\x29\x0a\x23\x20\x56\x3a\x20\x63\x6f\x6c\x6f\x72\x20\x62\x72\x69\x67\x68\x74\x6e\x65\x73\x73\x0a\x0a\x64\x65\x66\x20\x72\x67\x62\x5f\x74\x6f\x5f\x68\x73\x76\x28\x72\x2c\x20\x67\x2c\x20\x62\x29\x3a\x0a\x20\x20\x20\x20\x6d\x61\x78\x63\x20\x3d\x20\x6d\x61\x78\x28\x72\x2c\x20\x67\x2c\x20\x62\x29\x0a\x20\x20\x20\x20\x6d\x69\x6e\x63\x20\x3d\x20\x6d\x69\x6e\x28\x72\x2c\x20\x67\x2c\x20\x62\x29\x0a\x20\x20\x20\x20\x72\x61\x6e\x67\x65\x63\x20\x3d\x20\x28\x6d\x61\x78\x63\x2d\x6d\x69\x6e\x63\x29\x0a\x20\x20\x20\x20\x76\x20\x3d\x20\x6d\x61\x78\x63\x0a\x20\x20\x20\x20\x69\x66\x20\x6d\x69\x6e\x63\x20\x3d\x3d\x20\x6d\x61\x78\x63\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x2e\x30\x2c\x20\x30\x2e\x30\x2c\x20\x76\x0a\x20\x20\x20\x20\x73\x20\x3d\x20\x72\x61\x6e\x67\x65\x63\x20\x2f\x20\x6d\x61\x78\x63\x0a\x20\x20\x20\x20\x72\x63\x20\x3d\x20\x28\x6d\x61\x78\x63\x2d\x72\x29\x20\x2f\x20\x72\x61\x6e\x67\x65\x63\x0a\x20\x20\x20\x20\x67\x63\x20\x3d\x20\x28\x6d\x61\x78\x63\x2d\x67\x29\x20\x2f\x20\x72\x61\x6e\x67\x65\x63\x0a\x20\x20\x20\x20\x62\x63\x20\x3d\x20\x28\x6d\x61\x78\x63\x2d\x62\x29\x20\x2f\x20\x72\x61\x6e\x67\x65\x63\x0a\x20\x20\x20\x20\x69\x66\x20\x72\x20\x3d\x3d\x20\x6d\x61\x78\x63\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x20\x3d\x20\x62\x63\x2d\x67\x63\x0a\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x67\x20\x3d\x3d\x20\x6d\x61\x78\x63\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x20\x3d\x20\x32\x2e\x30\x2b\x72\x63\x2d\x62\x63\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x20\x3d\x20\x34\x2e\x30\x2b\x67\x63\x2d\x72\x63\x0a\x20\x20\x20\x20\x23\x20\x68\x20\x3d\x20\x28\x68\x2f\x36\x2e\x30\x29\x20\x25\x20\x31\x2e\x30\x0a\x20\x20\x20\x20\x68\x20\x3d\x20\x68\x20\x2f\x20\x36\x2e\x30\x0a\x20\x20\x20\x20\x68\x20\x3d\x20\x68\x20\x2d\x20\x69\x6e\x74\x28\x68\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x2c\x20\x73\x2c\x20\x76\x0a\x0a\x64\x65\x66\x20\x68\x73\x76\x5f\x74\x6f\x5f\x72\x67\x62\x28\x68\x2c\x20\x73\x2c\x20\x76\x29\x3a\x0a\x20\x20\x20\x20\x69\x66\x20\x73\x20\x3d\x3d\x20\x30\x2e\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74" "\x75\x72\x6e\x20\x76\x2c\x20\x76\x2c\x20\x76\x0a\x20\x20\x20\x20\x69\x20\x3d\x20\x69\x6e\x74\x28\x68\x2a\x36\x2e\x30\x29\x20\x23\x20\x58\x58\x58\x20\x61\x73\x73\x75\x6d\x65\x20\x69\x6e\x74\x28\x29\x20\x74\x72\x75\x6e\x63\x61\x74\x65\x73\x21\x0a\x20\x20\x20\x20\x66\x20\x3d\x20\x28\x68\x2a\x36\x2e\x30\x29\x20\x2d\x20\x69\x0a\x20\x20\x20\x20\x70\x20\x3d\x20\x76\x2a\x28\x31\x2e\x30\x20\x2d\x20\x73\x29\x0a\x20\x20\x20\x20\x71\x20\x3d\x20\x76\x2a\x28\x31\x2e\x30\x20\x2d\x20\x73\x2a\x66\x29\x0a\x20\x20\x20\x20\x74\x20\x3d\x20\x76\x2a\x28\x31\x2e\x30\x20\x2d\x20\x73\x2a\x28\x31\x2e\x30\x2d\x66\x29\x29\x0a\x20\x20\x20\x20\x69\x20\x3d\x20\x69\x25\x36\x0a\x20\x20\x20\x20\x69\x66\x20\x69\x20\x3d\x3d\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x2c\x20\x74\x2c\x20\x70\x0a\x20\x20\x20\x20\x69\x66\x20\x69\x20\x3d\x3d\x20\x31\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x71\x2c\x20\x76\x2c\x20\x70\x0a\x20\x20\x20\x20\x69\x66\x20\x69\x20\x3d\x3d\x20\x32\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x2c\x20\x76\x2c\x20\x74\x0a\x20\x20\x20\x20\x69\x66\x20\x69\x20\x3d\x3d\x20\x33\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x2c\x20\x71\x2c\x20\x76\x0a\x20\x20\x20\x20\x69\x66\x20\x69\x20\x3d\x3d\x20\x34\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x2c\x20\x70\x2c\x20\x76\x0a\x20\x20\x20\x20\x69\x66\x20\x69\x20\x3d\x3d\x20\x35\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x2c\x20\x70\x2c\x20\x71\x0a\x20\x20\x20\x20\x23\x20\x43\x61\x6e\x6e\x6f\x74\x20\x67\x65\x74\x20\x68\x65\x72\x65" }, + {"datetime", "\x66\x72\x6f\x6d\x20\x74\x69\x6d\x65\x20\x69\x6d\x70\x6f\x72\x74\x20\x6c\x6f\x63\x61\x6c\x74\x69\x6d\x65\x0a\x0a\x63\x6c\x61\x73\x73\x20\x74\x69\x6d\x65\x64\x65\x6c\x74\x61\x3a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x64\x61\x79\x73\x3d\x30\x2c\x20\x73\x65\x63\x6f\x6e\x64\x73\x3d\x30\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x64\x61\x79\x73\x20\x3d\x20\x64\x61\x79\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x73\x20\x3d\x20\x73\x65\x63\x6f\x6e\x64\x73\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x65\x70\x72\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x2e\x74\x69\x6d\x65\x64\x65\x6c\x74\x61\x28\x64\x61\x79\x73\x3d\x7b\x73\x65\x6c\x66\x2e\x64\x61\x79\x73\x7d\x2c\x20\x73\x65\x63\x6f\x6e\x64\x73\x3d\x7b\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x73\x7d\x29\x22\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x65\x71\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x27\x74\x69\x6d\x65\x64\x65\x6c\x74\x61\x27\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x74\x69\x6d\x65\x64\x65\x6c\x74\x61\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x64\x61\x79\x73\x2c\x20\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x73\x29\x20\x3d\x3d\x20\x28\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x73\x65\x63\x6f\x6e\x64\x73\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6c\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x27\x74\x69\x6d\x65\x64\x65\x6c\x74\x61\x27\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x74\x69\x6d\x65\x64\x65\x6c\x74\x61\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x64\x61\x79\x73\x2c\x20\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x73\x29\x20\x3c\x20\x28\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x73\x65\x63\x6f\x6e\x64\x73\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6c\x65\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x27\x74\x69\x6d\x65\x64\x65\x6c\x74\x61\x27\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x74\x69\x6d\x65\x64\x65\x6c\x74\x61\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x64\x61\x79\x73\x2c\x20\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x73\x29\x20\x3c\x3d\x20\x28\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x73\x65\x63\x6f\x6e\x64\x73\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x67\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x27\x74\x69\x6d\x65\x64\x65\x6c\x74\x61\x27\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x74\x69\x6d\x65\x64\x65\x6c\x74\x61\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x64\x61\x79\x73\x2c\x20\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x73\x29\x20\x3e\x20\x28\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x73\x65\x63\x6f\x6e\x64\x73\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x67\x65\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x27\x74\x69\x6d\x65\x64\x65\x6c\x74\x61\x27\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x74\x69\x6d\x65\x64\x65\x6c\x74\x61\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x64\x61\x79\x73\x2c\x20\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x73\x29\x20\x3e\x3d\x20\x28\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x73\x65\x63\x6f\x6e\x64\x73\x29\x0a\x0a\x0a\x63\x6c\x61\x73\x73\x20\x64\x61\x74\x65\x3a\x0a" "\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x79\x65\x61\x72\x3a\x20\x69\x6e\x74\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x69\x6e\x74\x2c\x20\x64\x61\x79\x3a\x20\x69\x6e\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x20\x3d\x20\x79\x65\x61\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x20\x3d\x20\x6d\x6f\x6e\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x64\x61\x79\x20\x3d\x20\x64\x61\x79\x0a\x0a\x20\x20\x20\x20\x40\x73\x74\x61\x74\x69\x63\x6d\x65\x74\x68\x6f\x64\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x74\x6f\x64\x61\x79\x28\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x20\x3d\x20\x6c\x6f\x63\x61\x6c\x74\x69\x6d\x65\x28\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x61\x74\x65\x28\x74\x2e\x74\x6d\x5f\x79\x65\x61\x72\x2c\x20\x74\x2e\x74\x6d\x5f\x6d\x6f\x6e\x2c\x20\x74\x2e\x74\x6d\x5f\x6d\x64\x61\x79\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x65\x71\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x27\x64\x61\x74\x65\x27\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x64\x61\x74\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x73\x65\x6c\x66\x2e\x64\x61\x79\x29\x20\x3d\x3d\x20\x28\x6f\x74\x68\x65\x72\x2e\x79\x65\x61\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6c\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x27\x64\x61\x74\x65\x27\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x64\x61\x74\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x73\x65\x6c\x66\x2e\x64\x61\x79\x29\x20\x3c\x20\x28\x6f\x74\x68\x65\x72\x2e\x79\x65\x61\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6c\x65\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x27\x64\x61\x74\x65\x27\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x64\x61\x74\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x73\x65\x6c\x66\x2e\x64\x61\x79\x29\x20\x3c\x3d\x20\x28\x6f\x74\x68\x65\x72\x2e\x79\x65\x61\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x67\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x27\x64\x61\x74\x65\x27\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x64\x61\x74\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x73\x65\x6c\x66\x2e\x64\x61\x79\x29\x20\x3e\x20\x28\x6f\x74\x68\x65\x72\x2e\x79\x65\x61\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x67\x65\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x27\x64\x61\x74\x65\x27\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x64\x61\x74\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x73\x65\x6c\x66\x2e\x64\x61\x79\x29\x20\x3e\x3d\x20\x28\x6f\x74\x68\x65\x72\x2e\x79\x65\x61\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d" "\x6f\x6e\x74\x68\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x73\x74\x72\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x22\x7b\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x7d\x2d\x7b\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x3a\x30\x32\x7d\x2d\x7b\x73\x65\x6c\x66\x2e\x64\x61\x79\x3a\x30\x32\x7d\x22\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x65\x70\x72\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x2e\x64\x61\x74\x65\x28\x7b\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x7d\x2c\x20\x7b\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x7d\x2c\x20\x7b\x73\x65\x6c\x66\x2e\x64\x61\x79\x7d\x29\x22\x0a\x0a\x0a\x63\x6c\x61\x73\x73\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x28\x64\x61\x74\x65\x29\x3a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x79\x65\x61\x72\x3a\x20\x69\x6e\x74\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x69\x6e\x74\x2c\x20\x64\x61\x79\x3a\x20\x69\x6e\x74\x2c\x20\x68\x6f\x75\x72\x3a\x20\x69\x6e\x74\x2c\x20\x6d\x69\x6e\x75\x74\x65\x3a\x20\x69\x6e\x74\x2c\x20\x73\x65\x63\x6f\x6e\x64\x3a\x20\x69\x6e\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x29\x2e\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x79\x65\x61\x72\x2c\x20\x6d\x6f\x6e\x74\x68\x2c\x20\x64\x61\x79\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x56\x61\x6c\x69\x64\x61\x74\x65\x20\x61\x6e\x64\x20\x73\x65\x74\x20\x68\x6f\x75\x72\x2c\x20\x6d\x69\x6e\x75\x74\x65\x2c\x20\x61\x6e\x64\x20\x73\x65\x63\x6f\x6e\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6e\x6f\x74\x20\x30\x20\x3c\x3d\x20\x68\x6f\x75\x72\x20\x3c\x3d\x20\x32\x33\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x28\x22\x48\x6f\x75\x72\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x30\x20\x61\x6e\x64\x20\x32\x33\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x68\x6f\x75\x72\x20\x3d\x20\x68\x6f\x75\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6e\x6f\x74\x20\x30\x20\x3c\x3d\x20\x6d\x69\x6e\x75\x74\x65\x20\x3c\x3d\x20\x35\x39\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x28\x22\x4d\x69\x6e\x75\x74\x65\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x30\x20\x61\x6e\x64\x20\x35\x39\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x6d\x69\x6e\x75\x74\x65\x20\x3d\x20\x6d\x69\x6e\x75\x74\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6e\x6f\x74\x20\x30\x20\x3c\x3d\x20\x73\x65\x63\x6f\x6e\x64\x20\x3c\x3d\x20\x35\x39\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x28\x22\x53\x65\x63\x6f\x6e\x64\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x30\x20\x61\x6e\x64\x20\x35\x39\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x20\x3d\x20\x73\x65\x63\x6f\x6e\x64\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x64\x61\x74\x65\x28\x73\x65\x6c\x66\x29\x20\x2d\x3e\x20\x64\x61\x74\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x61\x74\x65\x28\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x73\x65\x6c\x66\x2e\x64\x61\x79\x29\x0a\x0a\x20\x20\x20\x20\x40\x73\x74\x61\x74\x69\x63\x6d\x65\x74\x68\x6f\x64\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x6e\x6f\x77\x28\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x20\x3d\x20\x6c\x6f\x63\x61\x6c\x74\x69\x6d\x65\x28\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6d\x5f\x73\x65\x63\x20\x3d\x20\x74\x2e\x74\x6d\x5f\x73\x65\x63\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x6d\x5f\x73\x65\x63\x20\x3d\x3d\x20\x36\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6d\x5f\x73\x65\x63\x20\x3d\x20\x35\x39\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x28\x74\x2e\x74\x6d\x5f\x79\x65\x61\x72\x2c\x20\x74\x2e\x74\x6d\x5f\x6d\x6f\x6e\x2c\x20\x74\x2e\x74\x6d\x5f\x6d\x64\x61\x79\x2c\x20\x74\x2e\x74\x6d\x5f\x68\x6f\x75\x72\x2c\x20\x74\x2e\x74\x6d\x5f\x6d\x69\x6e\x2c\x20\x74\x6d\x5f\x73\x65\x63\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x73\x74\x72\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x22\x7b\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x7d\x2d\x7b\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x3a\x30\x32\x7d\x2d\x7b\x73\x65\x6c\x66\x2e\x64\x61\x79\x3a\x30\x32\x7d\x20\x7b\x73\x65\x6c\x66\x2e\x68\x6f\x75\x72\x3a\x30\x32\x7d\x3a\x7b\x73\x65\x6c\x66\x2e\x6d\x69\x6e\x75\x74\x65\x3a\x30\x32\x7d\x3a\x7b\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x3a\x30\x32\x7d\x22\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x65\x70\x72\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72" "\x65\x74\x75\x72\x6e\x20\x66\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x2e\x64\x61\x74\x65\x74\x69\x6d\x65\x28\x7b\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x7d\x2c\x20\x7b\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x7d\x2c\x20\x7b\x73\x65\x6c\x66\x2e\x64\x61\x79\x7d\x2c\x20\x7b\x73\x65\x6c\x66\x2e\x68\x6f\x75\x72\x7d\x2c\x20\x7b\x73\x65\x6c\x66\x2e\x6d\x69\x6e\x75\x74\x65\x7d\x2c\x20\x7b\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x7d\x29\x22\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x65\x71\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x73\x65\x6c\x66\x2e\x64\x61\x79\x2c\x20\x73\x65\x6c\x66\x2e\x68\x6f\x75\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x69\x6e\x75\x74\x65\x2c\x20\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x29\x20\x3d\x3d\x5c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x6f\x74\x68\x65\x72\x2e\x79\x65\x61\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x74\x68\x65\x72\x2e\x68\x6f\x75\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d\x69\x6e\x75\x74\x65\x2c\x20\x6f\x74\x68\x65\x72\x2e\x73\x65\x63\x6f\x6e\x64\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6c\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x73\x65\x6c\x66\x2e\x64\x61\x79\x2c\x20\x73\x65\x6c\x66\x2e\x68\x6f\x75\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x69\x6e\x75\x74\x65\x2c\x20\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x29\x20\x3c\x5c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x6f\x74\x68\x65\x72\x2e\x79\x65\x61\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x74\x68\x65\x72\x2e\x68\x6f\x75\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d\x69\x6e\x75\x74\x65\x2c\x20\x6f\x74\x68\x65\x72\x2e\x73\x65\x63\x6f\x6e\x64\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6c\x65\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x73\x65\x6c\x66\x2e\x64\x61\x79\x2c\x20\x73\x65\x6c\x66\x2e\x68\x6f\x75\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x69\x6e\x75\x74\x65\x2c\x20\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x29\x20\x3c\x3d\x5c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x6f\x74\x68\x65\x72\x2e\x79\x65\x61\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x74\x68\x65\x72\x2e\x68\x6f\x75\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d\x69\x6e\x75\x74\x65\x2c\x20\x6f\x74\x68\x65\x72\x2e\x73\x65\x63\x6f\x6e\x64\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x67\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x73\x65\x6c\x66\x2e\x64\x61\x79\x2c\x20\x73\x65\x6c\x66\x2e\x68\x6f\x75\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x69\x6e\x75\x74\x65\x2c\x20\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x29\x20\x3e\x5c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x6f\x74\x68\x65\x72\x2e\x79\x65\x61\x72\x2c\x20\x6f\x74\x68\x65" "\x72\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x74\x68\x65\x72\x2e\x68\x6f\x75\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d\x69\x6e\x75\x74\x65\x2c\x20\x6f\x74\x68\x65\x72\x2e\x73\x65\x63\x6f\x6e\x64\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x67\x65\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x20\x2d\x3e\x20\x62\x6f\x6f\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x65\x6c\x66\x2e\x79\x65\x61\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x73\x65\x6c\x66\x2e\x64\x61\x79\x2c\x20\x73\x65\x6c\x66\x2e\x68\x6f\x75\x72\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x69\x6e\x75\x74\x65\x2c\x20\x73\x65\x6c\x66\x2e\x73\x65\x63\x6f\x6e\x64\x29\x20\x3e\x3d\x5c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x6f\x74\x68\x65\x72\x2e\x79\x65\x61\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x61\x79\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x74\x68\x65\x72\x2e\x68\x6f\x75\x72\x2c\x20\x6f\x74\x68\x65\x72\x2e\x6d\x69\x6e\x75\x74\x65\x2c\x20\x6f\x74\x68\x65\x72\x2e\x73\x65\x63\x6f\x6e\x64\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x74\x69\x6d\x65\x73\x74\x61\x6d\x70\x28\x73\x65\x6c\x66\x29\x20\x2d\x3e\x20\x66\x6c\x6f\x61\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x45\x72\x72\x6f\x72\x0a\x0a" }, + {"functools", "\x23\x20\x64\x65\x66\x20\x63\x61\x63\x68\x65\x28\x66\x29\x3a\x0a\x23\x20\x20\x20\x20\x20\x64\x65\x66\x20\x77\x72\x61\x70\x70\x65\x72\x28\x2a\x61\x72\x67\x73\x29\x3a\x0a\x23\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6e\x6f\x74\x20\x68\x61\x73\x61\x74\x74\x72\x28\x66\x2c\x20\x27\x5f\x5f\x63\x61\x63\x68\x65\x5f\x5f\x27\x29\x3a\x0a\x23\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x2e\x5f\x5f\x63\x61\x63\x68\x65\x5f\x5f\x20\x3d\x20\x7b\x7d\x0a\x23\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x20\x3d\x20\x61\x72\x67\x73\x0a\x23\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6b\x65\x79\x20\x6e\x6f\x74\x20\x69\x6e\x20\x66\x2e\x5f\x5f\x63\x61\x63\x68\x65\x5f\x5f\x3a\x0a\x23\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x2e\x5f\x5f\x63\x61\x63\x68\x65\x5f\x5f\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x66\x28\x2a\x61\x72\x67\x73\x29\x0a\x23\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x5f\x5f\x63\x61\x63\x68\x65\x5f\x5f\x5b\x6b\x65\x79\x5d\x0a\x23\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x77\x72\x61\x70\x70\x65\x72\x0a\x0a\x63\x6c\x61\x73\x73\x20\x63\x61\x63\x68\x65\x3a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x66\x20\x3d\x20\x66\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x63\x61\x63\x68\x65\x20\x3d\x20\x7b\x7d\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x63\x61\x6c\x6c\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x2a\x61\x72\x67\x73\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x61\x72\x67\x73\x20\x6e\x6f\x74\x20\x69\x6e\x20\x73\x65\x6c\x66\x2e\x63\x61\x63\x68\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x63\x61\x63\x68\x65\x5b\x61\x72\x67\x73\x5d\x20\x3d\x20\x73\x65\x6c\x66\x2e\x66\x28\x2a\x61\x72\x67\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x63\x61\x63\x68\x65\x5b\x61\x72\x67\x73\x5d" }, + {"heapq", "\x23\x20\x48\x65\x61\x70\x20\x71\x75\x65\x75\x65\x20\x61\x6c\x67\x6f\x72\x69\x74\x68\x6d\x20\x28\x61\x2e\x6b\x2e\x61\x2e\x20\x70\x72\x69\x6f\x72\x69\x74\x79\x20\x71\x75\x65\x75\x65\x29\x0a\x64\x65\x66\x20\x68\x65\x61\x70\x70\x75\x73\x68\x28\x68\x65\x61\x70\x2c\x20\x69\x74\x65\x6d\x29\x3a\x0a\x20\x20\x20\x20\x22\x22\x22\x50\x75\x73\x68\x20\x69\x74\x65\x6d\x20\x6f\x6e\x74\x6f\x20\x68\x65\x61\x70\x2c\x20\x6d\x61\x69\x6e\x74\x61\x69\x6e\x69\x6e\x67\x20\x74\x68\x65\x20\x68\x65\x61\x70\x20\x69\x6e\x76\x61\x72\x69\x61\x6e\x74\x2e\x22\x22\x22\x0a\x20\x20\x20\x20\x68\x65\x61\x70\x2e\x61\x70\x70\x65\x6e\x64\x28\x69\x74\x65\x6d\x29\x0a\x20\x20\x20\x20\x5f\x73\x69\x66\x74\x64\x6f\x77\x6e\x28\x68\x65\x61\x70\x2c\x20\x30\x2c\x20\x6c\x65\x6e\x28\x68\x65\x61\x70\x29\x2d\x31\x29\x0a\x0a\x64\x65\x66\x20\x68\x65\x61\x70\x70\x6f\x70\x28\x68\x65\x61\x70\x29\x3a\x0a\x20\x20\x20\x20\x22\x22\x22\x50\x6f\x70\x20\x74\x68\x65\x20\x73\x6d\x61\x6c\x6c\x65\x73\x74\x20\x69\x74\x65\x6d\x20\x6f\x66\x66\x20\x74\x68\x65\x20\x68\x65\x61\x70\x2c\x20\x6d\x61\x69\x6e\x74\x61\x69\x6e\x69\x6e\x67\x20\x74\x68\x65\x20\x68\x65\x61\x70\x20\x69\x6e\x76\x61\x72\x69\x61\x6e\x74\x2e\x22\x22\x22\x0a\x20\x20\x20\x20\x6c\x61\x73\x74\x65\x6c\x74\x20\x3d\x20\x68\x65\x61\x70\x2e\x70\x6f\x70\x28\x29\x20\x20\x20\x20\x23\x20\x72\x61\x69\x73\x65\x73\x20\x61\x70\x70\x72\x6f\x70\x72\x69\x61\x74\x65\x20\x49\x6e\x64\x65\x78\x45\x72\x72\x6f\x72\x20\x69\x66\x20\x68\x65\x61\x70\x20\x69\x73\x20\x65\x6d\x70\x74\x79\x0a\x20\x20\x20\x20\x69\x66\x20\x68\x65\x61\x70\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x69\x74\x65\x6d\x20\x3d\x20\x68\x65\x61\x70\x5b\x30\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x70\x5b\x30\x5d\x20\x3d\x20\x6c\x61\x73\x74\x65\x6c\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x73\x69\x66\x74\x75\x70\x28\x68\x65\x61\x70\x2c\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x75\x72\x6e\x69\x74\x65\x6d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x61\x73\x74\x65\x6c\x74\x0a\x0a\x64\x65\x66\x20\x68\x65\x61\x70\x72\x65\x70\x6c\x61\x63\x65\x28\x68\x65\x61\x70\x2c\x20\x69\x74\x65\x6d\x29\x3a\x0a\x20\x20\x20\x20\x22\x22\x22\x50\x6f\x70\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x73\x6d\x61\x6c\x6c\x65\x73\x74\x20\x76\x61\x6c\x75\x65\x2c\x20\x61\x6e\x64\x20\x61\x64\x64\x20\x74\x68\x65\x20\x6e\x65\x77\x20\x69\x74\x65\x6d\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x69\x73\x20\x6d\x6f\x72\x65\x20\x65\x66\x66\x69\x63\x69\x65\x6e\x74\x20\x74\x68\x61\x6e\x20\x68\x65\x61\x70\x70\x6f\x70\x28\x29\x20\x66\x6f\x6c\x6c\x6f\x77\x65\x64\x20\x62\x79\x20\x68\x65\x61\x70\x70\x75\x73\x68\x28\x29\x2c\x20\x61\x6e\x64\x20\x63\x61\x6e\x20\x62\x65\x0a\x20\x20\x20\x20\x6d\x6f\x72\x65\x20\x61\x70\x70\x72\x6f\x70\x72\x69\x61\x74\x65\x20\x77\x68\x65\x6e\x20\x75\x73\x69\x6e\x67\x20\x61\x20\x66\x69\x78\x65\x64\x2d\x73\x69\x7a\x65\x20\x68\x65\x61\x70\x2e\x20\x20\x4e\x6f\x74\x65\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x76\x61\x6c\x75\x65\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x6d\x61\x79\x20\x62\x65\x20\x6c\x61\x72\x67\x65\x72\x20\x74\x68\x61\x6e\x20\x69\x74\x65\x6d\x21\x20\x20\x54\x68\x61\x74\x20\x63\x6f\x6e\x73\x74\x72\x61\x69\x6e\x73\x20\x72\x65\x61\x73\x6f\x6e\x61\x62\x6c\x65\x20\x75\x73\x65\x73\x20\x6f\x66\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x20\x72\x6f\x75\x74\x69\x6e\x65\x20\x75\x6e\x6c\x65\x73\x73\x20\x77\x72\x69\x74\x74\x65\x6e\x20\x61\x73\x20\x70\x61\x72\x74\x20\x6f\x66\x20\x61\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x61\x6c\x20\x72\x65\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x3a\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x69\x74\x65\x6d\x20\x3e\x20\x68\x65\x61\x70\x5b\x30\x5d\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x20\x3d\x20\x68\x65\x61\x70\x72\x65\x70\x6c\x61\x63\x65\x28\x68\x65\x61\x70\x2c\x20\x69\x74\x65\x6d\x29\x0a\x20\x20\x20\x20\x22\x22\x22\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x69\x74\x65\x6d\x20\x3d\x20\x68\x65\x61\x70\x5b\x30\x5d\x20\x20\x20\x20\x23\x20\x72\x61\x69\x73\x65\x73\x20\x61\x70\x70\x72\x6f\x70\x72\x69\x61\x74\x65\x20\x49\x6e\x64\x65\x78\x45\x72\x72\x6f\x72\x20\x69\x66\x20\x68\x65\x61\x70\x20\x69\x73\x20\x65\x6d\x70\x74\x79\x0a\x20\x20\x20\x20\x68\x65\x61\x70\x5b\x30\x5d\x20\x3d\x20\x69\x74\x65\x6d\x0a\x20\x20\x20\x20\x5f\x73\x69\x66\x74\x75\x70\x28\x68\x65\x61\x70\x2c\x20\x30\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x75\x72\x6e\x69\x74\x65\x6d\x0a\x0a\x64\x65\x66\x20\x68\x65\x61\x70\x70\x75\x73\x68\x70\x6f\x70\x28\x68\x65\x61\x70\x2c\x20\x69\x74\x65\x6d\x29\x3a\x0a\x20\x20\x20\x20\x22\x22\x22\x46\x61\x73\x74\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x61\x20\x68\x65\x61\x70\x70\x75\x73\x68\x20\x66\x6f\x6c\x6c\x6f\x77\x65\x64\x20\x62\x79\x20\x61\x20\x68\x65\x61\x70\x70\x6f\x70\x2e\x22\x22\x22\x0a\x20\x20\x20\x20\x69\x66\x20\x68\x65\x61\x70\x20\x61\x6e\x64\x20\x68\x65\x61\x70\x5b\x30\x5d\x20\x3c\x20\x69\x74\x65\x6d\x3a\x0a\x20\x20\x20\x20\x20\x20\x20" "\x20\x69\x74\x65\x6d\x2c\x20\x68\x65\x61\x70\x5b\x30\x5d\x20\x3d\x20\x68\x65\x61\x70\x5b\x30\x5d\x2c\x20\x69\x74\x65\x6d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x73\x69\x66\x74\x75\x70\x28\x68\x65\x61\x70\x2c\x20\x30\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x74\x65\x6d\x0a\x0a\x64\x65\x66\x20\x68\x65\x61\x70\x69\x66\x79\x28\x78\x29\x3a\x0a\x20\x20\x20\x20\x22\x22\x22\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x20\x6c\x69\x73\x74\x20\x69\x6e\x74\x6f\x20\x61\x20\x68\x65\x61\x70\x2c\x20\x69\x6e\x2d\x70\x6c\x61\x63\x65\x2c\x20\x69\x6e\x20\x4f\x28\x6c\x65\x6e\x28\x78\x29\x29\x20\x74\x69\x6d\x65\x2e\x22\x22\x22\x0a\x20\x20\x20\x20\x6e\x20\x3d\x20\x6c\x65\x6e\x28\x78\x29\x0a\x20\x20\x20\x20\x23\x20\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x20\x62\x6f\x74\x74\x6f\x6d\x2d\x75\x70\x2e\x20\x20\x54\x68\x65\x20\x6c\x61\x72\x67\x65\x73\x74\x20\x69\x6e\x64\x65\x78\x20\x74\x68\x65\x72\x65\x27\x73\x20\x61\x6e\x79\x20\x70\x6f\x69\x6e\x74\x20\x74\x6f\x20\x6c\x6f\x6f\x6b\x69\x6e\x67\x20\x61\x74\x0a\x20\x20\x20\x20\x23\x20\x69\x73\x20\x74\x68\x65\x20\x6c\x61\x72\x67\x65\x73\x74\x20\x77\x69\x74\x68\x20\x61\x20\x63\x68\x69\x6c\x64\x20\x69\x6e\x64\x65\x78\x20\x69\x6e\x2d\x72\x61\x6e\x67\x65\x2c\x20\x73\x6f\x20\x6d\x75\x73\x74\x20\x68\x61\x76\x65\x20\x32\x2a\x69\x20\x2b\x20\x31\x20\x3c\x20\x6e\x2c\x0a\x20\x20\x20\x20\x23\x20\x6f\x72\x20\x69\x20\x3c\x20\x28\x6e\x2d\x31\x29\x2f\x32\x2e\x20\x20\x49\x66\x20\x6e\x20\x69\x73\x20\x65\x76\x65\x6e\x20\x3d\x20\x32\x2a\x6a\x2c\x20\x74\x68\x69\x73\x20\x69\x73\x20\x28\x32\x2a\x6a\x2d\x31\x29\x2f\x32\x20\x3d\x20\x6a\x2d\x31\x2f\x32\x20\x73\x6f\x0a\x20\x20\x20\x20\x23\x20\x6a\x2d\x31\x20\x69\x73\x20\x74\x68\x65\x20\x6c\x61\x72\x67\x65\x73\x74\x2c\x20\x77\x68\x69\x63\x68\x20\x69\x73\x20\x6e\x2f\x2f\x32\x20\x2d\x20\x31\x2e\x20\x20\x49\x66\x20\x6e\x20\x69\x73\x20\x6f\x64\x64\x20\x3d\x20\x32\x2a\x6a\x2b\x31\x2c\x20\x74\x68\x69\x73\x20\x69\x73\x0a\x20\x20\x20\x20\x23\x20\x28\x32\x2a\x6a\x2b\x31\x2d\x31\x29\x2f\x32\x20\x3d\x20\x6a\x20\x73\x6f\x20\x6a\x2d\x31\x20\x69\x73\x20\x74\x68\x65\x20\x6c\x61\x72\x67\x65\x73\x74\x2c\x20\x61\x6e\x64\x20\x74\x68\x61\x74\x27\x73\x20\x61\x67\x61\x69\x6e\x20\x6e\x2f\x2f\x32\x2d\x31\x2e\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x72\x65\x76\x65\x72\x73\x65\x64\x28\x72\x61\x6e\x67\x65\x28\x6e\x2f\x2f\x32\x29\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x73\x69\x66\x74\x75\x70\x28\x78\x2c\x20\x69\x29\x0a\x0a\x23\x20\x27\x68\x65\x61\x70\x27\x20\x69\x73\x20\x61\x20\x68\x65\x61\x70\x20\x61\x74\x20\x61\x6c\x6c\x20\x69\x6e\x64\x69\x63\x65\x73\x20\x3e\x3d\x20\x73\x74\x61\x72\x74\x70\x6f\x73\x2c\x20\x65\x78\x63\x65\x70\x74\x20\x70\x6f\x73\x73\x69\x62\x6c\x79\x20\x66\x6f\x72\x20\x70\x6f\x73\x2e\x20\x20\x70\x6f\x73\x0a\x23\x20\x69\x73\x20\x74\x68\x65\x20\x69\x6e\x64\x65\x78\x20\x6f\x66\x20\x61\x20\x6c\x65\x61\x66\x20\x77\x69\x74\x68\x20\x61\x20\x70\x6f\x73\x73\x69\x62\x6c\x79\x20\x6f\x75\x74\x2d\x6f\x66\x2d\x6f\x72\x64\x65\x72\x20\x76\x61\x6c\x75\x65\x2e\x20\x20\x52\x65\x73\x74\x6f\x72\x65\x20\x74\x68\x65\x0a\x23\x20\x68\x65\x61\x70\x20\x69\x6e\x76\x61\x72\x69\x61\x6e\x74\x2e\x0a\x64\x65\x66\x20\x5f\x73\x69\x66\x74\x64\x6f\x77\x6e\x28\x68\x65\x61\x70\x2c\x20\x73\x74\x61\x72\x74\x70\x6f\x73\x2c\x20\x70\x6f\x73\x29\x3a\x0a\x20\x20\x20\x20\x6e\x65\x77\x69\x74\x65\x6d\x20\x3d\x20\x68\x65\x61\x70\x5b\x70\x6f\x73\x5d\x0a\x20\x20\x20\x20\x23\x20\x46\x6f\x6c\x6c\x6f\x77\x20\x74\x68\x65\x20\x70\x61\x74\x68\x20\x74\x6f\x20\x74\x68\x65\x20\x72\x6f\x6f\x74\x2c\x20\x6d\x6f\x76\x69\x6e\x67\x20\x70\x61\x72\x65\x6e\x74\x73\x20\x64\x6f\x77\x6e\x20\x75\x6e\x74\x69\x6c\x20\x66\x69\x6e\x64\x69\x6e\x67\x20\x61\x20\x70\x6c\x61\x63\x65\x0a\x20\x20\x20\x20\x23\x20\x6e\x65\x77\x69\x74\x65\x6d\x20\x66\x69\x74\x73\x2e\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x70\x6f\x73\x20\x3e\x20\x73\x74\x61\x72\x74\x70\x6f\x73\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x70\x6f\x73\x20\x3d\x20\x28\x70\x6f\x73\x20\x2d\x20\x31\x29\x20\x3e\x3e\x20\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x68\x65\x61\x70\x5b\x70\x61\x72\x65\x6e\x74\x70\x6f\x73\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6e\x65\x77\x69\x74\x65\x6d\x20\x3c\x20\x70\x61\x72\x65\x6e\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x70\x5b\x70\x6f\x73\x5d\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x6f\x73\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x70\x6f\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x0a\x20\x20\x20\x20\x68\x65\x61\x70\x5b\x70\x6f\x73\x5d\x20\x3d\x20\x6e\x65\x77\x69\x74\x65\x6d\x0a\x0a\x64\x65\x66\x20\x5f\x73\x69\x66\x74\x75\x70\x28\x68\x65\x61\x70\x2c\x20\x70\x6f\x73\x29\x3a\x0a\x20\x20\x20\x20\x65\x6e\x64\x70\x6f\x73\x20\x3d\x20\x6c\x65\x6e\x28\x68\x65\x61\x70\x29\x0a\x20\x20\x20\x20\x73\x74\x61\x72\x74\x70\x6f\x73\x20\x3d\x20\x70\x6f\x73\x0a\x20\x20\x20\x20\x6e\x65\x77\x69\x74\x65\x6d\x20\x3d\x20\x68" "\x65\x61\x70\x5b\x70\x6f\x73\x5d\x0a\x20\x20\x20\x20\x23\x20\x42\x75\x62\x62\x6c\x65\x20\x75\x70\x20\x74\x68\x65\x20\x73\x6d\x61\x6c\x6c\x65\x72\x20\x63\x68\x69\x6c\x64\x20\x75\x6e\x74\x69\x6c\x20\x68\x69\x74\x74\x69\x6e\x67\x20\x61\x20\x6c\x65\x61\x66\x2e\x0a\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x70\x6f\x73\x20\x3d\x20\x32\x2a\x70\x6f\x73\x20\x2b\x20\x31\x20\x20\x20\x20\x23\x20\x6c\x65\x66\x74\x6d\x6f\x73\x74\x20\x63\x68\x69\x6c\x64\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x63\x68\x69\x6c\x64\x70\x6f\x73\x20\x3c\x20\x65\x6e\x64\x70\x6f\x73\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x53\x65\x74\x20\x63\x68\x69\x6c\x64\x70\x6f\x73\x20\x74\x6f\x20\x69\x6e\x64\x65\x78\x20\x6f\x66\x20\x73\x6d\x61\x6c\x6c\x65\x72\x20\x63\x68\x69\x6c\x64\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x69\x67\x68\x74\x70\x6f\x73\x20\x3d\x20\x63\x68\x69\x6c\x64\x70\x6f\x73\x20\x2b\x20\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x72\x69\x67\x68\x74\x70\x6f\x73\x20\x3c\x20\x65\x6e\x64\x70\x6f\x73\x20\x61\x6e\x64\x20\x6e\x6f\x74\x20\x68\x65\x61\x70\x5b\x63\x68\x69\x6c\x64\x70\x6f\x73\x5d\x20\x3c\x20\x68\x65\x61\x70\x5b\x72\x69\x67\x68\x74\x70\x6f\x73\x5d\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x70\x6f\x73\x20\x3d\x20\x72\x69\x67\x68\x74\x70\x6f\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x4d\x6f\x76\x65\x20\x74\x68\x65\x20\x73\x6d\x61\x6c\x6c\x65\x72\x20\x63\x68\x69\x6c\x64\x20\x75\x70\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x70\x5b\x70\x6f\x73\x5d\x20\x3d\x20\x68\x65\x61\x70\x5b\x63\x68\x69\x6c\x64\x70\x6f\x73\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x6f\x73\x20\x3d\x20\x63\x68\x69\x6c\x64\x70\x6f\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x70\x6f\x73\x20\x3d\x20\x32\x2a\x70\x6f\x73\x20\x2b\x20\x31\x0a\x20\x20\x20\x20\x23\x20\x54\x68\x65\x20\x6c\x65\x61\x66\x20\x61\x74\x20\x70\x6f\x73\x20\x69\x73\x20\x65\x6d\x70\x74\x79\x20\x6e\x6f\x77\x2e\x20\x20\x50\x75\x74\x20\x6e\x65\x77\x69\x74\x65\x6d\x20\x74\x68\x65\x72\x65\x2c\x20\x61\x6e\x64\x20\x62\x75\x62\x62\x6c\x65\x20\x69\x74\x20\x75\x70\x0a\x20\x20\x20\x20\x23\x20\x74\x6f\x20\x69\x74\x73\x20\x66\x69\x6e\x61\x6c\x20\x72\x65\x73\x74\x69\x6e\x67\x20\x70\x6c\x61\x63\x65\x20\x28\x62\x79\x20\x73\x69\x66\x74\x69\x6e\x67\x20\x69\x74\x73\x20\x70\x61\x72\x65\x6e\x74\x73\x20\x64\x6f\x77\x6e\x29\x2e\x0a\x20\x20\x20\x20\x68\x65\x61\x70\x5b\x70\x6f\x73\x5d\x20\x3d\x20\x6e\x65\x77\x69\x74\x65\x6d\x0a\x20\x20\x20\x20\x5f\x73\x69\x66\x74\x64\x6f\x77\x6e\x28\x68\x65\x61\x70\x2c\x20\x73\x74\x61\x72\x74\x70\x6f\x73\x2c\x20\x70\x6f\x73\x29" }, + {"pickle", "\x69\x6d\x70\x6f\x72\x74\x20\x6a\x73\x6f\x6e\x0a\x66\x72\x6f\x6d\x20\x63\x20\x69\x6d\x70\x6f\x72\x74\x20\x73\x74\x72\x75\x63\x74\x0a\x69\x6d\x70\x6f\x72\x74\x20\x62\x75\x69\x6c\x74\x69\x6e\x73\x0a\x0a\x5f\x42\x41\x53\x49\x43\x5f\x54\x59\x50\x45\x53\x20\x3d\x20\x5b\x69\x6e\x74\x2c\x20\x66\x6c\x6f\x61\x74\x2c\x20\x73\x74\x72\x2c\x20\x62\x6f\x6f\x6c\x2c\x20\x74\x79\x70\x65\x28\x4e\x6f\x6e\x65\x29\x5d\x0a\x5f\x4d\x4f\x44\x5f\x54\x5f\x53\x45\x50\x20\x3d\x20\x22\x40\x22\x0a\x0a\x64\x65\x66\x20\x5f\x66\x69\x6e\x64\x5f\x63\x6c\x61\x73\x73\x28\x70\x61\x74\x68\x3a\x20\x73\x74\x72\x29\x3a\x0a\x20\x20\x20\x20\x69\x66\x20\x5f\x4d\x4f\x44\x5f\x54\x5f\x53\x45\x50\x20\x6e\x6f\x74\x20\x69\x6e\x20\x70\x61\x74\x68\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x62\x75\x69\x6c\x74\x69\x6e\x73\x2e\x5f\x5f\x64\x69\x63\x74\x5f\x5f\x5b\x70\x61\x74\x68\x5d\x0a\x20\x20\x20\x20\x6d\x6f\x64\x70\x61\x74\x68\x2c\x20\x6e\x61\x6d\x65\x20\x3d\x20\x70\x61\x74\x68\x2e\x73\x70\x6c\x69\x74\x28\x5f\x4d\x4f\x44\x5f\x54\x5f\x53\x45\x50\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5f\x5f\x69\x6d\x70\x6f\x72\x74\x5f\x5f\x28\x6d\x6f\x64\x70\x61\x74\x68\x29\x2e\x5f\x5f\x64\x69\x63\x74\x5f\x5f\x5b\x6e\x61\x6d\x65\x5d\x0a\x0a\x63\x6c\x61\x73\x73\x20\x5f\x50\x69\x63\x6b\x6c\x65\x72\x3a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x62\x6a\x29\x20\x2d\x3e\x20\x4e\x6f\x6e\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x6f\x62\x6a\x20\x3d\x20\x6f\x62\x6a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x72\x61\x77\x5f\x6d\x65\x6d\x6f\x20\x3d\x20\x7b\x7d\x20\x20\x23\x20\x69\x64\x20\x2d\x3e\x20\x69\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x6d\x65\x6d\x6f\x20\x3d\x20\x5b\x5d\x20\x20\x20\x20\x20\x20\x23\x20\x69\x6e\x74\x20\x2d\x3e\x20\x6f\x62\x6a\x65\x63\x74\x0a\x0a\x20\x20\x20\x20\x40\x73\x74\x61\x74\x69\x63\x6d\x65\x74\x68\x6f\x64\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x74\x79\x70\x65\x5f\x69\x64\x28\x74\x3a\x20\x74\x79\x70\x65\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x74\x79\x70\x65\x28\x74\x29\x20\x69\x73\x20\x74\x79\x70\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x61\x6d\x65\x20\x3d\x20\x74\x2e\x5f\x5f\x6e\x61\x6d\x65\x5f\x5f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x20\x3d\x20\x74\x2e\x5f\x5f\x6d\x6f\x64\x75\x6c\x65\x5f\x5f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6d\x6f\x64\x20\x69\x73\x20\x6e\x6f\x74\x20\x4e\x6f\x6e\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x61\x6d\x65\x20\x3d\x20\x6d\x6f\x64\x2e\x5f\x5f\x70\x61\x74\x68\x5f\x5f\x20\x2b\x20\x5f\x4d\x4f\x44\x5f\x54\x5f\x53\x45\x50\x20\x2b\x20\x6e\x61\x6d\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x61\x6d\x65\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x77\x72\x61\x70\x28\x73\x65\x6c\x66\x2c\x20\x6f\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x5f\x74\x20\x3d\x20\x74\x79\x70\x65\x28\x6f\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6f\x5f\x74\x20\x69\x6e\x20\x5f\x42\x41\x53\x49\x43\x5f\x54\x59\x50\x45\x53\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6f\x5f\x74\x20\x69\x73\x20\x74\x79\x70\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x22\x74\x79\x70\x65\x22\x2c\x20\x73\x65\x6c\x66\x2e\x5f\x74\x79\x70\x65\x5f\x69\x64\x28\x6f\x29\x5d\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x78\x20\x3d\x20\x73\x65\x6c\x66\x2e\x72\x61\x77\x5f\x6d\x65\x6d\x6f\x2e\x67\x65\x74\x28\x69\x64\x28\x6f\x29\x2c\x20\x4e\x6f\x6e\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x69\x6e\x64\x65\x78\x20\x69\x73\x20\x6e\x6f\x74\x20\x4e\x6f\x6e\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x69\x6e\x64\x65\x78\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x5b\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x78\x20\x3d\x20\x6c\x65\x6e\x28\x73\x65\x6c\x66\x2e\x6d\x65\x6d\x6f\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x6d\x65\x6d\x6f\x2e\x61\x70\x70\x65\x6e\x64\x28\x72\x65\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x72\x61\x77\x5f\x6d\x65\x6d\x6f\x5b\x69\x64\x28\x6f\x29\x5d\x20\x3d\x20\x69\x6e\x64\x65\x78\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6f\x5f\x74\x20\x69\x73\x20\x74\x75\x70\x6c\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x22\x74\x75\x70\x6c\x65\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x5b\x73\x65\x6c\x66\x2e\x77\x72\x61\x70\x28\x69\x29\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x6f\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x69\x6e\x64\x65\x78\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6f\x5f\x74\x20\x69\x73\x20\x62\x79" "\x74\x65\x73\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x22\x62\x79\x74\x65\x73\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x5b\x6f\x5b\x6a\x5d\x20\x66\x6f\x72\x20\x6a\x20\x69\x6e\x20\x72\x61\x6e\x67\x65\x28\x6c\x65\x6e\x28\x6f\x29\x29\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x69\x6e\x64\x65\x78\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6f\x5f\x74\x20\x69\x73\x20\x6c\x69\x73\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x22\x6c\x69\x73\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x5b\x73\x65\x6c\x66\x2e\x77\x72\x61\x70\x28\x69\x29\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x6f\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x69\x6e\x64\x65\x78\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6f\x5f\x74\x20\x69\x73\x20\x64\x69\x63\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x22\x64\x69\x63\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x5b\x5b\x73\x65\x6c\x66\x2e\x77\x72\x61\x70\x28\x6b\x29\x2c\x20\x73\x65\x6c\x66\x2e\x77\x72\x61\x70\x28\x76\x29\x5d\x20\x66\x6f\x72\x20\x6b\x2c\x76\x20\x69\x6e\x20\x6f\x2e\x69\x74\x65\x6d\x73\x28\x29\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x69\x6e\x64\x65\x78\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x30\x20\x3d\x20\x73\x65\x6c\x66\x2e\x5f\x74\x79\x70\x65\x5f\x69\x64\x28\x6f\x5f\x74\x29\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x67\x65\x74\x61\x74\x74\x72\x28\x6f\x5f\x74\x2c\x20\x27\x5f\x5f\x73\x74\x72\x75\x63\x74\x5f\x5f\x27\x2c\x20\x46\x61\x6c\x73\x65\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x5f\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x6f\x2e\x74\x6f\x5f\x73\x74\x72\x75\x63\x74\x28\x29\x2e\x68\x65\x78\x28\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x69\x6e\x64\x65\x78\x5d\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x68\x61\x73\x61\x74\x74\x72\x28\x6f\x2c\x20\x22\x5f\x5f\x67\x65\x74\x6e\x65\x77\x61\x72\x67\x73\x5f\x5f\x22\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x31\x20\x3d\x20\x6f\x2e\x5f\x5f\x67\x65\x74\x6e\x65\x77\x61\x72\x67\x73\x5f\x5f\x28\x29\x20\x20\x20\x20\x20\x23\x20\x61\x6e\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x31\x20\x3d\x20\x5b\x73\x65\x6c\x66\x2e\x77\x72\x61\x70\x28\x69\x29\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x5f\x31\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x31\x20\x3d\x20\x4e\x6f\x6e\x65\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6f\x2e\x5f\x5f\x64\x69\x63\x74\x5f\x5f\x20\x69\x73\x20\x4e\x6f\x6e\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x32\x20\x3d\x20\x4e\x6f\x6e\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x32\x20\x3d\x20\x7b\x6b\x3a\x20\x73\x65\x6c\x66\x2e\x77\x72\x61\x70\x28\x76\x29\x20\x66\x6f\x72\x20\x6b\x2c\x76\x20\x69\x6e\x20\x6f\x2e\x5f\x5f\x64\x69\x63\x74\x5f\x5f\x2e\x69\x74\x65\x6d\x73\x28\x29\x7d\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x5f\x30\x29\x20\x20\x23\x20\x74\x79\x70\x65\x20\x69\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x5f\x31\x29\x20\x20\x23\x20\x6e\x65\x77\x61\x72\x67\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x5f\x32\x29\x20\x20\x23\x20\x73\x74\x61\x74\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x69\x6e\x64\x65\x78\x5d\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x72\x75\x6e\x5f\x70\x69\x70\x65\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x20\x3d\x20\x73\x65\x6c\x66\x2e\x77\x72\x61\x70\x28\x73\x65\x6c\x66\x2e\x6f\x62\x6a\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x6f\x2c\x20\x73\x65\x6c\x66\x2e\x6d\x65\x6d\x6f\x5d\x0a\x0a\x0a\x0a\x63\x6c\x61\x73\x73\x20\x5f\x55\x6e\x70\x69\x63\x6b\x6c\x65\x72\x3a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x62\x6a\x2c\x20\x6d\x65\x6d\x6f\x3a\x20\x6c\x69\x73\x74\x29\x20\x2d\x3e\x20\x4e\x6f\x6e\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x6f\x62\x6a\x20\x3d\x20\x6f\x62\x6a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x6d\x65\x6d\x6f\x20\x3d\x20\x6d\x65\x6d\x6f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x5f" "\x75\x6e\x77\x72\x61\x70\x70\x65\x64\x20\x3d\x20\x5b\x4e\x6f\x6e\x65\x5d\x20\x2a\x20\x6c\x65\x6e\x28\x6d\x65\x6d\x6f\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x74\x61\x67\x28\x73\x65\x6c\x66\x2c\x20\x69\x6e\x64\x65\x78\x2c\x20\x6f\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x73\x65\x6c\x66\x2e\x5f\x75\x6e\x77\x72\x61\x70\x70\x65\x64\x5b\x69\x6e\x64\x65\x78\x5d\x20\x69\x73\x20\x4e\x6f\x6e\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x5f\x75\x6e\x77\x72\x61\x70\x70\x65\x64\x5b\x69\x6e\x64\x65\x78\x5d\x20\x3d\x20\x6f\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x75\x6e\x77\x72\x61\x70\x28\x73\x65\x6c\x66\x2c\x20\x6f\x2c\x20\x69\x6e\x64\x65\x78\x3d\x4e\x6f\x6e\x65\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x29\x20\x69\x6e\x20\x5f\x42\x41\x53\x49\x43\x5f\x54\x59\x50\x45\x53\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x74\x79\x70\x65\x28\x6f\x29\x20\x69\x73\x20\x6c\x69\x73\x74\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6f\x5b\x30\x5d\x20\x3d\x3d\x20\x22\x74\x79\x70\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5f\x66\x69\x6e\x64\x5f\x63\x6c\x61\x73\x73\x28\x6f\x5b\x31\x5d\x29\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x5b\x30\x5d\x29\x20\x69\x73\x20\x69\x6e\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x69\x6e\x64\x65\x78\x20\x69\x73\x20\x4e\x6f\x6e\x65\x20\x20\x20\x20\x23\x20\x69\x6e\x64\x65\x78\x20\x73\x68\x6f\x75\x6c\x64\x20\x62\x65\x20\x4e\x6f\x6e\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x78\x20\x3d\x20\x6f\x5b\x30\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x73\x65\x6c\x66\x2e\x5f\x75\x6e\x77\x72\x61\x70\x70\x65\x64\x5b\x69\x6e\x64\x65\x78\x5d\x20\x69\x73\x20\x4e\x6f\x6e\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x20\x3d\x20\x73\x65\x6c\x66\x2e\x6d\x65\x6d\x6f\x5b\x69\x6e\x64\x65\x78\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x74\x79\x70\x65\x28\x6f\x29\x20\x69\x73\x20\x6c\x69\x73\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x74\x79\x70\x65\x28\x6f\x5b\x30\x5d\x29\x20\x69\x73\x20\x73\x74\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x75\x6e\x77\x72\x61\x70\x28\x6f\x2c\x20\x69\x6e\x64\x65\x78\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x73\x65\x6c\x66\x2e\x5f\x75\x6e\x77\x72\x61\x70\x70\x65\x64\x5b\x69\x6e\x64\x65\x78\x5d\x20\x69\x73\x20\x6e\x6f\x74\x20\x4e\x6f\x6e\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x75\x6e\x77\x72\x61\x70\x70\x65\x64\x5b\x69\x6e\x64\x65\x78\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x63\x6f\x6e\x63\x72\x65\x74\x65\x20\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x20\x74\x79\x70\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6f\x5b\x30\x5d\x20\x3d\x3d\x20\x22\x74\x75\x70\x6c\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x74\x75\x70\x6c\x65\x28\x5b\x73\x65\x6c\x66\x2e\x75\x6e\x77\x72\x61\x70\x28\x69\x29\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x6f\x5b\x31\x5d\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x74\x61\x67\x28\x69\x6e\x64\x65\x78\x2c\x20\x72\x65\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6f\x5b\x30\x5d\x20\x3d\x3d\x20\x22\x62\x79\x74\x65\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x62\x79\x74\x65\x73\x28\x6f\x5b\x31\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x74\x61\x67\x28\x69\x6e\x64\x65\x78\x2c\x20\x72\x65\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6f\x5b\x30\x5d\x20\x3d\x3d\x20\x22\x6c\x69\x73\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x5b\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x74\x61\x67\x28\x69\x6e\x64\x65\x78\x2c\x20\x72\x65\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x6f\x5b\x31\x5d\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x70\x70\x65\x6e\x64\x28\x73\x65\x6c\x66\x2e\x75\x6e\x77\x72\x61\x70\x28\x69\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69" "\x66\x20\x6f\x5b\x30\x5d\x20\x3d\x3d\x20\x22\x64\x69\x63\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x7b\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x74\x61\x67\x28\x69\x6e\x64\x65\x78\x2c\x20\x72\x65\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x6b\x2c\x76\x20\x69\x6e\x20\x6f\x5b\x31\x5d\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x5b\x73\x65\x6c\x66\x2e\x75\x6e\x77\x72\x61\x70\x28\x6b\x29\x5d\x20\x3d\x20\x73\x65\x6c\x66\x2e\x75\x6e\x77\x72\x61\x70\x28\x76\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x67\x65\x6e\x65\x72\x69\x63\x20\x6f\x62\x6a\x65\x63\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x73\x20\x3d\x20\x5f\x66\x69\x6e\x64\x5f\x63\x6c\x61\x73\x73\x28\x6f\x5b\x30\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x67\x65\x74\x61\x74\x74\x72\x28\x63\x6c\x73\x2c\x20\x27\x5f\x5f\x73\x74\x72\x75\x63\x74\x5f\x5f\x27\x2c\x20\x46\x61\x6c\x73\x65\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x20\x3d\x20\x63\x6c\x73\x2e\x66\x72\x6f\x6d\x5f\x73\x74\x72\x75\x63\x74\x28\x73\x74\x72\x75\x63\x74\x2e\x66\x72\x6f\x6d\x68\x65\x78\x28\x6f\x5b\x31\x5d\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x74\x61\x67\x28\x69\x6e\x64\x65\x78\x2c\x20\x69\x6e\x73\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6e\x73\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x2c\x20\x6e\x65\x77\x61\x72\x67\x73\x2c\x20\x73\x74\x61\x74\x65\x20\x3d\x20\x6f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x63\x72\x65\x61\x74\x65\x20\x75\x6e\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x5f\x66\x20\x3d\x20\x67\x65\x74\x61\x74\x74\x72\x28\x63\x6c\x73\x2c\x20\x22\x5f\x5f\x6e\x65\x77\x5f\x5f\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6e\x65\x77\x61\x72\x67\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x4e\x6f\x6e\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x61\x72\x67\x73\x20\x3d\x20\x5b\x73\x65\x6c\x66\x2e\x75\x6e\x77\x72\x61\x70\x28\x69\x29\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x6e\x65\x77\x61\x72\x67\x73\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x20\x3d\x20\x6e\x65\x77\x5f\x66\x28\x63\x6c\x73\x2c\x20\x2a\x6e\x65\x77\x61\x72\x67\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x20\x3d\x20\x6e\x65\x77\x5f\x66\x28\x63\x6c\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x74\x61\x67\x28\x69\x6e\x64\x65\x78\x2c\x20\x69\x6e\x73\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x23\x20\x72\x65\x73\x74\x6f\x72\x65\x20\x73\x74\x61\x74\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x73\x74\x61\x74\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x4e\x6f\x6e\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x6b\x2c\x76\x20\x69\x6e\x20\x73\x74\x61\x74\x65\x2e\x69\x74\x65\x6d\x73\x28\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x61\x74\x74\x72\x28\x69\x6e\x73\x74\x2c\x20\x6b\x2c\x20\x73\x65\x6c\x66\x2e\x75\x6e\x77\x72\x61\x70\x28\x76\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6e\x73\x74\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x72\x75\x6e\x5f\x70\x69\x70\x65\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x75\x6e\x77\x72\x61\x70\x28\x73\x65\x6c\x66\x2e\x6f\x62\x6a\x29\x0a\x0a\x0a\x64\x65\x66\x20\x5f\x77\x72\x61\x70\x28\x6f\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5f\x50\x69\x63\x6b\x6c\x65\x72\x28\x6f\x29\x2e\x72\x75\x6e\x5f\x70\x69\x70\x65\x28\x29\x0a\x0a\x64\x65\x66\x20\x5f\x75\x6e\x77\x72\x61\x70\x28\x70\x61\x63\x6b\x65\x64\x3a\x20\x6c\x69\x73\x74\x29\x3a\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5f\x55\x6e\x70\x69\x63\x6b\x6c\x65\x72\x28\x2a\x70\x61\x63\x6b\x65\x64\x29\x2e\x72\x75\x6e\x5f\x70\x69\x70\x65\x28\x29\x0a\x0a\x64\x65\x66\x20\x64\x75\x6d\x70\x73\x28\x6f\x29\x20\x2d\x3e\x20\x62\x79\x74\x65\x73\x3a\x0a\x20\x20\x20\x20\x6f\x20\x3d\x20\x5f\x77\x72\x61\x70\x28\x6f\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6a\x73\x6f\x6e\x2e\x64\x75\x6d\x70\x73\x28\x6f\x29\x2e\x65\x6e\x63\x6f\x64\x65\x28\x29\x0a\x0a\x64\x65\x66\x20\x6c\x6f\x61\x64\x73\x28\x62\x29\x20\x2d\x3e\x20\x6f\x62\x6a\x65\x63\x74\x3a\x0a\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x74\x79\x70\x65\x28\x62\x29\x20\x69\x73" "\x20\x62\x79\x74\x65\x73\x0a\x20\x20\x20\x20\x6f\x20\x3d\x20\x6a\x73\x6f\x6e\x2e\x6c\x6f\x61\x64\x73\x28\x62\x2e\x64\x65\x63\x6f\x64\x65\x28\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5f\x75\x6e\x77\x72\x61\x70\x28\x6f\x29" }, + {"this", "\x70\x72\x69\x6e\x74\x28\x22\x22\x22\x54\x68\x65\x20\x5a\x65\x6e\x20\x6f\x66\x20\x50\x79\x74\x68\x6f\x6e\x2c\x20\x62\x79\x20\x54\x69\x6d\x20\x50\x65\x74\x65\x72\x73\x0a\x0a\x42\x65\x61\x75\x74\x69\x66\x75\x6c\x20\x69\x73\x20\x62\x65\x74\x74\x65\x72\x20\x74\x68\x61\x6e\x20\x75\x67\x6c\x79\x2e\x0a\x45\x78\x70\x6c\x69\x63\x69\x74\x20\x69\x73\x20\x62\x65\x74\x74\x65\x72\x20\x74\x68\x61\x6e\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x2e\x0a\x53\x69\x6d\x70\x6c\x65\x20\x69\x73\x20\x62\x65\x74\x74\x65\x72\x20\x74\x68\x61\x6e\x20\x63\x6f\x6d\x70\x6c\x65\x78\x2e\x0a\x43\x6f\x6d\x70\x6c\x65\x78\x20\x69\x73\x20\x62\x65\x74\x74\x65\x72\x20\x74\x68\x61\x6e\x20\x63\x6f\x6d\x70\x6c\x69\x63\x61\x74\x65\x64\x2e\x0a\x46\x6c\x61\x74\x20\x69\x73\x20\x62\x65\x74\x74\x65\x72\x20\x74\x68\x61\x6e\x20\x6e\x65\x73\x74\x65\x64\x2e\x0a\x53\x70\x61\x72\x73\x65\x20\x69\x73\x20\x62\x65\x74\x74\x65\x72\x20\x74\x68\x61\x6e\x20\x64\x65\x6e\x73\x65\x2e\x0a\x52\x65\x61\x64\x61\x62\x69\x6c\x69\x74\x79\x20\x63\x6f\x75\x6e\x74\x73\x2e\x0a\x53\x70\x65\x63\x69\x61\x6c\x20\x63\x61\x73\x65\x73\x20\x61\x72\x65\x6e\x27\x74\x20\x73\x70\x65\x63\x69\x61\x6c\x20\x65\x6e\x6f\x75\x67\x68\x20\x74\x6f\x20\x62\x72\x65\x61\x6b\x20\x74\x68\x65\x20\x72\x75\x6c\x65\x73\x2e\x0a\x41\x6c\x74\x68\x6f\x75\x67\x68\x20\x70\x72\x61\x63\x74\x69\x63\x61\x6c\x69\x74\x79\x20\x62\x65\x61\x74\x73\x20\x70\x75\x72\x69\x74\x79\x2e\x0a\x45\x72\x72\x6f\x72\x73\x20\x73\x68\x6f\x75\x6c\x64\x20\x6e\x65\x76\x65\x72\x20\x70\x61\x73\x73\x20\x73\x69\x6c\x65\x6e\x74\x6c\x79\x2e\x0a\x55\x6e\x6c\x65\x73\x73\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x6c\x79\x20\x73\x69\x6c\x65\x6e\x63\x65\x64\x2e\x0a\x49\x6e\x20\x74\x68\x65\x20\x66\x61\x63\x65\x20\x6f\x66\x20\x61\x6d\x62\x69\x67\x75\x69\x74\x79\x2c\x20\x72\x65\x66\x75\x73\x65\x20\x74\x68\x65\x20\x74\x65\x6d\x70\x74\x61\x74\x69\x6f\x6e\x20\x74\x6f\x20\x67\x75\x65\x73\x73\x2e\x0a\x54\x68\x65\x72\x65\x20\x73\x68\x6f\x75\x6c\x64\x20\x62\x65\x20\x6f\x6e\x65\x2d\x2d\x20\x61\x6e\x64\x20\x70\x72\x65\x66\x65\x72\x61\x62\x6c\x79\x20\x6f\x6e\x6c\x79\x20\x6f\x6e\x65\x20\x2d\x2d\x6f\x62\x76\x69\x6f\x75\x73\x20\x77\x61\x79\x20\x74\x6f\x20\x64\x6f\x20\x69\x74\x2e\x0a\x41\x6c\x74\x68\x6f\x75\x67\x68\x20\x74\x68\x61\x74\x20\x77\x61\x79\x20\x6d\x61\x79\x20\x6e\x6f\x74\x20\x62\x65\x20\x6f\x62\x76\x69\x6f\x75\x73\x20\x61\x74\x20\x66\x69\x72\x73\x74\x20\x75\x6e\x6c\x65\x73\x73\x20\x79\x6f\x75\x27\x72\x65\x20\x44\x75\x74\x63\x68\x2e\x0a\x4e\x6f\x77\x20\x69\x73\x20\x62\x65\x74\x74\x65\x72\x20\x74\x68\x61\x6e\x20\x6e\x65\x76\x65\x72\x2e\x0a\x41\x6c\x74\x68\x6f\x75\x67\x68\x20\x6e\x65\x76\x65\x72\x20\x69\x73\x20\x6f\x66\x74\x65\x6e\x20\x62\x65\x74\x74\x65\x72\x20\x74\x68\x61\x6e\x20\x2a\x72\x69\x67\x68\x74\x2a\x20\x6e\x6f\x77\x2e\x0a\x49\x66\x20\x74\x68\x65\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x69\x73\x20\x68\x61\x72\x64\x20\x74\x6f\x20\x65\x78\x70\x6c\x61\x69\x6e\x2c\x20\x69\x74\x27\x73\x20\x61\x20\x62\x61\x64\x20\x69\x64\x65\x61\x2e\x0a\x49\x66\x20\x74\x68\x65\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x69\x73\x20\x65\x61\x73\x79\x20\x74\x6f\x20\x65\x78\x70\x6c\x61\x69\x6e\x2c\x20\x69\x74\x20\x6d\x61\x79\x20\x62\x65\x20\x61\x20\x67\x6f\x6f\x64\x20\x69\x64\x65\x61\x2e\x0a\x4e\x61\x6d\x65\x73\x70\x61\x63\x65\x73\x20\x61\x72\x65\x20\x6f\x6e\x65\x20\x68\x6f\x6e\x6b\x69\x6e\x67\x20\x67\x72\x65\x61\x74\x20\x69\x64\x65\x61\x20\x2d\x2d\x20\x6c\x65\x74\x27\x73\x20\x64\x6f\x20\x6d\x6f\x72\x65\x20\x6f\x66\x20\x74\x68\x6f\x73\x65\x21\x22\x22\x22\x29" }, + {"typing", "\x63\x6c\x61\x73\x73\x20\x5f\x50\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x3a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x2a\x61\x72\x67\x73\x2c\x20\x2a\x2a\x6b\x77\x61\x72\x67\x73\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x73\x73\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x67\x65\x74\x69\x74\x65\x6d\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x2a\x61\x72\x67\x73\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x63\x61\x6c\x6c\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x2a\x61\x72\x67\x73\x2c\x20\x2a\x2a\x6b\x77\x61\x72\x67\x73\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x0a\x20\x20\x20\x20\x0a\x0a\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x20\x3d\x20\x5f\x50\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x28\x29\x0a\x0a\x4c\x69\x73\x74\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x44\x69\x63\x74\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x54\x75\x70\x6c\x65\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x53\x65\x74\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x41\x6e\x79\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x55\x6e\x69\x6f\x6e\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x4f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x43\x61\x6c\x6c\x61\x62\x6c\x65\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x54\x79\x70\x65\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x50\x72\x6f\x74\x6f\x63\x6f\x6c\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x0a\x4c\x69\x74\x65\x72\x61\x6c\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x4c\x69\x74\x65\x72\x61\x6c\x53\x74\x72\x69\x6e\x67\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x0a\x49\x74\x65\x72\x61\x62\x6c\x65\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x47\x65\x6e\x65\x72\x61\x74\x6f\x72\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x0a\x54\x79\x70\x65\x56\x61\x72\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x53\x65\x6c\x66\x20\x3d\x20\x5f\x50\x4c\x41\x43\x45\x48\x4f\x4c\x44\x45\x52\x0a\x0a\x63\x6c\x61\x73\x73\x20\x47\x65\x6e\x65\x72\x69\x63\x3a\x0a\x20\x20\x20\x20\x70\x61\x73\x73\x0a\x0a\x54\x59\x50\x45\x5f\x43\x48\x45\x43\x4b\x49\x4e\x47\x20\x3d\x20\x46\x61\x6c\x73\x65\x0a\x0a\x23\x20\x64\x65\x63\x6f\x72\x61\x74\x6f\x72\x73\x0a\x6f\x76\x65\x72\x6c\x6f\x61\x64\x20\x3d\x20\x6c\x61\x6d\x62\x64\x61\x20\x78\x3a\x20\x78\x0a\x66\x69\x6e\x61\x6c\x20\x3d\x20\x6c\x61\x6d\x62\x64\x61\x20\x78\x3a\x20\x78\x0a" }, + {"_long", "\x23\x20\x61\x66\x74\x65\x72\x20\x76\x31\x2e\x32\x2e\x32\x2c\x20\x69\x6e\x74\x20\x69\x73\x20\x61\x6c\x77\x61\x79\x73\x20\x36\x34\x2d\x62\x69\x74\x0a\x50\x79\x4c\x6f\x6e\x67\x5f\x53\x48\x49\x46\x54\x20\x3d\x20\x36\x30\x2f\x2f\x32\x20\x2d\x20\x31\x0a\x0a\x50\x79\x4c\x6f\x6e\x67\x5f\x42\x41\x53\x45\x20\x3d\x20\x32\x20\x2a\x2a\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x53\x48\x49\x46\x54\x0a\x50\x79\x4c\x6f\x6e\x67\x5f\x4d\x41\x53\x4b\x20\x3d\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x42\x41\x53\x45\x20\x2d\x20\x31\x0a\x50\x79\x4c\x6f\x6e\x67\x5f\x44\x45\x43\x49\x4d\x41\x4c\x5f\x53\x48\x49\x46\x54\x20\x3d\x20\x34\x0a\x50\x79\x4c\x6f\x6e\x67\x5f\x44\x45\x43\x49\x4d\x41\x4c\x5f\x42\x41\x53\x45\x20\x3d\x20\x31\x30\x20\x2a\x2a\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x44\x45\x43\x49\x4d\x41\x4c\x5f\x53\x48\x49\x46\x54\x0a\x0a\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x66\x72\x6f\x6d\x69\x6e\x74\x28\x78\x3a\x20\x69\x6e\x74\x29\x3a\x0a\x20\x20\x20\x20\x23\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x20\x6c\x69\x73\x74\x20\x6f\x66\x20\x64\x69\x67\x69\x74\x73\x20\x61\x6e\x64\x20\x73\x69\x67\x6e\x0a\x20\x20\x20\x20\x69\x66\x20\x78\x20\x3d\x3d\x20\x30\x3a\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x30\x5d\x2c\x20\x31\x0a\x20\x20\x20\x20\x73\x69\x67\x6e\x20\x3d\x20\x31\x20\x69\x66\x20\x78\x20\x3e\x20\x30\x20\x65\x6c\x73\x65\x20\x2d\x31\x0a\x20\x20\x20\x20\x69\x66\x20\x73\x69\x67\x6e\x20\x3c\x20\x30\x3a\x20\x78\x20\x3d\x20\x2d\x78\x0a\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x5b\x5d\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x78\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x78\x20\x26\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x4d\x41\x53\x4b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x78\x20\x3e\x3e\x3d\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x53\x48\x49\x46\x54\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x2c\x20\x73\x69\x67\x6e\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x63\x6d\x70\x28\x61\x3a\x20\x6c\x69\x73\x74\x2c\x20\x62\x3a\x20\x6c\x69\x73\x74\x29\x20\x2d\x3e\x20\x69\x6e\x74\x3a\x0a\x20\x20\x20\x20\x23\x20\x72\x65\x74\x75\x72\x6e\x20\x31\x20\x69\x66\x20\x61\x3e\x62\x2c\x20\x2d\x31\x20\x69\x66\x20\x61\x3c\x62\x2c\x20\x30\x20\x69\x66\x20\x61\x3d\x3d\x62\x0a\x20\x20\x20\x20\x69\x66\x20\x6c\x65\x6e\x28\x61\x29\x20\x3e\x20\x6c\x65\x6e\x28\x62\x29\x3a\x20\x72\x65\x74\x75\x72\x6e\x20\x31\x0a\x20\x20\x20\x20\x69\x66\x20\x6c\x65\x6e\x28\x61\x29\x20\x3c\x20\x6c\x65\x6e\x28\x62\x29\x3a\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x31\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x72\x61\x6e\x67\x65\x28\x6c\x65\x6e\x28\x61\x29\x2d\x31\x2c\x20\x2d\x31\x2c\x20\x2d\x31\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x61\x5b\x69\x5d\x20\x3e\x20\x62\x5b\x69\x5d\x3a\x20\x72\x65\x74\x75\x72\x6e\x20\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x61\x5b\x69\x5d\x20\x3c\x20\x62\x5b\x69\x5d\x3a\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x31\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x70\x61\x64\x5f\x28\x61\x3a\x20\x6c\x69\x73\x74\x2c\x20\x73\x69\x7a\x65\x3a\x20\x69\x6e\x74\x29\x3a\x0a\x20\x20\x20\x20\x23\x20\x70\x61\x64\x20\x6c\x65\x61\x64\x69\x6e\x67\x20\x7a\x65\x72\x6f\x73\x20\x74\x6f\x20\x68\x61\x76\x65\x20\x60\x73\x69\x7a\x65\x60\x20\x64\x69\x67\x69\x74\x73\x0a\x20\x20\x20\x20\x64\x65\x6c\x74\x61\x20\x3d\x20\x73\x69\x7a\x65\x20\x2d\x20\x6c\x65\x6e\x28\x61\x29\x0a\x20\x20\x20\x20\x69\x66\x20\x64\x65\x6c\x74\x61\x20\x3e\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x2e\x65\x78\x74\x65\x6e\x64\x28\x5b\x30\x5d\x20\x2a\x20\x64\x65\x6c\x74\x61\x29\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x75\x6e\x70\x61\x64\x5f\x28\x61\x3a\x20\x6c\x69\x73\x74\x29\x3a\x0a\x20\x20\x20\x20\x23\x20\x72\x65\x6d\x6f\x76\x65\x20\x6c\x65\x61\x64\x69\x6e\x67\x20\x7a\x65\x72\x6f\x73\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x6c\x65\x6e\x28\x61\x29\x3e\x31\x20\x61\x6e\x64\x20\x61\x5b\x2d\x31\x5d\x3d\x3d\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x2e\x70\x6f\x70\x28\x29\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x61\x64\x64\x28\x61\x3a\x20\x6c\x69\x73\x74\x2c\x20\x62\x3a\x20\x6c\x69\x73\x74\x29\x20\x2d\x3e\x20\x6c\x69\x73\x74\x3a\x0a\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x5b\x30\x5d\x20\x2a\x20\x6d\x61\x78\x28\x6c\x65\x6e\x28\x61\x29\x2c\x20\x6c\x65\x6e\x28\x62\x29\x29\x0a\x20\x20\x20\x20\x75\x6c\x6f\x6e\x67\x5f\x70\x61\x64\x5f\x28\x61\x2c\x20\x6c\x65\x6e\x28\x72\x65\x73\x29\x29\x0a\x20\x20\x20\x20\x75\x6c\x6f\x6e\x67\x5f\x70\x61\x64\x5f\x28\x62\x2c\x20\x6c\x65\x6e\x28\x72\x65\x73\x29\x29\x0a\x20\x20\x20\x20\x63\x61\x72\x72\x79\x20\x3d\x20\x30\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x72\x61\x6e\x67\x65\x28\x6c\x65\x6e\x28\x72\x65\x73\x29\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x72\x72\x79\x20\x2b\x3d\x20\x61" "\x5b\x69\x5d\x20\x2b\x20\x62\x5b\x69\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x5b\x69\x5d\x20\x3d\x20\x63\x61\x72\x72\x79\x20\x26\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x4d\x41\x53\x4b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x72\x72\x79\x20\x3e\x3e\x3d\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x53\x48\x49\x46\x54\x0a\x20\x20\x20\x20\x69\x66\x20\x63\x61\x72\x72\x79\x20\x3e\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x63\x61\x72\x72\x79\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x69\x6e\x63\x5f\x28\x61\x3a\x20\x6c\x69\x73\x74\x29\x3a\x0a\x20\x20\x20\x20\x61\x5b\x30\x5d\x20\x2b\x3d\x20\x31\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x72\x61\x6e\x67\x65\x28\x6c\x65\x6e\x28\x61\x29\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x61\x5b\x69\x5d\x20\x3c\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x42\x41\x53\x45\x3a\x20\x62\x72\x65\x61\x6b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x5b\x69\x5d\x20\x2d\x3d\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x42\x41\x53\x45\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x69\x2b\x31\x20\x3d\x3d\x20\x6c\x65\x6e\x28\x61\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x2e\x61\x70\x70\x65\x6e\x64\x28\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x5b\x69\x2b\x31\x5d\x20\x2b\x3d\x20\x31\x0a\x20\x20\x20\x20\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x73\x75\x62\x28\x61\x3a\x20\x6c\x69\x73\x74\x2c\x20\x62\x3a\x20\x6c\x69\x73\x74\x29\x20\x2d\x3e\x20\x6c\x69\x73\x74\x3a\x0a\x20\x20\x20\x20\x23\x20\x61\x20\x3e\x3d\x20\x62\x0a\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x5b\x5d\x0a\x20\x20\x20\x20\x62\x6f\x72\x72\x6f\x77\x20\x3d\x20\x30\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x72\x61\x6e\x67\x65\x28\x6c\x65\x6e\x28\x62\x29\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6d\x70\x20\x3d\x20\x61\x5b\x69\x5d\x20\x2d\x20\x62\x5b\x69\x5d\x20\x2d\x20\x62\x6f\x72\x72\x6f\x77\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x6d\x70\x20\x3c\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6d\x70\x20\x2b\x3d\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x42\x41\x53\x45\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6f\x72\x72\x6f\x77\x20\x3d\x20\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6f\x72\x72\x6f\x77\x20\x3d\x20\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x74\x6d\x70\x29\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x72\x61\x6e\x67\x65\x28\x6c\x65\x6e\x28\x62\x29\x2c\x20\x6c\x65\x6e\x28\x61\x29\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6d\x70\x20\x3d\x20\x61\x5b\x69\x5d\x20\x2d\x20\x62\x6f\x72\x72\x6f\x77\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x6d\x70\x20\x3c\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6d\x70\x20\x2b\x3d\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x42\x41\x53\x45\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6f\x72\x72\x6f\x77\x20\x3d\x20\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6f\x72\x72\x6f\x77\x20\x3d\x20\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x74\x6d\x70\x29\x0a\x20\x20\x20\x20\x75\x6c\x6f\x6e\x67\x5f\x75\x6e\x70\x61\x64\x5f\x28\x72\x65\x73\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x64\x69\x76\x6d\x6f\x64\x69\x28\x61\x3a\x20\x6c\x69\x73\x74\x2c\x20\x62\x3a\x20\x69\x6e\x74\x29\x3a\x0a\x20\x20\x20\x20\x23\x20\x62\x20\x3e\x20\x30\x0a\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x5b\x5d\x0a\x20\x20\x20\x20\x63\x61\x72\x72\x79\x20\x3d\x20\x30\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x72\x61\x6e\x67\x65\x28\x6c\x65\x6e\x28\x61\x29\x2d\x31\x2c\x20\x2d\x31\x2c\x20\x2d\x31\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x72\x72\x79\x20\x3c\x3c\x3d\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x53\x48\x49\x46\x54\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x72\x72\x79\x20\x2b\x3d\x20\x61\x5b\x69\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x63\x61\x72\x72\x79\x20\x2f\x2f\x20\x62\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x72\x72\x79\x20\x25\x3d\x20\x62\x0a\x20\x20\x20\x20\x72\x65\x73\x2e\x72\x65\x76\x65\x72\x73\x65\x28\x29\x0a\x20\x20\x20\x20\x75\x6c\x6f\x6e\x67\x5f\x75\x6e\x70\x61\x64\x5f\x28\x72\x65\x73\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x2c\x20\x63\x61\x72\x72\x79\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x64\x69\x76\x6d\x6f\x64\x28\x61\x3a\x20\x6c\x69\x73\x74\x2c\x20\x62\x3a\x20\x6c\x69\x73\x74\x29\x3a\x0a\x20\x20\x20\x20\x71\x20\x3d\x20\x5b\x30\x5d\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x75\x6c\x6f\x6e\x67\x5f\x63\x6d\x70\x28\x61\x2c\x20\x62\x29\x20\x3e\x3d\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75" "\x6c\x6f\x6e\x67\x5f\x69\x6e\x63\x5f\x28\x71\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x73\x75\x62\x28\x61\x2c\x20\x62\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x71\x2c\x20\x61\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x66\x6c\x6f\x6f\x72\x64\x69\x76\x69\x28\x61\x3a\x20\x6c\x69\x73\x74\x2c\x20\x62\x3a\x20\x69\x6e\x74\x29\x3a\x0a\x20\x20\x20\x20\x23\x20\x62\x20\x3e\x20\x30\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x75\x6c\x6f\x6e\x67\x5f\x64\x69\x76\x6d\x6f\x64\x69\x28\x61\x2c\x20\x62\x29\x5b\x30\x5d\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x6d\x75\x6c\x69\x28\x61\x3a\x20\x6c\x69\x73\x74\x2c\x20\x62\x3a\x20\x69\x6e\x74\x29\x3a\x0a\x20\x20\x20\x20\x23\x20\x62\x20\x3e\x3d\x20\x30\x0a\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x5b\x30\x5d\x20\x2a\x20\x6c\x65\x6e\x28\x61\x29\x0a\x20\x20\x20\x20\x63\x61\x72\x72\x79\x20\x3d\x20\x30\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x72\x61\x6e\x67\x65\x28\x6c\x65\x6e\x28\x61\x29\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x72\x72\x79\x20\x2b\x3d\x20\x61\x5b\x69\x5d\x20\x2a\x20\x62\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x5b\x69\x5d\x20\x3d\x20\x63\x61\x72\x72\x79\x20\x26\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x4d\x41\x53\x4b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x72\x72\x79\x20\x3e\x3e\x3d\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x53\x48\x49\x46\x54\x0a\x20\x20\x20\x20\x69\x66\x20\x63\x61\x72\x72\x79\x20\x3e\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x63\x61\x72\x72\x79\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x6d\x75\x6c\x28\x61\x3a\x20\x6c\x69\x73\x74\x2c\x20\x62\x3a\x20\x6c\x69\x73\x74\x29\x3a\x0a\x20\x20\x20\x20\x4e\x20\x3d\x20\x6c\x65\x6e\x28\x61\x29\x20\x2b\x20\x6c\x65\x6e\x28\x62\x29\x0a\x20\x20\x20\x20\x23\x20\x75\x73\x65\x20\x67\x72\x61\x64\x65\x2d\x73\x63\x68\x6f\x6f\x6c\x20\x6d\x75\x6c\x74\x69\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x0a\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x5b\x30\x5d\x20\x2a\x20\x4e\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x72\x61\x6e\x67\x65\x28\x6c\x65\x6e\x28\x61\x29\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x72\x72\x79\x20\x3d\x20\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x6a\x20\x69\x6e\x20\x72\x61\x6e\x67\x65\x28\x6c\x65\x6e\x28\x62\x29\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x72\x72\x79\x20\x2b\x3d\x20\x72\x65\x73\x5b\x69\x2b\x6a\x5d\x20\x2b\x20\x61\x5b\x69\x5d\x20\x2a\x20\x62\x5b\x6a\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x5b\x69\x2b\x6a\x5d\x20\x3d\x20\x63\x61\x72\x72\x79\x20\x26\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x4d\x41\x53\x4b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x72\x72\x79\x20\x3e\x3e\x3d\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x53\x48\x49\x46\x54\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x5b\x69\x2b\x6c\x65\x6e\x28\x62\x29\x5d\x20\x3d\x20\x63\x61\x72\x72\x79\x0a\x20\x20\x20\x20\x75\x6c\x6f\x6e\x67\x5f\x75\x6e\x70\x61\x64\x5f\x28\x72\x65\x73\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x70\x6f\x77\x69\x28\x61\x3a\x20\x6c\x69\x73\x74\x2c\x20\x62\x3a\x20\x69\x6e\x74\x29\x3a\x0a\x20\x20\x20\x20\x23\x20\x62\x20\x3e\x3d\x20\x30\x0a\x20\x20\x20\x20\x69\x66\x20\x62\x20\x3d\x3d\x20\x30\x3a\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x31\x5d\x0a\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x5b\x31\x5d\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x62\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x62\x20\x26\x20\x31\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x6d\x75\x6c\x28\x72\x65\x73\x2c\x20\x61\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x6d\x75\x6c\x28\x61\x2c\x20\x61\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x20\x3e\x3e\x3d\x20\x31\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x72\x65\x70\x72\x28\x78\x3a\x20\x6c\x69\x73\x74\x29\x20\x2d\x3e\x20\x73\x74\x72\x3a\x0a\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x5b\x5d\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x6c\x65\x6e\x28\x78\x29\x3e\x31\x20\x6f\x72\x20\x78\x5b\x30\x5d\x3e\x30\x3a\x20\x20\x20\x23\x20\x6e\x6f\x6e\x2d\x7a\x65\x72\x6f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x78\x2c\x20\x72\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x64\x69\x76\x6d\x6f\x64\x69\x28\x78\x2c\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x44\x45\x43\x49\x4d\x41\x4c\x5f\x42\x41\x53\x45\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x2e\x61\x70\x70\x65\x6e\x64\x28\x73\x74\x72\x28\x72\x29\x2e\x7a\x66\x69\x6c\x6c\x28\x50\x79\x4c\x6f\x6e\x67\x5f\x44\x45\x43\x49\x4d\x41\x4c\x5f\x53\x48\x49\x46\x54\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x73\x2e\x72\x65\x76\x65\x72\x73\x65\x28\x29\x0a\x20\x20\x20\x20\x73\x20\x3d\x20\x27\x27\x2e\x6a\x6f\x69\x6e\x28\x72\x65\x73\x29\x0a\x20\x20\x20\x20\x69\x66\x20\x6c\x65\x6e\x28\x73\x29" "\x20\x3d\x3d\x20\x30\x3a\x20\x72\x65\x74\x75\x72\x6e\x20\x27\x30\x27\x0a\x20\x20\x20\x20\x69\x66\x20\x6c\x65\x6e\x28\x73\x29\x20\x3e\x20\x31\x3a\x20\x73\x20\x3d\x20\x73\x2e\x6c\x73\x74\x72\x69\x70\x28\x27\x30\x27\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x0a\x0a\x64\x65\x66\x20\x75\x6c\x6f\x6e\x67\x5f\x66\x72\x6f\x6d\x73\x74\x72\x28\x73\x3a\x20\x73\x74\x72\x29\x3a\x0a\x20\x20\x20\x20\x69\x66\x20\x73\x5b\x2d\x31\x5d\x20\x3d\x3d\x20\x27\x4c\x27\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x20\x3d\x20\x73\x5b\x3a\x2d\x31\x5d\x0a\x20\x20\x20\x20\x72\x65\x73\x2c\x20\x62\x61\x73\x65\x20\x3d\x20\x5b\x30\x5d\x2c\x20\x5b\x31\x5d\x0a\x20\x20\x20\x20\x69\x66\x20\x73\x5b\x30\x5d\x20\x3d\x3d\x20\x27\x2d\x27\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x69\x67\x6e\x20\x3d\x20\x2d\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x20\x3d\x20\x73\x5b\x31\x3a\x5d\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x69\x67\x6e\x20\x3d\x20\x31\x0a\x20\x20\x20\x20\x73\x20\x3d\x20\x73\x5b\x3a\x3a\x2d\x31\x5d\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x63\x20\x69\x6e\x20\x73\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x20\x3d\x20\x6f\x72\x64\x28\x63\x29\x20\x2d\x20\x34\x38\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x30\x20\x3c\x3d\x20\x63\x20\x3c\x3d\x20\x39\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x61\x64\x64\x28\x72\x65\x73\x2c\x20\x75\x6c\x6f\x6e\x67\x5f\x6d\x75\x6c\x69\x28\x62\x61\x73\x65\x2c\x20\x63\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x61\x73\x65\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x6d\x75\x6c\x69\x28\x62\x61\x73\x65\x2c\x20\x31\x30\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x2c\x20\x73\x69\x67\x6e\x0a\x0a\x63\x6c\x61\x73\x73\x20\x6c\x6f\x6e\x67\x3a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x78\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x78\x29\x20\x69\x73\x20\x74\x75\x70\x6c\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x3d\x20\x78\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x74\x79\x70\x65\x28\x78\x29\x20\x69\x73\x20\x69\x6e\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x66\x72\x6f\x6d\x69\x6e\x74\x28\x78\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x74\x79\x70\x65\x28\x78\x29\x20\x69\x73\x20\x66\x6c\x6f\x61\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x66\x72\x6f\x6d\x69\x6e\x74\x28\x69\x6e\x74\x28\x78\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x74\x79\x70\x65\x28\x78\x29\x20\x69\x73\x20\x73\x74\x72\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x66\x72\x6f\x6d\x73\x74\x72\x28\x78\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x74\x79\x70\x65\x28\x78\x29\x20\x69\x73\x20\x6c\x6f\x6e\x67\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x3d\x20\x78\x2e\x64\x69\x67\x69\x74\x73\x2e\x63\x6f\x70\x79\x28\x29\x2c\x20\x78\x2e\x73\x69\x67\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x28\x27\x65\x78\x70\x65\x63\x74\x65\x64\x20\x69\x6e\x74\x20\x6f\x72\x20\x73\x74\x72\x27\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6c\x65\x6e\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x65\x6e\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x61\x64\x64\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x69\x6e\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x74\x68\x65\x72\x20\x3d\x20\x6c\x6f\x6e\x67\x28\x6f\x74\x68\x65\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x6c\x6f\x6e\x67\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x3d\x3d\x20\x6f\x74\x68\x65\x72\x2e\x73\x69\x67\x6e\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x75\x6c\x6f\x6e\x67" "\x5f\x61\x64\x64\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x69\x67\x69\x74\x73\x29\x2c\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6d\x70\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x63\x6d\x70\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x69\x67\x69\x74\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x63\x6d\x70\x20\x3d\x3d\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x63\x6d\x70\x20\x3e\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x75\x6c\x6f\x6e\x67\x5f\x73\x75\x62\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x69\x67\x69\x74\x73\x29\x2c\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x75\x6c\x6f\x6e\x67\x5f\x73\x75\x62\x28\x6f\x74\x68\x65\x72\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x29\x2c\x20\x6f\x74\x68\x65\x72\x2e\x73\x69\x67\x6e\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x61\x64\x64\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x61\x64\x64\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x73\x75\x62\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x69\x6e\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x74\x68\x65\x72\x20\x3d\x20\x6c\x6f\x6e\x67\x28\x6f\x74\x68\x65\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x6c\x6f\x6e\x67\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x21\x3d\x20\x6f\x74\x68\x65\x72\x2e\x73\x69\x67\x6e\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x75\x6c\x6f\x6e\x67\x5f\x61\x64\x64\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x69\x67\x69\x74\x73\x29\x2c\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6d\x70\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x63\x6d\x70\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x69\x67\x69\x74\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x63\x6d\x70\x20\x3d\x3d\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x63\x6d\x70\x20\x3e\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x75\x6c\x6f\x6e\x67\x5f\x73\x75\x62\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x69\x67\x69\x74\x73\x29\x2c\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x75\x6c\x6f\x6e\x67\x5f\x73\x75\x62\x28\x6f\x74\x68\x65\x72\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x29\x2c\x20\x2d\x6f\x74\x68\x65\x72\x2e\x73\x69\x67\x6e\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x73\x75\x62\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x69\x6e\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x74\x68\x65\x72\x20\x3d\x20\x6c\x6f\x6e\x67\x28\x6f\x74\x68\x65\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x6c\x6f\x6e\x67\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x74\x68\x65\x72\x2e\x5f\x5f\x73\x75\x62\x5f\x5f\x28\x73\x65\x6c\x66\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6d\x75\x6c\x5f\x5f" "\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x69\x6e\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6c\x6f\x6e\x67\x5f\x6d\x75\x6c\x69\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x61\x62\x73\x28\x6f\x74\x68\x65\x72\x29\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x2a\x20\x28\x31\x20\x69\x66\x20\x6f\x74\x68\x65\x72\x20\x3e\x3d\x20\x30\x20\x65\x6c\x73\x65\x20\x2d\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6c\x6f\x6e\x67\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6c\x6f\x6e\x67\x5f\x6d\x75\x6c\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x69\x67\x69\x74\x73\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x2a\x20\x6f\x74\x68\x65\x72\x2e\x73\x69\x67\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x6d\x75\x6c\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x6d\x75\x6c\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x23\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x64\x69\x76\x6d\x6f\x64\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x69\x6e\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x3d\x3d\x20\x31\x20\x61\x6e\x64\x20\x6f\x74\x68\x65\x72\x20\x3e\x20\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x71\x2c\x20\x72\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x64\x69\x76\x6d\x6f\x64\x69\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x6f\x74\x68\x65\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x71\x2c\x20\x31\x29\x29\x2c\x20\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6c\x6f\x6e\x67\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x3d\x3d\x20\x31\x20\x61\x6e\x64\x20\x6f\x74\x68\x65\x72\x2e\x73\x69\x67\x6e\x20\x3d\x3d\x20\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x71\x2c\x20\x72\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x64\x69\x76\x6d\x6f\x64\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x69\x67\x69\x74\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x6c\x65\x6e\x28\x6f\x74\x68\x65\x72\x29\x3e\x31\x20\x6f\x72\x20\x6f\x74\x68\x65\x72\x2e\x64\x69\x67\x69\x74\x73\x5b\x30\x5d\x3e\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x71\x2c\x20\x31\x29\x29\x2c\x20\x6c\x6f\x6e\x67\x28\x28\x72\x2c\x20\x31\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x69\x73\x65\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x45\x72\x72\x6f\x72\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x66\x6c\x6f\x6f\x72\x64\x69\x76\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x64\x69\x76\x6d\x6f\x64\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x5b\x30\x5d\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6d\x6f\x64\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x64\x69\x76\x6d\x6f\x64\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x5b\x31\x5d\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x70\x6f\x77\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x69\x6e\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x69\x6e\x74\x20\x61\x6e\x64\x20\x6f\x74\x68\x65\x72\x20\x3e\x3d\x20\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66" "\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x3d\x3d\x20\x2d\x31\x20\x61\x6e\x64\x20\x6f\x74\x68\x65\x72\x20\x26\x20\x31\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x69\x67\x6e\x20\x3d\x20\x2d\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x69\x67\x6e\x20\x3d\x20\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x75\x6c\x6f\x6e\x67\x5f\x70\x6f\x77\x69\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x6f\x74\x68\x65\x72\x29\x2c\x20\x73\x69\x67\x6e\x29\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6c\x73\x68\x69\x66\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x69\x6e\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x69\x6e\x74\x20\x61\x6e\x64\x20\x6f\x74\x68\x65\x72\x20\x3e\x3d\x20\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x78\x20\x3d\x20\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2e\x63\x6f\x70\x79\x28\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x71\x2c\x20\x72\x20\x3d\x20\x64\x69\x76\x6d\x6f\x64\x28\x6f\x74\x68\x65\x72\x2c\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x53\x48\x49\x46\x54\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x78\x20\x3d\x20\x5b\x30\x5d\x2a\x71\x20\x2b\x20\x78\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x5f\x20\x69\x6e\x20\x72\x61\x6e\x67\x65\x28\x72\x29\x3a\x20\x78\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x6d\x75\x6c\x69\x28\x78\x2c\x20\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x78\x2c\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x29\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x73\x68\x69\x66\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x3a\x20\x69\x6e\x74\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x65\x72\x74\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x69\x6e\x74\x20\x61\x6e\x64\x20\x6f\x74\x68\x65\x72\x20\x3e\x3d\x20\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x78\x20\x3d\x20\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2e\x63\x6f\x70\x79\x28\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x71\x2c\x20\x72\x20\x3d\x20\x64\x69\x76\x6d\x6f\x64\x28\x6f\x74\x68\x65\x72\x2c\x20\x50\x79\x4c\x6f\x6e\x67\x5f\x53\x48\x49\x46\x54\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x78\x20\x3d\x20\x78\x5b\x71\x3a\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6e\x6f\x74\x20\x78\x3a\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x5f\x20\x69\x6e\x20\x72\x61\x6e\x67\x65\x28\x72\x29\x3a\x20\x78\x20\x3d\x20\x75\x6c\x6f\x6e\x67\x5f\x66\x6c\x6f\x6f\x72\x64\x69\x76\x69\x28\x78\x2c\x20\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x78\x2c\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x29\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6e\x65\x67\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x6e\x67\x28\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x2d\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x29\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x63\x6d\x70\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x69\x6e\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x74\x68\x65\x72\x20\x3d\x20\x6c\x6f\x6e\x67\x28\x6f\x74\x68\x65\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x74\x79\x70\x65\x28\x6f\x74\x68\x65\x72\x29\x20\x69\x73\x20\x6e\x6f\x74\x20\x6c\x6f\x6e\x67\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x74\x49\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x3e\x20\x6f\x74\x68\x65\x72\x2e\x73\x69\x67\x6e\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x69\x66\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x3c\x20\x6f\x74\x68\x65\x72\x2e\x73\x69\x67\x6e\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x75\x6c\x6f\x6e\x67\x5f\x63\x6d\x70\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x2c\x20\x6f\x74\x68\x65\x72\x2e\x64\x69\x67\x69\x74\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x65\x71\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x63\x6d\x70\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x20\x3d\x3d\x20\x30\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6c\x74\x5f\x5f\x28" "\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x63\x6d\x70\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x20\x3c\x20\x30\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6c\x65\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x63\x6d\x70\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x20\x3c\x3d\x20\x30\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x67\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x63\x6d\x70\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x20\x3e\x20\x30\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x67\x65\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x63\x6d\x70\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x20\x3e\x3d\x20\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x65\x70\x72\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x65\x66\x69\x78\x20\x3d\x20\x27\x2d\x27\x20\x69\x66\x20\x73\x65\x6c\x66\x2e\x73\x69\x67\x6e\x20\x3c\x20\x30\x20\x65\x6c\x73\x65\x20\x27\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x65\x66\x69\x78\x20\x2b\x20\x75\x6c\x6f\x6e\x67\x5f\x72\x65\x70\x72\x28\x73\x65\x6c\x66\x2e\x64\x69\x67\x69\x74\x73\x29\x20\x2b\x20\x27\x4c\x27\x0a" }, + {"_set", "\x63\x6c\x61\x73\x73\x20\x73\x65\x74\x3a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x3d\x4e\x6f\x6e\x65\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x20\x3d\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x20\x6f\x72\x20\x5b\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x5f\x61\x20\x3d\x20\x7b\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x69\x74\x65\x6d\x20\x69\x6e\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x61\x64\x64\x28\x69\x74\x65\x6d\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x61\x64\x64\x28\x73\x65\x6c\x66\x2c\x20\x65\x6c\x65\x6d\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x5f\x61\x5b\x65\x6c\x65\x6d\x5d\x20\x3d\x20\x4e\x6f\x6e\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x64\x69\x73\x63\x61\x72\x64\x28\x73\x65\x6c\x66\x2c\x20\x65\x6c\x65\x6d\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x65\x6c\x65\x6d\x20\x69\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x61\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x20\x73\x65\x6c\x66\x2e\x5f\x61\x5b\x65\x6c\x65\x6d\x5d\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x72\x65\x6d\x6f\x76\x65\x28\x73\x65\x6c\x66\x2c\x20\x65\x6c\x65\x6d\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x20\x73\x65\x6c\x66\x2e\x5f\x61\x5b\x65\x6c\x65\x6d\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x63\x6c\x65\x61\x72\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x5f\x61\x2e\x63\x6c\x65\x61\x72\x28\x29\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x75\x70\x64\x61\x74\x65\x28\x73\x65\x6c\x66\x2c\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x65\x6c\x65\x6d\x20\x69\x6e\x20\x6f\x74\x68\x65\x72\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x2e\x61\x64\x64\x28\x65\x6c\x65\x6d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6c\x65\x6e\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x65\x6e\x28\x73\x65\x6c\x66\x2e\x5f\x61\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x63\x6f\x70\x79\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x74\x28\x73\x65\x6c\x66\x2e\x5f\x61\x2e\x6b\x65\x79\x73\x28\x29\x29\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x61\x6e\x64\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x73\x65\x74\x28\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x65\x6c\x65\x6d\x20\x69\x6e\x20\x73\x65\x6c\x66\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x65\x6c\x65\x6d\x20\x69\x6e\x20\x6f\x74\x68\x65\x72\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x64\x64\x28\x65\x6c\x65\x6d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x6f\x72\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x73\x65\x6c\x66\x2e\x63\x6f\x70\x79\x28\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x65\x6c\x65\x6d\x20\x69\x6e\x20\x6f\x74\x68\x65\x72\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x64\x64\x28\x65\x6c\x65\x6d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x73\x75\x62\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x73\x65\x74\x28\x29\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x65\x6c\x65\x6d\x20\x69\x6e\x20\x73\x65\x6c\x66\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x65\x6c\x65\x6d\x20\x6e\x6f\x74\x20\x69\x6e\x20\x6f\x74\x68\x65\x72\x3a\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x64\x64\x28\x65\x6c\x65\x6d\x29\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x78\x6f\x72\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x73\x65\x74\x28\x29\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x65\x6c\x65\x6d\x20\x69\x6e\x20\x73\x65\x6c\x66\x3a\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x65\x6c\x65\x6d\x20\x6e\x6f\x74\x20\x69\x6e\x20\x6f\x74\x68\x65\x72\x3a\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x64\x64\x28\x65\x6c\x65\x6d\x29\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20" "\x66\x6f\x72\x20\x65\x6c\x65\x6d\x20\x69\x6e\x20\x6f\x74\x68\x65\x72\x3a\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x65\x6c\x65\x6d\x20\x6e\x6f\x74\x20\x69\x6e\x20\x73\x65\x6c\x66\x3a\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x61\x64\x64\x28\x65\x6c\x65\x6d\x29\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x75\x6e\x69\x6f\x6e\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x20\x7c\x20\x6f\x74\x68\x65\x72\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x69\x6f\x6e\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x20\x26\x20\x6f\x74\x68\x65\x72\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x63\x65\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x20\x2d\x20\x6f\x74\x68\x65\x72\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x73\x79\x6d\x6d\x65\x74\x72\x69\x63\x5f\x64\x69\x66\x66\x65\x72\x65\x6e\x63\x65\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x20\x5e\x20\x6f\x74\x68\x65\x72\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x65\x71\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x78\x6f\x72\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x2e\x5f\x5f\x6c\x65\x6e\x5f\x5f\x28\x29\x20\x3d\x3d\x20\x30\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x69\x73\x64\x69\x73\x6a\x6f\x69\x6e\x74\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x61\x6e\x64\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x2e\x5f\x5f\x6c\x65\x6e\x5f\x5f\x28\x29\x20\x3d\x3d\x20\x30\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x69\x73\x73\x75\x62\x73\x65\x74\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x5f\x73\x75\x62\x5f\x5f\x28\x6f\x74\x68\x65\x72\x29\x2e\x5f\x5f\x6c\x65\x6e\x5f\x5f\x28\x29\x20\x3d\x3d\x20\x30\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x69\x73\x73\x75\x70\x65\x72\x73\x65\x74\x28\x73\x65\x6c\x66\x2c\x20\x6f\x74\x68\x65\x72\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x74\x68\x65\x72\x2e\x5f\x5f\x73\x75\x62\x5f\x5f\x28\x73\x65\x6c\x66\x29\x2e\x5f\x5f\x6c\x65\x6e\x5f\x5f\x28\x29\x20\x3d\x3d\x20\x30\x0a\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x63\x6f\x6e\x74\x61\x69\x6e\x73\x5f\x5f\x28\x73\x65\x6c\x66\x2c\x20\x65\x6c\x65\x6d\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x6c\x65\x6d\x20\x69\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x61\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x72\x65\x70\x72\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x6c\x65\x6e\x28\x73\x65\x6c\x66\x29\x20\x3d\x3d\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x27\x73\x65\x74\x28\x29\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x27\x7b\x27\x2b\x20\x27\x2c\x20\x27\x2e\x6a\x6f\x69\x6e\x28\x5b\x72\x65\x70\x72\x28\x69\x29\x20\x66\x6f\x72\x20\x69\x20\x69\x6e\x20\x73\x65\x6c\x66\x2e\x5f\x61\x2e\x6b\x65\x79\x73\x28\x29\x5d\x29\x20\x2b\x20\x27\x7d\x27\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x64\x65\x66\x20\x5f\x5f\x69\x74\x65\x72\x5f\x5f\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x74\x65\x72\x28\x73\x65\x6c\x66\x2e\x5f\x61\x2e\x6b\x65\x79\x73\x28\x29\x29" }, + + }; +} // namespace pkpy